You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ma...@apache.org on 2013/10/18 02:25:31 UTC
[09/30] AMBARI-3266. Contribute Ambari-SCOM. (Tom Beerbower via
mahadev)
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/MultipleAgentChooserDialog.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/MultipleAgentChooserDialog.cs b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/MultipleAgentChooserDialog.cs
new file mode 100644
index 0000000..875090a
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/MultipleAgentChooserDialog.cs
@@ -0,0 +1,37 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+using System.ComponentModel;
+using Microsoft.EnterpriseManagement.Internal.UI.Authoring.Pages.Azure;
+using Microsoft.EnterpriseManagement.Mom.Internal.UI;
+
+namespace Ambari.SCOM.ScomPages.DiscoveryTemplate {
+ class MultipleAgentChooserDialog : AgentSimpleChooserDialog{
+ public MultipleAgentChooserDialog(IContainer parentContainer) : base(new AgentPickerControl(), parentContainer) {
+ InitializeComponent();
+ }
+
+ public MultipleAgentChooserDialog(IAsyncChooserControlSearch searchControl, IContainer parentContainer)
+ : base(searchControl, parentContainer) {
+ InitializeComponent();
+ }
+
+ private void InitializeComponent() {
+ mainChooserControl.MultiSelect = true;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/RunAsAccountWrapper.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/RunAsAccountWrapper.cs b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/RunAsAccountWrapper.cs
new file mode 100644
index 0000000..3aa8fa9
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/RunAsAccountWrapper.cs
@@ -0,0 +1,45 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+using System;
+using System.Globalization;
+using System.Text;
+using Microsoft.EnterpriseManagement.Security;
+
+namespace Ambari.SCOM.ScomPages.DiscoveryTemplate {
+ class RunAsAccountWrapper {
+ public Guid? AccountId { get; private set; }
+ public string AccountName { get; private set; }
+ public byte[] AccountStorageIdByteArray { get; private set; }
+ public string AccountStorageIdString { get; private set; }
+
+ public RunAsAccountWrapper(SecureData account) {
+ AccountName = account.Name;
+ AccountId = account.Id;
+ AccountStorageIdByteArray = account.SecureStorageId;
+ AccountStorageIdString = ConvertToHex(AccountStorageIdByteArray);
+ }
+
+ private string ConvertToHex(byte[] byteArray) {
+ var builder = new StringBuilder();
+ foreach (var num in byteArray) {
+ builder.Append(num.ToString("X2", CultureInfo.InvariantCulture));
+ }
+ return builder.ToString();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/SummaryPage.Designer.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/SummaryPage.Designer.cs b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/SummaryPage.Designer.cs
new file mode 100644
index 0000000..452c005
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/SummaryPage.Designer.cs
@@ -0,0 +1,107 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+namespace Ambari.SCOM.ScomPages.DiscoveryTemplate
+{
+ partial class SummaryPage {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing) {
+ if (disposing && (components != null)) {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent() {
+ this.lblTitle = new Microsoft.EnterpriseManagement.Mom.Internal.UI.Controls.PageSectionLabel();
+ this.listviewConfiguration = new System.Windows.Forms.ListView();
+ this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.SuspendLayout();
+ //
+ // lblTitle
+ //
+ this.lblTitle.BackColor = System.Drawing.Color.Transparent;
+ this.lblTitle.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold);
+ this.lblTitle.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.lblTitle.Location = new System.Drawing.Point(0, 10);
+ this.lblTitle.MinimumSize = new System.Drawing.Size(244, 0);
+ this.lblTitle.Name = "lblTitle";
+ this.lblTitle.Size = new System.Drawing.Size(244, 18);
+ this.lblTitle.TabIndex = 3;
+ this.lblTitle.Text = "Confirm the settings";
+ //
+ // listviewConfiguration
+ //
+ this.listviewConfiguration.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.listviewConfiguration.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.columnHeader1,
+ this.columnHeader2});
+ this.listviewConfiguration.Location = new System.Drawing.Point(0, 44);
+ this.listviewConfiguration.Name = "listviewConfiguration";
+ this.listviewConfiguration.Size = new System.Drawing.Size(435, 256);
+ this.listviewConfiguration.TabIndex = 2;
+ this.listviewConfiguration.UseCompatibleStateImageBehavior = false;
+ this.listviewConfiguration.View = System.Windows.Forms.View.Details;
+ //
+ // columnHeader1
+ //
+ this.columnHeader1.Text = "Property";
+ //
+ // columnHeader2
+ //
+ this.columnHeader2.Text = "Value";
+ //
+ // SummaryPage
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.lblTitle);
+ this.Controls.Add(this.listviewConfiguration);
+ this.HeaderText = "Summary";
+ this.Name = "SummaryPage";
+ this.NavigationText = "Summary";
+ this.Size = new System.Drawing.Size(456, 400);
+ this.TabName = "Summary";
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private Microsoft.EnterpriseManagement.Mom.Internal.UI.Controls.PageSectionLabel lblTitle;
+ private System.Windows.Forms.ListView listviewConfiguration;
+ private System.Windows.Forms.ColumnHeader columnHeader1;
+ private System.Windows.Forms.ColumnHeader columnHeader2;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/SummaryPage.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/SummaryPage.cs b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/SummaryPage.cs
new file mode 100644
index 0000000..6a82c06
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/SummaryPage.cs
@@ -0,0 +1,76 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+using System;
+using System.Collections.Generic;
+using System.Windows.Forms;
+using Microsoft.EnterpriseManagement.Configuration;
+using Microsoft.EnterpriseManagement.Internal.UI.Authoring.Pages;
+using Microsoft.EnterpriseManagement.UI;
+using Ambari.SCOM.ScomPages.Properties;
+
+namespace Ambari.SCOM.ScomPages.DiscoveryTemplate {
+ public partial class SummaryPage : UIPage {
+ public SummaryPage() {
+ InitializeComponent();
+ }
+
+ private void AddSummaryItem(string name, string value) {
+ var item = new ListViewItem(name);
+ item.SubItems.Add(value);
+ listviewConfiguration.Items.Add(item);
+ }
+
+ public override bool OnSetActive() {
+ SetListViewItems();
+ IsConfigValid = true;
+ return base.OnSetActive();
+ }
+
+ private void SetListViewItems() {
+ listviewConfiguration.Items.Clear();
+ IsConfigValid = false;
+
+ AddSummaryItem(Resources.Name, SharedUserData[NameAndDescriptionPage.SharedUserDataName] as string);
+
+ var description = SharedUserData[NameAndDescriptionPage.SharedUserDataDescription] as string;
+ if (!String.IsNullOrEmpty(description))
+ AddSummaryItem(Resources.Description, description);
+
+ var outputManagementPack = SharedUserData[NameAndDescriptionPage.SharedUserDataManagementPack] as ManagementPack;
+ if (DestinationManagementPack != null) {
+ AddSummaryItem(Resources.ManagementPack, DestinationManagementPack.DisplayName);
+ } else if (outputManagementPack != null) {
+ AddSummaryItem(Resources.ManagementPack, outputManagementPack.DisplayName);
+ }
+
+ AddSummaryItem(Resources.AmbariUri, SharedUserData[AmbariDetailsPage.SharedUserDataAmbariUri] as string);
+ AddSummaryItem(Resources.RunAsAccount, SharedUserData[AmbariDetailsPage.SharedUserDataRunAsName] as string);
+ var watcherNodes = SharedUserData[WatcherNodesPage.SharedUserDataWatcherNodesList] as IEnumerable<string>;
+ if (watcherNodes != null) {
+ var firstItem = true;
+ foreach (var watcherNode in watcherNodes) {
+ AddSummaryItem(firstItem ? Resources.WatcherNodes : String.Empty, watcherNode);
+ firstItem = false;
+ }
+ }
+
+ listviewConfiguration.Columns[0].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
+ listviewConfiguration.Columns[1].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/SummaryPage.resx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/SummaryPage.resx b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/SummaryPage.resx
new file mode 100644
index 0000000..525bd88
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/SummaryPage.resx
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+<!--## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements. See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership. The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied. See the License for the
+## specific language governing permissions and limitations
+## under the License.-->
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/TemplateInputConfig.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/TemplateInputConfig.cs b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/TemplateInputConfig.cs
new file mode 100644
index 0000000..a92b41f
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/TemplateInputConfig.cs
@@ -0,0 +1,32 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+using System;
+using System.Xml.Serialization;
+
+namespace Ambari.SCOM.ScomPages.DiscoveryTemplate {
+ [Serializable, XmlType(AnonymousType = true), XmlRoot(Namespace = "", IsNullable = false)]
+ public class TemplateInputConfig {
+ public string Name { get; set; }
+ public string Description { get; set; }
+ public string AmbariUri { get; set; }
+ public string RunAsAccount { get; set; }
+ public string WatcherNodesList { get; set; }
+ public string SeedComputerName { get; set; }
+ public string TemplateIdString { get; set; }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/WatcherNodesPage.Designer.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/WatcherNodesPage.Designer.cs b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/WatcherNodesPage.Designer.cs
new file mode 100644
index 0000000..9bc6178
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/WatcherNodesPage.Designer.cs
@@ -0,0 +1,174 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+namespace Ambari.SCOM.ScomPages.DiscoveryTemplate
+{
+ partial class WatcherNodesPage {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing) {
+ if (disposing && (components != null)) {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent() {
+ this.lblDescription = new System.Windows.Forms.Label();
+ this.lblTitle = new Microsoft.EnterpriseManagement.Mom.Internal.UI.Controls.PageSectionLabel();
+ this.listWatcherNodes = new System.Windows.Forms.ListBox();
+ this.lblWatcherNodes = new System.Windows.Forms.Label();
+ this.tsMenu = new System.Windows.Forms.ToolStrip();
+ this.btnAdd = new System.Windows.Forms.ToolStripButton();
+ this.separatorEdit = new System.Windows.Forms.ToolStripSeparator();
+ this.btnRemove = new System.Windows.Forms.ToolStripButton();
+ this.tsMenu.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // lblDescription
+ //
+ this.lblDescription.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.lblDescription.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.lblDescription.Location = new System.Drawing.Point(0, 43);
+ this.lblDescription.Name = "lblDescription";
+ this.lblDescription.Size = new System.Drawing.Size(438, 91);
+ this.lblDescription.TabIndex = 10;
+ this.lblDescription.Text = "Select an agent-managed computer to act as a watcher node. The watcher node commu" +
+ "nicates with Ambari API to retrieve data.";
+ //
+ // lblTitle
+ //
+ this.lblTitle.BackColor = System.Drawing.Color.Transparent;
+ this.lblTitle.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold);
+ this.lblTitle.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.lblTitle.Location = new System.Drawing.Point(0, 10);
+ this.lblTitle.MinimumSize = new System.Drawing.Size(244, 0);
+ this.lblTitle.Name = "lblTitle";
+ this.lblTitle.Size = new System.Drawing.Size(244, 18);
+ this.lblTitle.TabIndex = 9;
+ this.lblTitle.Text = "Choose Watcher Nodes";
+ //
+ // listWatcherNodes
+ //
+ this.listWatcherNodes.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.listWatcherNodes.FormattingEnabled = true;
+ this.listWatcherNodes.Location = new System.Drawing.Point(3, 177);
+ this.listWatcherNodes.Name = "listWatcherNodes";
+ this.listWatcherNodes.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+ this.listWatcherNodes.Size = new System.Drawing.Size(435, 108);
+ this.listWatcherNodes.TabIndex = 11;
+ this.listWatcherNodes.SelectedIndexChanged += new System.EventHandler(this.listWatcherNodes_SelectedIndexChanged);
+ //
+ // lblWatcherNodes
+ //
+ this.lblWatcherNodes.AutoSize = true;
+ this.lblWatcherNodes.Location = new System.Drawing.Point(3, 153);
+ this.lblWatcherNodes.Name = "lblWatcherNodes";
+ this.lblWatcherNodes.Size = new System.Drawing.Size(85, 13);
+ this.lblWatcherNodes.TabIndex = 14;
+ this.lblWatcherNodes.Text = "Watcher Nodes:";
+ //
+ // tsMenu
+ //
+ this.tsMenu.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.tsMenu.Dock = System.Windows.Forms.DockStyle.None;
+ this.tsMenu.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
+ this.tsMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.btnAdd,
+ this.separatorEdit,
+ this.btnRemove});
+ this.tsMenu.Location = new System.Drawing.Point(286, 149);
+ this.tsMenu.Name = "tsMenu";
+ this.tsMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
+ this.tsMenu.Size = new System.Drawing.Size(152, 25);
+ this.tsMenu.TabIndex = 24;
+ this.tsMenu.Text = "stripButtons";
+ //
+ // btnAdd
+ //
+ this.btnAdd.Image = global::Ambari.SCOM.ScomPages.Properties.Resources.Add;
+ this.btnAdd.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ this.btnAdd.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.btnAdd.Name = "btnAdd";
+ this.btnAdd.Size = new System.Drawing.Size(46, 22);
+ this.btnAdd.Text = "Add";
+ this.btnAdd.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
+ this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
+ //
+ // separatorEdit
+ //
+ this.separatorEdit.Name = "separatorEdit";
+ this.separatorEdit.Size = new System.Drawing.Size(6, 25);
+ //
+ // btnRemove
+ //
+ this.btnRemove.Enabled = false;
+ this.btnRemove.Image = global::Ambari.SCOM.ScomPages.Properties.Resources.Remove;
+ this.btnRemove.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.btnRemove.Name = "btnRemove";
+ this.btnRemove.Size = new System.Drawing.Size(66, 22);
+ this.btnRemove.Text = "Remove";
+ this.btnRemove.Click += new System.EventHandler(this.btnRemove_Click);
+ //
+ // WatcherNodesPage
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.tsMenu);
+ this.Controls.Add(this.lblWatcherNodes);
+ this.Controls.Add(this.listWatcherNodes);
+ this.Controls.Add(this.lblDescription);
+ this.Controls.Add(this.lblTitle);
+ this.HeaderText = "Watcher Nodes";
+ this.Name = "WatcherNodesPage";
+ this.NavigationText = "Watcher Nodes";
+ this.Size = new System.Drawing.Size(456, 391);
+ this.TabName = "Watcher Nodes";
+ this.tsMenu.ResumeLayout(false);
+ this.tsMenu.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label lblDescription;
+ private Microsoft.EnterpriseManagement.Mom.Internal.UI.Controls.PageSectionLabel lblTitle;
+ private System.Windows.Forms.ListBox listWatcherNodes;
+ private System.Windows.Forms.Label lblWatcherNodes;
+ private System.Windows.Forms.ToolStrip tsMenu;
+ private System.Windows.Forms.ToolStripButton btnAdd;
+ private System.Windows.Forms.ToolStripSeparator separatorEdit;
+ private System.Windows.Forms.ToolStripButton btnRemove;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/WatcherNodesPage.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/WatcherNodesPage.cs b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/WatcherNodesPage.cs
new file mode 100644
index 0000000..51a4d75
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/WatcherNodesPage.cs
@@ -0,0 +1,216 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using Microsoft.EnterpriseManagement;
+using Microsoft.EnterpriseManagement.Administration;
+using Microsoft.EnterpriseManagement.Common;
+using Microsoft.EnterpriseManagement.Configuration;
+using Microsoft.EnterpriseManagement.Mom.Internal.UI.Common;
+using Microsoft.EnterpriseManagement.Monitoring;
+using Microsoft.EnterpriseManagement.UI;
+using Ambari.SCOM.ScomPages.Properties;
+
+namespace Ambari.SCOM.ScomPages.DiscoveryTemplate {
+ public partial class WatcherNodesPage : UIPage {
+ public const string SharedUserDataWatcherNodesList = "WatcherNodes.WatcherNodesList";
+ public const string SharedUserDataTemplateIdString = "WatcherNodes.TemplateIdString";
+
+ private IEnumerable<PartialMonitoringObject> watcherNodes;
+ private string templateIdString;
+
+ private string ambariUri;
+ private string runAsName;
+ private byte[] runAsSsid;
+
+ public WatcherNodesPage() {
+ InitializeComponent();
+ }
+
+ private IEnumerable<PartialMonitoringObject> GetWatcherNodes(IEnumerable watcherNodesList) {
+ if (ManagementGroup == null) return null;
+
+ var monitoringClass = ManagementGroup.EntityTypes.GetClass(SystemMonitoringClass.HealthService);
+ if (monitoringClass == null) return null;
+
+ var criteriaBuilder = new StringBuilder();
+ foreach (var watcherNodeName in watcherNodesList) {
+ criteriaBuilder.AppendFormat("DisplayName = '{0}' OR ", watcherNodeName);
+ }
+ criteriaBuilder.Remove(criteriaBuilder.Length - 4, 4);
+
+ var partialMonitoringObjects =
+ ManagementGroup.EntityObjects.GetObjectReader<PartialMonitoringObject>(
+ new MonitoringObjectGenericCriteria(criteriaBuilder.ToString()),
+ monitoringClass,
+ ObjectQueryOptions.Default);
+
+ if (partialMonitoringObjects != null)
+ return partialMonitoringObjects.GetRange(0, partialMonitoringObjects.Count);
+
+ return null;
+ }
+
+ private void GetSharedUserData() {
+ ambariUri = SharedUserData[AmbariDetailsPage.SharedUserDataAmbariUri] as string;
+ runAsName = SharedUserData[AmbariDetailsPage.SharedUserDataRunAsName] as string;
+ runAsSsid = SharedUserData[AmbariDetailsPage.SharedUserDataRunAsSsid] as byte[];
+ watcherNodes = GetWatcherNodes(listWatcherNodes.Items);
+ }
+
+ public override void LoadPageConfig() {
+ if (IsCreationMode) {
+ templateIdString = Guid.NewGuid().ToString("N");
+ } else {
+ if (String.IsNullOrEmpty(InputConfigurationXml)) return;
+ try {
+ var config = (WatcherNodesPageConfig)XmlHelper.Deserialize(InputConfigurationXml, typeof(WatcherNodesPageConfig), true);
+ templateIdString = config.TemplateIdString;
+ PopulateWatcherNodesList(config.WatcherNodesList);
+
+ SetSharedUserData();
+ } catch (ArgumentNullException) {
+ return;
+ } catch (InvalidOperationException) {
+ return;
+ }
+ }
+ IsConfigValid = ValidatePageConfiguration();
+ base.LoadPageConfig();
+ }
+
+ private void PopulateWatcherNodesList(string watcherNodesList) {
+ listWatcherNodes.Items.AddRange(watcherNodesList.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries));
+ }
+
+ private void btnAdd_Click(object sender, EventArgs e) {
+ ShowComputerPickerDialog();
+ IsConfigValid = ValidatePageConfiguration();
+ }
+
+ private void btnRemove_Click(object sender, EventArgs e) {
+ if (listWatcherNodes.SelectedItems == null ||
+ listWatcherNodes.SelectedItems.Count == 0) return;
+ var selectedItems = new ArrayList(listWatcherNodes.SelectedItems);
+ foreach (var selectedItem in selectedItems)
+ listWatcherNodes.Items.Remove(selectedItem);
+ IsConfigValid = ValidatePageConfiguration();
+ }
+
+ private bool RunAsAccountDistributionDialog() {
+ GetSharedUserData();
+
+ var securedData = ManagementGroup.Security.GetSecureData(runAsSsid);
+ if (securedData == null) return false;
+
+ var newState = ManagementGroup.Security.GetApprovedHealthServicesForDistribution<PartialMonitoringObject>(securedData);
+ if (newState == null) return false;
+
+ if (newState.Result == ApprovedHealthServicesResults.All) return true;
+ var missingAgents = watcherNodes.Except(newState.HealthServices).ToList();
+ if (!missingAgents.Any()) return true;
+
+ var text = String.Format(Resources.AllowDistributionConfirmationFormat, runAsName, String.Join(Environment.NewLine, missingAgents.Select(a => a.DisplayName)));
+ if (MessageBox.Show(ParentForm, text, Resources.Warning, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) != DialogResult.Yes)
+ return false;
+
+ newState.Result = ApprovedHealthServicesResults.Specified;
+ missingAgents.ForEach(a => newState.HealthServices.Add(a));
+ ManagementGroup.Security.SetApprovedHealthServicesForDistribution<PartialMonitoringObject>(securedData, newState);
+ return true;
+ }
+
+ private bool AllowProxyDialog() {
+ GetSharedUserData();
+
+ var filterCriteria = new StringBuilder();
+ foreach (var watcherNode in watcherNodes) {
+ filterCriteria.Append("Name = '" + watcherNode.DisplayName + "' OR ");
+ }
+ filterCriteria.Remove(filterCriteria.Length - 4, 4);
+
+ var proxyDiabledAgents = ManagementGroup.Administration
+ .GetAgentManagedComputers(new AgentManagedComputerCriteria(filterCriteria.ToString()))
+ .Where(a => !a.ProxyingEnabled.Value);
+ if (!proxyDiabledAgents.Any()) return true;
+
+ var text = String.Format(Resources.AllowProxyConfirmationFormat, String.Join(Environment.NewLine, proxyDiabledAgents.Select(a => a.DisplayName)));
+ if (MessageBox.Show(ParentForm, text, Resources.Warning, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) != DialogResult.Yes)
+ return false;
+
+ foreach (var agent in proxyDiabledAgents) {
+ agent.ProxyingEnabled = true;
+ agent.ApplyChanges();
+ }
+
+ return true;
+ }
+
+ public override bool SavePageConfig() {
+ if (!(IsConfigValid = ValidatePageConfiguration()) ||
+ !RunAsAccountDistributionDialog() ||
+ !AllowProxyDialog()) return false;
+
+ OutputConfigurationXml = XmlHelper.Serialize(
+ new WatcherNodesPageConfig {
+ TemplateIdString = templateIdString,
+ WatcherNodesList = String.Join(";", listWatcherNodes.Items.OfType<string>()),
+ SeedComputerName = listWatcherNodes.Items.OfType<string>().FirstOrDefault() },
+ true);
+ SetSharedUserData();
+ return true;
+ }
+
+ private void SetSharedUserData() {
+ SharedUserData[SharedUserDataTemplateIdString] = templateIdString;
+ SharedUserData[SharedUserDataWatcherNodesList] = listWatcherNodes.Items.OfType<string>();
+ }
+
+ private void ShowComputerPickerDialog() {
+ using (var dialog = new MultipleAgentChooserDialog(Container)) {
+ if (dialog.ShowDialog(this) != DialogResult.OK) return;
+
+ if (dialog.SelectedItems == null) return;
+ foreach (var selectedItem in dialog.SelectedItems) {
+ if (selectedItem == null || selectedItem.Item == null) continue;
+ var item = selectedItem.Item as ComputerHealthService;
+ if (!String.IsNullOrEmpty(item.PrincipalName) &&
+ !listWatcherNodes.Items.Contains(item.PrincipalName)) {
+ listWatcherNodes.Items.Add(item.PrincipalName);
+ }
+ }
+ }
+ }
+
+ private bool ValidatePageConfiguration() {
+ if (listWatcherNodes.Items.Count <= 0)
+ return false;
+
+ SetSharedUserData();
+ return true;
+ }
+
+ private void listWatcherNodes_SelectedIndexChanged(object sender, EventArgs e) {
+ btnRemove.Enabled = (listWatcherNodes.SelectedIndex != ListBox.NoMatches);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/WatcherNodesPage.resx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/WatcherNodesPage.resx b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/WatcherNodesPage.resx
new file mode 100644
index 0000000..1f6aaae
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/WatcherNodesPage.resx
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+<!--## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements. See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership. The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied. See the License for the
+## specific language governing permissions and limitations
+## under the License.-->
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <metadata name="tsMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <value>17, 17</value>
+ </metadata>
+</root>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/WatcherNodesPageConfig.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/WatcherNodesPageConfig.cs b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/WatcherNodesPageConfig.cs
new file mode 100644
index 0000000..bff739b
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/DiscoveryTemplate/WatcherNodesPageConfig.cs
@@ -0,0 +1,28 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+using System;
+using System.Xml.Serialization;
+
+namespace Ambari.SCOM.ScomPages.DiscoveryTemplate {
+ [Serializable, XmlType(AnonymousType = true), XmlRoot(Namespace = "", IsNullable = false)]
+ public class WatcherNodesPageConfig {
+ public string WatcherNodesList { get; set; }
+ public string SeedComputerName { get; set; }
+ public string TemplateIdString { get; set; }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/Properties/AssemblyInfo.cs b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..c34d6e9
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/Properties/AssemblyInfo.cs
@@ -0,0 +1,52 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("ScomPages")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Apache Ambari")]
+[assembly: AssemblyProduct("ScomPages")]
+[assembly: AssemblyCopyright("Copyright © Apache Ambari 2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("d67097db-a38b-452e-bde9-860e1da798d9")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/Properties/Resources.Designer.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/Properties/Resources.Designer.cs b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..52a6840
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/Properties/Resources.Designer.cs
@@ -0,0 +1,172 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.18051
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Ambari.SCOM.ScomPages.Properties {
+ using System;
+
+
+ /// <summary>
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ /// </summary>
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// Returns the cached ResourceManager instance used by this class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Ambari.SCOM.ScomPages.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ /// </summary>
+ internal static System.Drawing.Bitmap Add {
+ get {
+ object obj = ResourceManager.GetObject("Add", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to To enable discovery of Hadoop cluster hosted in Windows Azure, Run As account '{0}' must be distributed to the following hosts:
+ ///
+ ///{1}
+ ///
+ ///Would you like Operations Manager to distribute the account?.
+ /// </summary>
+ internal static string AllowDistributionConfirmationFormat {
+ get {
+ return ResourceManager.GetString("AllowDistributionConfirmationFormat", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to To enable discovery of Hadoop cluster hosted in Windows Azure, following agents must be enabled to act as a proxy:
+ ///
+ ///{0}
+ ///
+ ///Would you like to allow following agents to act as a proxy?.
+ /// </summary>
+ internal static string AllowProxyConfirmationFormat {
+ get {
+ return ResourceManager.GetString("AllowProxyConfirmationFormat", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to Ambari URI.
+ /// </summary>
+ internal static string AmbariUri {
+ get {
+ return ResourceManager.GetString("AmbariUri", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to Description.
+ /// </summary>
+ internal static string Description {
+ get {
+ return ResourceManager.GetString("Description", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to Management Pack.
+ /// </summary>
+ internal static string ManagementPack {
+ get {
+ return ResourceManager.GetString("ManagementPack", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to Name.
+ /// </summary>
+ internal static string Name {
+ get {
+ return ResourceManager.GetString("Name", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ /// </summary>
+ internal static System.Drawing.Bitmap Remove {
+ get {
+ object obj = ResourceManager.GetObject("Remove", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to Run As Account.
+ /// </summary>
+ internal static string RunAsAccount {
+ get {
+ return ResourceManager.GetString("RunAsAccount", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to Warning.
+ /// </summary>
+ internal static string Warning {
+ get {
+ return ResourceManager.GetString("Warning", resourceCulture);
+ }
+ }
+
+ /// <summary>
+ /// Looks up a localized string similar to Watcher Nodes.
+ /// </summary>
+ internal static string WatcherNodes {
+ get {
+ return ResourceManager.GetString("WatcherNodes", resourceCulture);
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/Properties/Resources.resx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/Properties/Resources.resx b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/Properties/Resources.resx
new file mode 100644
index 0000000..ab6d88c
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/Properties/Resources.resx
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+<!--## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements. See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership. The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied. See the License for the
+## specific language governing permissions and limitations
+## under the License.-->
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <data name="AmbariUri" xml:space="preserve">
+ <value>Ambari URI</value>
+ </data>
+ <data name="Description" xml:space="preserve">
+ <value>Description</value>
+ </data>
+ <data name="WatcherNodes" xml:space="preserve">
+ <value>Watcher Nodes</value>
+ </data>
+ <data name="ManagementPack" xml:space="preserve">
+ <value>Management Pack</value>
+ </data>
+ <data name="Name" xml:space="preserve">
+ <value>Name</value>
+ </data>
+ <data name="AllowDistributionConfirmationFormat" xml:space="preserve">
+ <value>To enable discovery of Hadoop cluster hosted in Windows Azure, Run As account '{0}' must be distributed to the following hosts:
+
+{1}
+
+Would you like Operations Manager to distribute the account?</value>
+ </data>
+ <data name="Warning" xml:space="preserve">
+ <value>Warning</value>
+ </data>
+ <data name="RunAsAccount" xml:space="preserve">
+ <value>Run As Account</value>
+ </data>
+ <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+ <data name="Add" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Images\Add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
+ <data name="Remove" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Images\Remove.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
+ <data name="AllowProxyConfirmationFormat" xml:space="preserve">
+ <value>To enable discovery of Hadoop cluster hosted in Windows Azure, following agents must be enabled to act as a proxy:
+
+{0}
+
+Would you like to allow following agents to act as a proxy?</value>
+ </data>
+</root>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/ScomPages.csproj
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/ScomPages.csproj b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/ScomPages.csproj
new file mode 100644
index 0000000..e686f08
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/ScomPages/ScomPages.csproj
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements. See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership. The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied. See the License for the
+## specific language governing permissions and limitations
+## under the License.-->
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>8.0.30703</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{B77E5EA7-3FE4-49C9-88AC-3AB871A26F9B}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Ambari.SCOM.ScomPages</RootNamespace>
+ <AssemblyName>Ambari.SCOM.ScomPages</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <SccProjectName>SAK</SccProjectName>
+ <SccLocalPath>SAK</SccLocalPath>
+ <SccAuxPath>SAK</SccAuxPath>
+ <SccProvider>SAK</SccProvider>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="Microsoft.EnterpriseManagement.Core, Version=7.0.5000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.Core.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.EnterpriseManagement.OperationsManager, Version=7.0.5000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.OperationsManager.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.EnterpriseManagement.UI.Authoring">
+ <HintPath>..\Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.UI.Authoring.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.EnterpriseManagement.UI.Extensibility">
+ <HintPath>..\Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.UI.Extensibility.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.MOM.UI.Common">
+ <HintPath>..\Items\Libs\SCOM2012\Microsoft.MOM.UI.Common.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Drawing" />
+ <Reference Include="System.Windows.Forms" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="DiscoveryTemplate\AmbariDetailsPage.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="DiscoveryTemplate\AmbariDetailsPage.Designer.cs">
+ <DependentUpon>AmbariDetailsPage.cs</DependentUpon>
+ </Compile>
+ <Compile Include="DiscoveryTemplate\AmbariDetailsPageConfig.cs" />
+ <Compile Include="DiscoveryTemplate\InputParser.cs">
+ <SubType>Component</SubType>
+ </Compile>
+ <Compile Include="DiscoveryTemplate\MultipleAgentChooserDialog.cs">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="DiscoveryTemplate\RunAsAccountWrapper.cs" />
+ <Compile Include="DiscoveryTemplate\SummaryPage.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="DiscoveryTemplate\SummaryPage.Designer.cs">
+ <DependentUpon>SummaryPage.cs</DependentUpon>
+ </Compile>
+ <Compile Include="DiscoveryTemplate\TemplateInputConfig.cs" />
+ <Compile Include="DiscoveryTemplate\WatcherNodesPage.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="DiscoveryTemplate\WatcherNodesPage.Designer.cs">
+ <DependentUpon>WatcherNodesPage.cs</DependentUpon>
+ </Compile>
+ <Compile Include="DiscoveryTemplate\WatcherNodesPageConfig.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="DiscoveryTemplate\AmbariDetailsPage.resx">
+ <DependentUpon>AmbariDetailsPage.cs</DependentUpon>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ <EmbeddedResource Include="DiscoveryTemplate\SummaryPage.resx">
+ <DependentUpon>SummaryPage.cs</DependentUpon>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ <EmbeddedResource Include="DiscoveryTemplate\WatcherNodesPage.resx">
+ <DependentUpon>WatcherNodesPage.cs</DependentUpon>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ <SubType>Designer</SubType>
+ </EmbeddedResource>
+ </ItemGroup>
+ <ItemGroup>
+ <Content Include="Images\Add.png" />
+ <Content Include="Images\Remove.png" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/WidgetsSilverlight/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/WidgetsSilverlight/Properties/AssemblyInfo.cs b/contrib/ambari-scom/management-pack/Hadoop_MP/WidgetsSilverlight/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..6eca1ab
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/WidgetsSilverlight/Properties/AssemblyInfo.cs
@@ -0,0 +1,51 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("WidgetsSilverlight")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Apache Ambari")]
+[assembly: AssemblyProduct("WidgetsSilverlight")]
+[assembly: AssemblyCopyright("Copyright © Apache Ambari 2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("207052df-79de-472c-8f2b-b4c4853fa41e")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]