incubator-ambari-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From maha...@apache.org
Subject [25/30] AMBARI-3266. Contribute Ambari-SCOM. (Tom Beerbower via mahadev)
Date Fri, 18 Oct 2013 00:25:47 GMT
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/AmbariSeedDiscoveryDataSource.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/AmbariSeedDiscoveryDataSource.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/AmbariSeedDiscoveryDataSource.mpx
new file mode 100644
index 0000000..65d8bff
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/AmbariSeedDiscoveryDataSource.mpx
@@ -0,0 +1,87 @@
+<!--## 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.-->
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <ModuleTypes>
+      <DataSourceModuleType ID="Ambari.SCOM.Module.AmbariSeedDiscoveryDataSource" Accessibility="Public">
+        <Configuration>
+          <xsd:element name="IntervalSeconds" type="xsd:integer" />
+          <xsd:element name="SyncTime" type="xsd:string" />
+          <xsd:element name="TemplateName" type="xsd:string" />
+          <xsd:element name="SeedClassId" type="xsd:string" />
+          <xsd:element name="ComputerName" type="xsd:string" />
+          <xsd:element name="AmbariUri" type="xsd:string" />
+        </Configuration>
+        <ModuleImplementation Isolation="Any">
+          <Composite>
+            <MemberModules>
+              <DataSource ID="Scheduler" TypeID="System!System.Discovery.Scheduler">
+                <Scheduler>
+                  <SimpleReccuringSchedule>
+                    <Interval Unit="Seconds">14400</Interval>
+                    <SyncTime>$Config/SyncTime$</SyncTime>
+                  </SimpleReccuringSchedule>
+                  <ExcludeDates />
+                </Scheduler>
+              </DataSource>
+              <ConditionDetection ID="Mapper" TypeID="System!System.Discovery.ClassSnapshotDataMapper">
+                <ClassId>$Config/SeedClassId$</ClassId>
+                <InstanceSettings>
+                  <Settings>
+                    <Setting>
+                      <Name>$MPElement[Name="System!System.Entity"]/DisplayName$</Name>
+                      <Value>Hadoop Ambari Service Seed ($Config/TemplateName$)</Value>
+                    </Setting>
+                    <Setting>
+                      <Name>$MPElement[Name="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Name>
+                      <Value>$Config/ComputerName$</Value>
+                    </Setting>
+                    <Setting>
+                      <Name>$MPElement[Name="Ambari.SCOM.AmbariSeed"]/TemplateName$</Name>
+                      <Value>$Config/TemplateName$</Value>
+                    </Setting>
+                    <Setting>
+                      <Name>$MPElement[Name="Ambari.SCOM.AmbariSeed"]/AmbariUri$</Name>
+                      <Value>$Config/AmbariUri$</Value>
+                    </Setting>
+                  </Settings>
+                </InstanceSettings>
+              </ConditionDetection>
+            </MemberModules>
+            <Composition>
+              <Node ID="Mapper">
+                <Node ID="Scheduler" />
+              </Node>
+            </Composition>
+          </Composite>
+        </ModuleImplementation>
+        <OutputType>System!System.Discovery.Data</OutputType>
+      </DataSourceModuleType>
+    </ModuleTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.Module.AmbariSeedDiscoveryDataSource">
+          <Name>Hadoop Ambari Service Seed Discovery Data Provider</Name>
+          <Description>This module discovers Hadoop Ambari Service Seed.</Description>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>
\ 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/HadoopMp/Modules/DataSources/Discovery/ClusterServicesDiscoveryDataSource.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/ClusterServicesDiscoveryDataSource.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/ClusterServicesDiscoveryDataSource.mpx
new file mode 100644
index 0000000..48a4146
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/ClusterServicesDiscoveryDataSource.mpx
@@ -0,0 +1,102 @@
+<!--## 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.-->
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <ModuleTypes>
+      <DataSourceModuleType ID="Ambari.SCOM.Module.ClusterServicesDiscoveryDataSource" Accessibility="Public"
+                            RunAs="Ambari.SCOM.Profile.Workflow">
+        <Configuration>
+          <xsd:element name="IntervalSeconds" type="xsd:integer" />
+          <xsd:element name="SyncTime" type="xsd:string" />
+          <xsd:element name="TimeoutSeconds" type="xsd:integer" />
+          <xsd:element name="TemplateName" type="xsd:string" />
+          <xsd:element name="ClusterName" type="xsd:string" />
+          <xsd:element name="ClusterAmbariUri" type="xsd:string" />
+          <xsd:element name="WatcherNodesList" type="xsd:string" />
+        </Configuration>
+        <OverrideableParameters>
+          <OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int" />
+          <OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string" />
+          <OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int" />
+        </OverrideableParameters>
+        <ModuleImplementation Isolation="Any">
+          <Composite>
+            <MemberModules>
+              <DataSource ID="DS" TypeID="Ambari.SCOM.Module.PowerShellDiscoveryDataSource">
+                <IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
+                <SyncTime>$Config/SyncTime$</SyncTime>
+                <TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
+                <WorkflowName>ClusterServicesDiscovery</WorkflowName>
+                <Script>$IncludeFileContent/Modules/DataSources/Discovery/Scripts/ClusterServicesDiscovery.ps1$</Script>
+                <Parameters>
+                  <Parameter>
+                    <Name>TemplateName</Name>
+                    <Value>$Config/TemplateName$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>ClusterName</Name>
+                    <Value>$Config/ClusterName$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>ClusterAmbariUri</Name>
+                    <Value>$Config/ClusterAmbariUri$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>WatcherNodesList</Name>
+                    <Value>$Config/WatcherNodesList$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>Username</Name>
+                    <Value>$RunAs[Name="Ambari.SCOM.Profile.Ambari"]/UserName$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>Password</Name>
+                    <Value>$RunAs[Name="Ambari.SCOM.Profile.Ambari"]/Password$</Value>
+                  </Parameter>
+                </Parameters>
+              </DataSource>
+            </MemberModules>
+            <Composition>
+              <Node ID="DS" />
+            </Composition>
+          </Composite>
+        </ModuleImplementation>
+        <OutputType>System!System.Discovery.Data</OutputType>
+      </DataSourceModuleType>
+    </ModuleTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.Module.ClusterServicesDiscoveryDataSource">
+          <Name>Hadoop Cluster Services Discovery Data Provider</Name>
+          <Description>This module discovers Hadoop Cluster Services of specific Hadoop Cluster.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.ClusterServicesDiscoveryDataSource" SubElementID="IntervalSeconds">
+          <Name>Interval (sec)</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.ClusterServicesDiscoveryDataSource" SubElementID="SyncTime">
+          <Name>Sync Time</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.ClusterServicesDiscoveryDataSource" SubElementID="TimeoutSeconds">
+          <Name>Timeout (sec)</Name>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>
\ 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/HadoopMp/Modules/DataSources/Discovery/ClustersDiscoveryDataSource.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/ClustersDiscoveryDataSource.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/ClustersDiscoveryDataSource.mpx
new file mode 100644
index 0000000..93aee67
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/ClustersDiscoveryDataSource.mpx
@@ -0,0 +1,117 @@
+<!--## 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.-->
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <ModuleTypes>
+      <DataSourceModuleType ID="Ambari.SCOM.Module.ClustersDiscoveryDataSource" Accessibility="Public"
+                            RunAs="Ambari.SCOM.Profile.Workflow">
+        <Configuration>
+          <xsd:element name="IntervalSeconds" type="xsd:integer" />
+          <xsd:element name="SyncTime" type="xsd:string" />
+          <xsd:element name="TimeoutSeconds" type="xsd:integer" />
+          <xsd:element name="TemplateName" type="xsd:string" />
+          <xsd:element name="SeedComputerName" type="xsd:string" />
+          <xsd:element name="ClusterSeedClassId" type="xsd:string" />
+          <xsd:element name="AmbariUri" type="xsd:string" />
+          <xsd:element name="ClustersQueryUriSegment" type="xsd:string" />
+          <xsd:element name="WatcherNodesList" type="xsd:string" />
+        </Configuration>
+        <OverrideableParameters>
+          <OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int" />
+          <OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string" />
+          <OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int" />
+          <OverrideableParameter ID="ClustersQueryUriSegment" Selector="$Config/ClustersQueryUriSegment$" ParameterType="string" />
+        </OverrideableParameters>
+        <ModuleImplementation Isolation="Any">
+          <Composite>
+            <MemberModules>
+              <DataSource ID="DS" TypeID="Ambari.SCOM.Module.PowerShellDiscoveryDataSource">
+                <IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
+                <SyncTime>$Config/SyncTime$</SyncTime>
+                <TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
+                <WorkflowName>ClustersDiscovery</WorkflowName>
+                <Script>$IncludeFileContent/Modules/DataSources/Discovery/Scripts/ClustersDiscovery.ps1$</Script>
+                <Parameters>
+                  <Parameter>
+                    <Name>TemplateName</Name>
+                    <Value>$Config/TemplateName$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>SeedComputerName</Name>
+                    <Value>$Config/SeedComputerName$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>ClusterSeedClassId</Name>
+                    <Value>$Config/ClusterSeedClassId$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>AmbariUri</Name>
+                    <Value>$Config/AmbariUri$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>ClustersQueryUriSegment</Name>
+                    <Value>$Config/ClustersQueryUriSegment$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>WatcherNodesList</Name>
+                    <Value>$Config/WatcherNodesList$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>Username</Name>
+                    <Value>$RunAs[Name="Ambari.SCOM.Profile.Ambari"]/UserName$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>Password</Name>
+                    <Value>$RunAs[Name="Ambari.SCOM.Profile.Ambari"]/Password$</Value>
+                  </Parameter>
+                </Parameters>
+              </DataSource>
+            </MemberModules>
+            <Composition>
+              <Node ID="DS" />
+            </Composition>
+          </Composite>
+        </ModuleImplementation>
+        <OutputType>System!System.Discovery.Data</OutputType>
+      </DataSourceModuleType>
+    </ModuleTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.Module.ClustersDiscoveryDataSource">
+          <Name>Hadoop Clusters Discovery Data Provider</Name>
+          <Description>This module discovers Hadoop Clusters managed by specified Hadoop Ambari Service.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.ClustersDiscoveryDataSource" SubElementID="IntervalSeconds">
+          <Name>Interval (sec)</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.ClustersDiscoveryDataSource" SubElementID="SyncTime">
+          <Name>Sync Time</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.ClustersDiscoveryDataSource" SubElementID="TimeoutSeconds">
+          <Name>Timeout (sec)</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.ClustersDiscoveryDataSource" SubElementID="ClustersQueryUriSegment">
+          <Name>Clusters Query URI Segment</Name>
+          <Description>URI segment to query list of clusters managed by Ambari instance.</Description>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>
\ 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/HadoopMp/Modules/DataSources/Discovery/HostComponentsDiscoveryDataSource.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/HostComponentsDiscoveryDataSource.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/HostComponentsDiscoveryDataSource.mpx
new file mode 100644
index 0000000..1175f84
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/HostComponentsDiscoveryDataSource.mpx
@@ -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.-->
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <ModuleTypes>
+      <DataSourceModuleType ID="Ambari.SCOM.Module.HostComponentsDiscoveryDataSource" Accessibility="Internal"
+                            RunAs="Ambari.SCOM.Profile.Workflow">
+        <Configuration>
+          <xsd:element name="IntervalSeconds" type="xsd:integer" />
+          <xsd:element name="SyncTime" type="xsd:string" />
+          <xsd:element name="TimeoutSeconds" type="xsd:integer" />
+          <xsd:element name="TemplateName" type="xsd:string" />
+          <xsd:element name="ClusterName" type="xsd:string" />
+          <xsd:element name="HostName" type="xsd:string" />
+          <xsd:element name="HostIpAddress" type="xsd:string" />
+          <xsd:element name="HostAmbariUri" type="xsd:string" />
+        </Configuration>
+        <OverrideableParameters>
+          <OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int" />
+          <OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string" />
+          <OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int" />
+        </OverrideableParameters>
+        <ModuleImplementation Isolation="Any">
+          <Composite>
+            <MemberModules>
+              <DataSource ID="DS" TypeID="Ambari.SCOM.Module.PowerShellDiscoveryDataSource">
+                <IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
+                <SyncTime>$Config/SyncTime$</SyncTime>
+                <TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
+                <WorkflowName>HostComponentsDiscovery</WorkflowName>
+                <Script>$IncludeFileContent/Modules/DataSources/Discovery/Scripts/HostComponentsDiscovery.ps1$</Script>
+                <Parameters>
+                  <Parameter>
+                    <Name>TemplateName</Name>
+                    <Value>$Config/TemplateName$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>ClusterName</Name>
+                    <Value>$Config/ClusterName$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>HostName</Name>
+                    <Value>$Config/HostName$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>HostIpAddress</Name>
+                    <Value>$Config/HostIpAddress$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>HostAmbariUri</Name>
+                    <Value>$Config/HostAmbariUri$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>Username</Name>
+                    <Value>$RunAs[Name="Ambari.SCOM.Profile.Ambari"]/UserName$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>Password</Name>
+                    <Value>$RunAs[Name="Ambari.SCOM.Profile.Ambari"]/Password$</Value>
+                  </Parameter>
+                </Parameters>
+              </DataSource>
+            </MemberModules>
+            <Composition>
+              <Node ID="DS" />
+            </Composition>
+          </Composite>
+        </ModuleImplementation>
+        <OutputType>System!System.Discovery.Data</OutputType>
+      </DataSourceModuleType>
+    </ModuleTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.Module.HostComponentsDiscoveryDataSource">
+          <Name>Hadoop Host Components Discovery Data Provider</Name>
+          <Description>This module discovers Hadoop Host Components.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HostComponentsDiscoveryDataSource" SubElementID="IntervalSeconds">
+          <Name>Interval (sec)</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HostComponentsDiscoveryDataSource" SubElementID="SyncTime">
+          <Name>Sync Time</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HostComponentsDiscoveryDataSource" SubElementID="TimeoutSeconds">
+          <Name>Timeout (sec)</Name>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>
\ 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/HadoopMp/Modules/DataSources/Discovery/HostsDiscoveryDataSource.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/HostsDiscoveryDataSource.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/HostsDiscoveryDataSource.mpx
new file mode 100644
index 0000000..7d0bc12
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/HostsDiscoveryDataSource.mpx
@@ -0,0 +1,102 @@
+<!--## 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.-->
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <ModuleTypes>
+      <DataSourceModuleType ID="Ambari.SCOM.Module.HostsDiscoveryDataSource" Accessibility="Public"
+                            RunAs="Ambari.SCOM.Profile.Workflow">
+        <Configuration>
+          <xsd:element name="IntervalSeconds" type="xsd:integer" />
+          <xsd:element name="SyncTime" type="xsd:string" />
+          <xsd:element name="TimeoutSeconds" type="xsd:integer" />
+          <xsd:element name="TemplateName" type="xsd:string" />
+          <xsd:element name="ClusterName" type="xsd:string" />
+          <xsd:element name="ClusterAmbariUri" type="xsd:string" />
+          <xsd:element name="WatcherNodesList" type="xsd:string" />
+        </Configuration>
+        <OverrideableParameters>
+          <OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int" />
+          <OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string" />
+          <OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int" />
+        </OverrideableParameters>
+        <ModuleImplementation Isolation="Any">
+          <Composite>
+            <MemberModules>
+              <DataSource ID="DS" TypeID="Ambari.SCOM.Module.PowerShellDiscoveryDataSource">
+                <IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
+                <SyncTime>$Config/SyncTime$</SyncTime>
+                <TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
+                <WorkflowName>HostsDiscovery</WorkflowName>
+                <Script>$IncludeFileContent/Modules/DataSources/Discovery/Scripts/HostsDiscovery.ps1$</Script>
+                <Parameters>
+                  <Parameter>
+                    <Name>TemplateName</Name>
+                    <Value>$Config/TemplateName$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>ClusterName</Name>
+                    <Value>$Config/ClusterName$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>ClusterAmbariUri</Name>
+                    <Value>$Config/ClusterAmbariUri$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>WatcherNodesList</Name>
+                    <Value>$Config/WatcherNodesList$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>Username</Name>
+                    <Value>$RunAs[Name="Ambari.SCOM.Profile.Ambari"]/UserName$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>Password</Name>
+                    <Value>$RunAs[Name="Ambari.SCOM.Profile.Ambari"]/Password$</Value>
+                  </Parameter>
+                </Parameters>
+              </DataSource>
+            </MemberModules>
+            <Composition>
+              <Node ID="DS" />
+            </Composition>
+          </Composite>
+        </ModuleImplementation>
+        <OutputType>System!System.Discovery.Data</OutputType>
+      </DataSourceModuleType>
+    </ModuleTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.Module.HostsDiscoveryDataSource">
+          <Name>Hadoop Hosts Discovery Data Provider</Name>
+          <Description>This module discovers Hadoop Hosts of specific Hadoop Cluster.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HostsDiscoveryDataSource" SubElementID="IntervalSeconds">
+          <Name>Interval (sec)</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HostsDiscoveryDataSource" SubElementID="SyncTime">
+          <Name>Sync Time</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HostsDiscoveryDataSource" SubElementID="TimeoutSeconds">
+          <Name>Timeout (sec)</Name>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>
\ 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/HadoopMp/Modules/DataSources/Discovery/PowerShellDiscoveryDataSource.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/PowerShellDiscoveryDataSource.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/PowerShellDiscoveryDataSource.mpx
new file mode 100644
index 0000000..66284da
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/PowerShellDiscoveryDataSource.mpx
@@ -0,0 +1,85 @@
+<!--## 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.-->
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <ModuleTypes>
+      <DataSourceModuleType ID="Ambari.SCOM.Module.PowerShellDiscoveryDataSource" Accessibility="Internal">
+        <Configuration>
+          <IncludeSchemaTypes>
+            <SchemaType>Windows!Microsoft.Windows.PowerShellSchema</SchemaType>
+          </IncludeSchemaTypes>
+          <xsd:element name="IntervalSeconds" type="xsd:integer" />
+          <xsd:element name="SyncTime" type="xsd:string" />
+          <xsd:element name="TimeoutSeconds" type="xsd:integer" />
+          
+          <xsd:element name="WorkflowName" type="xsd:string" />
+          <xsd:element name="Script" type="xsd:string" />
+          <xsd:element name="Parameters" type="NamedParametersType" />
+        </Configuration>
+        <ModuleImplementation Isolation="Any">
+          <Composite>
+            <MemberModules>
+              <DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedPowerShell.DiscoveryProvider">
+                <IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
+                <SyncTime>$Config/SyncTime$</SyncTime>
+                <ScriptName>$Config/WorkflowName$.ps1</ScriptName>
+                <ScriptBody>
+                  $Config/Script$
+                  $IncludeFileContent/Shared Scripts/Logging.ps1$
+                  $IncludeFileContent/Shared Scripts/JsonParser.ps1$
+                  $IncludeFileContent/Shared Scripts/RestApi.ps1$
+                  $IncludeFileContent/Shared Scripts/HealthServicesManagement.ps1$
+                  $IncludeFileContent/Shared Scripts/DiscoveryHelpers.ps1$
+
+                  $ScriptApi = New-Object -ComObject "MOM.ScriptAPI"
+                  
+                  try {
+                    if (!$Username) {
+                      CreateEmptyDiscoveryData
+                      return
+                    }
+                    Main
+                  } catch {
+                    LogMessage '$Config/WorkflowName$' 1 $_
+                    CreateEmptyDiscoveryData
+                  }
+                </ScriptBody>
+                <Parameters>$Config/Parameters$</Parameters>
+                <TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
+              </DataSource>
+            </MemberModules>
+            <Composition>
+              <Node ID="DS" />
+            </Composition>
+          </Composite>
+        </ModuleImplementation>
+        <OutputType>System!System.Discovery.Data</OutputType>
+      </DataSourceModuleType>
+    </ModuleTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.Module.PowerShellDiscoveryDataSource">
+          <Name>Hadoop PowerShell Script Discovery Data Provider</Name>
+          <Description>This module executes PowerShell scripts to discover different Hadoop entities.</Description>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>
\ 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/HadoopMp/Modules/DataSources/Discovery/Scripts/ClusterServicesDiscovery.ps1
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/Scripts/ClusterServicesDiscovery.ps1 b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/Scripts/ClusterServicesDiscovery.ps1
new file mode 100644
index 0000000..cda6b14
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/Scripts/ClusterServicesDiscovery.ps1
@@ -0,0 +1,80 @@
+## 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.
+
+Param ($TemplateName, $ClusterName, $ClusterAmbariUri, $WatcherNodesList = "", $Username, $Password)
+
+function DiscoverServices($discoveryData, $healthServices) {
+    $parent = $discoveryData.CreateClassInstance("$MPElement[Name="Ambari.SCOM.ClusterSoftwareProjection"]$")
+    $parent.AddProperty("$MPElement[Name="Ambari.SCOM.Cluster.Private"]/TemplateName$", $TemplateName)
+    $parent.AddProperty("$MPElement[Name="Ambari.SCOM.Cluster.Private"]/ClusterName$", $ClusterName)
+
+    $clusterServices = InvokeRestAPI (JoinUri "$ClusterAmbariUri" "services") $Username $Password
+
+    foreach ($clusterService in $clusterServices.items) {
+        $serviceClassId = GetServiceClassId $clusterService.ServiceInfo.service_name
+        if ($serviceClassId -eq $null) { continue }
+
+        $serviceName = FormatClusterServiceName $clusterService.ServiceInfo.service_name
+
+        $servicePrivateEntity = $discoveryData.CreateClassInstance("$MPElement[Name="Ambari.SCOM.ClusterService.Private"]$")
+        $servicePrivateEntity.AddProperty("$MPElement[Name='Ambari.SCOM.AmbariManagedEntity']/AmbariUri$", $clusterService.href)
+        $servicePrivateEntity.AddProperty("$MPElement[Name="Ambari.SCOM.ClusterService.Private"]/TemplateName$", $TemplateName)
+        $servicePrivateEntity.AddProperty("$MPElement[Name="Ambari.SCOM.ClusterService.Private"]/ClusterName$", $ClusterName)
+        $servicePrivateEntity.AddProperty("$MPElement[Name='Ambari.SCOM.ClusterService.Private']/ServiceName$", $clusterService.ServiceInfo.service_name)
+        $servicePrivateEntity.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", (GetPrivateEntityDisplayName $serviceName))
+        $discoveryData.AddInstance($servicePrivateEntity)
+
+        AddManagementRelationship $discoveryData $healthServices (MergeStrings $ClusterName $clusterService.name) $servicePrivateEntity
+
+        $serviceEntity = $discoveryData.CreateClassInstance($serviceClassId)
+        $serviceEntity.AddProperty("$MPElement[Name="Ambari.SCOM.ClusterService.Private"]/TemplateName$", $TemplateName)
+        $serviceEntity.AddProperty("$MPElement[Name="Ambari.SCOM.ClusterService.Private"]/ClusterName$", $ClusterName)
+        $serviceEntity.AddProperty("$MPElement[Name='Ambari.SCOM.ClusterService.Private']/ServiceName$", $clusterService.ServiceInfo.service_name)
+        $serviceEntity.AddProperty("$MPElement[Name="Ambari.SCOM.ClusterService"]/ClusterName$", $ClusterName)
+        $serviceEntity.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $serviceName)
+        $discoveryData.AddInstance($serviceEntity)
+
+        $parentRelationship = $discoveryData.CreateRelationshipInstance("$MPElement[Name="Ambari.SCOM.ClusterSoftwareProjectionContainsClusterService"]$")
+        $parentRelationship.Source = $parent
+        $parentRelationship.Target = $serviceEntity
+        $discoveryData.AddInstance($parentRelationship)
+    }
+}
+
+function GetServiceClassId($monitoringUri) {
+    switch ($monitoringUri -replace ".*/", "") {
+        'hdfs' { '$MPElement[Name="Ambari.SCOM.ClusterService.Hdfs"]$' }
+        'mapreduce' { '$MPElement[Name="Ambari.SCOM.ClusterService.MapReduce"]$' }
+        'hive' { '$MPElement[Name="Ambari.SCOM.ClusterService.Hive"]$' }
+        { 'templeton', 'webhcat' -contains $_ } { '$MPElement[Name="Ambari.SCOM.ClusterService.Templeton"]$' }
+        'oozie' { '$MPElement[Name="Ambari.SCOM.ClusterService.Oozie"]$' }
+        'pig' { '$MPElement[Name="Ambari.SCOM.ClusterService.Pig"]$' }
+        'sqoop' { '$MPElement[Name="Ambari.SCOM.ClusterService.Sqoop"]$' }
+        default: { $null }
+    }
+}
+
+function Main() {
+    $discoveryData = $ScriptApi.CreateDiscoveryData(0, "$MPElement$", "$Target/Id$")
+
+    $healthServices = CreateHealthServicesFromWatcherNodesList $discoveryData $WatcherNodesList
+    if ($healthServices.Count -eq 0) { return $discoveryData }
+
+    DiscoverServices $discoveryData $healthServices
+
+    $discoveryData
+}

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/Scripts/ClustersDiscovery.ps1
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/Scripts/ClustersDiscovery.ps1 b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/Scripts/ClustersDiscovery.ps1
new file mode 100644
index 0000000..d0e9de2
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/Scripts/ClustersDiscovery.ps1
@@ -0,0 +1,92 @@
+## 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.
+
+Param ($TemplateName, $SeedComputerName, $ClusterSeedClassId, $AmbariUri, $ClustersQueryUriSegment, $WatcherNodesList = "", $Username, $Password)
+
+function CreateClusterEntity($discoveryData, $cluster, $healthServices) {
+    $clusterName = $cluster.Clusters.cluster_name
+
+    $clusterSeedEntity = $discoveryData.CreateClassInstance("$ClusterSeedClassId")
+    $clusterSeedEntity.AddProperty("$MPElement[Name='Ambari.SCOM.AmbariManagedEntity']/AmbariUri$", $cluster.href)
+    $clusterSeedEntity.AddProperty("$MPElement[Name="Ambari.SCOM.ClusterSeed"]/TemplateName$", $TemplateName)
+    $clusterSeedEntity.AddProperty("$MPElement[Name="Ambari.SCOM.ClusterSeed"]/ClusterName$", $clusterName)
+    $clusterSeedEntity.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "Hadoop Cluster Seed ($clusterName)")
+    $discoveryData.AddInstance($clusterSeedEntity)
+
+    AddManagementRelationship $discoveryData $healthServices $cluster.name $clusterSeedEntity
+
+    $clusterPrivateEntity = $discoveryData.CreateClassInstance("$MPElement[Name="Ambari.SCOM.Cluster.Private"]$")
+    $clusterPrivateEntity.AddProperty("$MPElement[Name="Ambari.SCOM.Cluster.Private"]/TemplateName$", $TemplateName)
+    $clusterPrivateEntity.AddProperty("$MPElement[Name="Ambari.SCOM.Cluster.Private"]/ClusterName$", $clusterName)
+    $clusterPrivateEntity.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", (GetPrivateEntityDisplayName $clusterName))
+    $discoveryData.AddInstance($clusterPrivateEntity)
+
+    $clusterEntity = $discoveryData.CreateClassInstance("$MPElement[Name="Ambari.SCOM.Cluster"]$")
+    $clusterEntity.AddProperty("$MPElement[Name="Ambari.SCOM.Cluster.Private"]/TemplateName$", $TemplateName)
+    $clusterEntity.AddProperty("$MPElement[Name="Ambari.SCOM.Cluster.Private"]/ClusterName$", $clusterName)
+    $clusterEntity.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $clusterName)
+    $discoveryData.AddInstance($clusterEntity)
+
+    $nodesGroup = $discoveryData.CreateClassInstance("$MPElement[Name="Ambari.SCOM.ClusterHardwareProjection"]$")
+    $nodesGroup.AddProperty("$MPElement[Name="Ambari.SCOM.Cluster.Private"]/TemplateName$", $TemplateName)
+    $nodesGroup.AddProperty("$MPElement[Name="Ambari.SCOM.Cluster.Private"]/ClusterName$", $clusterName)
+    $nodesGroup.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "Hosts")
+    $discoveryData.AddInstance($nodesGroup)
+
+    $servicesGroup = $discoveryData.CreateClassInstance("$MPElement[Name="Ambari.SCOM.ClusterSoftwareProjection"]$")
+    $servicesGroup.AddProperty("$MPElement[Name="Ambari.SCOM.Cluster.Private"]/TemplateName$", $TemplateName)
+    $servicesGroup.AddProperty("$MPElement[Name="Ambari.SCOM.Cluster.Private"]/ClusterName$", $clusterName)
+    $servicesGroup.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "Services")
+    $discoveryData.AddInstance($servicesGroup)
+
+    $clusterEntity
+}
+
+function DiscoverClusters($discoveryData, $healthServices) {
+    $parent = $discoveryData.CreateClassInstance("$MPElement[Name="Ambari.SCOM.AmbariSeed"]$")
+    $parent.AddProperty("$MPElement[Name="Windows!Microsoft.Windows.Computer"]/PrincipalName$", $SeedComputerName)
+    $parent.AddProperty("$MPElement[Name="Ambari.SCOM.AmbariSeed"]/TemplateName$", $TemplateName)
+
+    $clustersResult = InvokeRestAPI (JoinUri "$AmbariUri" "$ClustersQueryUriSegment") $Username $Password
+    foreach ($cluster in $clustersResult.items) {
+        $clusterEntity = CreateClusterEntity $discoveryData $cluster $healthServices
+
+        $parentRelationship = $discoveryData.CreateRelationshipInstance("$MPElement[Name="Ambari.SCOM.AmbariSeedContainsCluster"]$")
+        $parentRelationship.Source = $parent
+        $parentRelationship.Target = $clusterEntity
+        $discoveryData.AddInstance($parentRelationship)
+    }
+}
+
+function Main() {
+    $discoveryData = $ScriptApi.CreateDiscoveryData(0, "$MPElement$", "$Target/Id$")
+
+    $healthServices = @()
+    foreach ($watcherNodeName in $WatcherNodesList.Split(';', [StringSplitOptions]::RemoveEmptyEntries)) {
+        $healthServices += CreateHealthService $discoveryData $watcherNodeName
+
+        $watcherNodeEntity = $discoveryData.CreateClassInstance("$MPElement[Name="Ambari.SCOM.AmbariWatcherNode"]$")
+        $watcherNodeEntity.AddProperty("$MPElement[Name="Windows!Microsoft.Windows.Computer"]/PrincipalName$", $watcherNodeName)
+        $watcherNodeEntity.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "Hadoop Watcher Node")
+        $discoveryData.AddInstance($watcherNodeEntity)
+    }
+    if ($healthServices.Count -eq 0) { return $discoveryData }
+
+    DiscoverClusters $discoveryData $healthServices
+
+    $discoveryData
+}

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/Scripts/HostComponentsDiscovery.ps1
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/Scripts/HostComponentsDiscovery.ps1 b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/Scripts/HostComponentsDiscovery.ps1
new file mode 100644
index 0000000..f2c29ce
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/Scripts/HostComponentsDiscovery.ps1
@@ -0,0 +1,134 @@
+## 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.
+
+Param ($TemplateName, $ClusterName, $HostName, $HostIpAddress, $HostAmbariUri, $Username, $PAssword)
+
+function Main() {
+    $discoveryData = $ScriptApi.CreateDiscoveryData(0, '$MPElement$', '$Target/Id$')
+
+    $componentsResult = InvokeRestAPI (JoinUri "$HostAmbariUri" 'host_components') $Username $Password
+
+    $baseMonitoringUri = $HostAmbariUri -replace '(?i)/hosts/.*', ''
+    $parentServices = @{}
+
+    foreach ($component in $componentsResult.items) {
+        $componentClassId = GetComponentClassId $component.HostRoles.component_name
+        if ($componentClassId -eq $null) { continue }
+
+        $componentName = $component.HostRoles.component_name
+
+        $componentEntity = $discoveryData.CreateClassInstance($componentClassId)
+        $componentEntity.AddProperty('$MPElement[Name="Ambari.SCOM.Host.Private"]/TemplateName$', $TemplateName)
+        $componentEntity.AddProperty('$MPElement[Name="Ambari.SCOM.Host.Private"]/ClusterName$', $ClusterName)
+        $componentEntity.AddProperty('$MPElement[Name="Ambari.SCOM.Host.Private"]/HostName$', $HostName)
+        $componentEntity.AddProperty('$MPElement[Name="Ambari.SCOM.Host"]/IpAddress$', $HostIpAddress)
+        $componentEntity.AddProperty('$MPElement[Name="Ambari.SCOM.AmbariManagedEntity"]/AmbariUri$', $component.href)
+        $componentEntity.AddProperty('$MPElement[Name="Ambari.SCOM.HostComponent"]/ClusterName$', $ClusterName)
+        $componentEntity.AddProperty('$MPElement[Name="Ambari.SCOM.HostComponent"]/ComponentName$', $componentName)
+        $componentEntity.AddProperty('$MPElement[Name="System!System.Entity"]/DisplayName$', (FormatHostComponentName $componentName))
+        $discoveryData.AddInstance($componentEntity)
+
+        $parentServiceName = GetParentServiceName $componentName
+
+        if (!$parentServiceName) { continue }
+
+        if (!$parentServices.ContainsKey($parentServiceName)) {
+            $parentServices[$parentServiceName] = CreateParentService $discoveryData $parentServiceName
+        }
+
+        $parentServiceRelationship = $discoveryData.CreateRelationshipInstance((GetParentServiceRelationshipId $componentName))
+        $parentServiceRelationship.Source = $parentServices[$parentServiceName]
+        $parentServiceRelationship.Target = $componentEntity
+        $discoveryData.AddInstance($parentServiceRelationship)
+    }
+
+    $discoveryData
+}
+
+function GetComponentClassId($componentName) {
+    switch ($componentName) {
+        'namenode' { '$MPElement[Name="Ambari.SCOM.HostComponent.NameNode"]$' }
+        'secondary_namenode' { '$MPElement[Name="Ambari.SCOM.HostComponent.SecondaryNameNode"]$' }
+        'jobtracker' { '$MPElement[Name="Ambari.SCOM.HostComponent.JobTracker"]$' }
+        'tasktracker' { '$MPElement[Name="Ambari.SCOM.HostComponent.TaskTracker"]$' }
+        'hive_server' { '$MPElement[Name="Ambari.SCOM.HostComponent.HiveServer"]$' }
+        'hive_metastore' { '$MPElement[Name="Ambari.SCOM.HostComponent.HiveMetastore"]$' }
+        'hive_client' { '$MPElement[Name="Ambari.SCOM.HostComponent.HiveClient"]$' }
+        { 'templeton', 'webhcat_server' -contains $_ } { '$MPElement[Name="Ambari.SCOM.HostComponent.TempletonServer"]$' }
+        'oozie_server' { '$MPElement[Name="Ambari.SCOM.HostComponent.OozieServer"]$' }
+        'pig' { '$MPElement[Name="Ambari.SCOM.HostComponent.Pig"]$' }
+        'sqoop' { '$MPElement[Name="Ambari.SCOM.HostComponent.Sqoop"]$' }
+        default { $null }
+    }
+}
+
+function GetParentServiceName($componentName) {
+    switch ($componentName) {
+        { 'namenode', 'secondary_namenode', 'datanode' -contains $_ } { 'HDFS' }
+        { 'jobtracker', 'tasktracker' -contains $_ } { 'MAPREDUCE' }
+        { 'hive_server', 'hive_metastore', 'hive_client' -contains $_ } { 'HIVE' }
+        'templeton' { 'TEMPLETON' }
+        'webhcat_server' { 'WEBHCAT' }
+        'oozie_server' { 'OOZIE' }
+        'pig' { 'PIG' }
+        'sqoop' { 'SQOOP' }
+        default { $null }
+    }
+}
+
+function CreateParentService($discoveryData, $serviceName) {
+    $serviceClassId = switch ($serviceName) {
+        'hdfs' { '$MPElement[Name="Ambari.SCOM.ClusterService.Hdfs"]$' }
+        'mapreduce' { '$MPElement[Name="Ambari.SCOM.ClusterService.MapReduce"]$' }
+        'hive' { '$MPElement[Name="Ambari.SCOM.ClusterService.Hive"]$' }
+        { 'templeton', 'webhcat' -contains $_ } { '$MPElement[Name="Ambari.SCOM.ClusterService.Templeton"]$' }
+        'oozie' { '$MPElement[Name="Ambari.SCOM.ClusterService.Oozie"]$' }
+        'pig' { '$MPElement[Name="Ambari.SCOM.ClusterService.Pig"]$' }
+        'sqoop' { '$MPElement[Name="Ambari.SCOM.ClusterService.Sqoop"]$' }
+    }
+
+    $serviceDisplayName = FormatClusterServiceName $serviceName
+
+    $privateEntity = $discoveryData.CreateClassInstance('$MPElement[Name="Ambari.SCOM.ClusterService.Private"]$')
+    $privateEntity.AddProperty('$MPElement[Name="Ambari.SCOM.ClusterService.Private"]/TemplateName$', $TemplateName)
+    $privateEntity.AddProperty('$MPElement[Name="Ambari.SCOM.ClusterService.Private"]/ClusterName$', $ClusterName)
+    $privateEntity.AddProperty('$MPElement[Name="Ambari.SCOM.ClusterService.Private"]/ServiceName$', $serviceName)
+    $privateEntity.AddProperty('$MPElement[Name="System!System.Entity"]/DisplayName$', (GetPrivateEntityDisplayName $serviceDisplayName))
+    $discoveryData.AddInstance($privateEntity)
+
+    $entity = $discoveryData.CreateClassInstance("$serviceClassId")
+    $entity.AddProperty('$MPElement[Name="Ambari.SCOM.ClusterService.Private"]/TemplateName$', $TemplateName)
+    $entity.AddProperty('$MPElement[Name="Ambari.SCOM.ClusterService.Private"]/ClusterName$', $ClusterName)
+    $entity.AddProperty('$MPElement[Name="Ambari.SCOM.ClusterService.Private"]/ServiceName$', $serviceName)
+    $entity.AddProperty('$MPElement[Name="System!System.Entity"]/DisplayName$', $serviceDisplayName)
+    $discoveryData.AddInstance($entity)
+
+    $entity
+}
+
+function GetParentServiceRelationshipId($componentName) {
+    switch ($componentName) {
+        'namenode' { '$MPElement[Name="Ambari.SCOM.HdfsServiceContainsNameNodeComponent"]$' }
+        'secondary_namenode' { '$MPElement[Name="Ambari.SCOM.HdfsServiceContainsSecondaryNameNodeComponent"]$' }
+        'jobtracker' { '$MPElement[Name="Ambari.SCOM.MapReduceServiceContainsJobTrackerComponent"]$' }
+        'hive_server' { '$MPElement[Name="Ambari.SCOM.HiveServiceContainsHiveServerComponent"]$' }
+        'hive_metastore' { '$MPElement[Name="Ambari.SCOM.HiveServiceContainsHiveMetastoreComponent"]$' }
+        {'templeton', 'webhcat_server' -contains $_ } { '$MPElement[Name="Ambari.SCOM.TempletonServiceContainsTempletonServerComponent"]$' }
+        'oozie_server' { '$MPElement[Name="Ambari.SCOM.OozieServiceContainsOozieServerComponent"]$' }
+        default { '$MPElement[Name="Ambari.SCOM.ClusterServiceContainsHostComponent"]$' }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/Scripts/HostsDiscovery.ps1
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/Scripts/HostsDiscovery.ps1 b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/Scripts/HostsDiscovery.ps1
new file mode 100644
index 0000000..6307980
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Discovery/Scripts/HostsDiscovery.ps1
@@ -0,0 +1,64 @@
+## 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.
+
+Param ($TemplateName, $ClusterName, $ClusterAmbariUri, $WatcherNodesList = "", $Username, $Password)
+
+function DiscoverHosts($discoveryData, $healthServices) {
+    $parent = $discoveryData.CreateClassInstance("$MPElement[Name="Ambari.SCOM.ClusterHardwareProjection"]$")
+    $parent.AddProperty("$MPElement[Name="Ambari.SCOM.Cluster.Private"]/TemplateName$", $TemplateName)
+    $parent.AddProperty("$MPElement[Name="Ambari.SCOM.Cluster.Private"]/ClusterName$", $ClusterName)
+
+    $nodesResult = InvokeRestAPI (JoinUri "$ClusterAmbariUri" "hosts") $Username $Password
+    foreach ($node in $nodesResult.items) {
+        # TODO: Get IP addresses with single request?
+        $nodeResult = InvokeRestAPI $node.href $Username $Password
+
+        $nodePrivateEntity = $discoveryData.CreateClassInstance("$MPElement[Name="Ambari.SCOM.Host.Private"]$")
+        $nodePrivateEntity.AddProperty("$MPElement[Name='Ambari.SCOM.AmbariManagedEntity']/AmbariUri$", $node.href)
+        $nodePrivateEntity.AddProperty("$MPElement[Name="Ambari.SCOM.Host.Private"]/TemplateName$", $TemplateName)
+        $nodePrivateEntity.AddProperty("$MPElement[Name="Ambari.SCOM.Host.Private"]/ClusterName$", $ClusterName)
+        $nodePrivateEntity.AddProperty("$MPElement[Name='Ambari.SCOM.Host.Private']/HostName$", $node.Hosts.host_name)
+        $nodePrivateEntity.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", (GetPrivateEntityDisplayName $node.Hosts.host_name))
+        $discoveryData.AddInstance($nodePrivateEntity)
+
+        AddManagementRelationship $discoveryData $healthServices (MergeStrings $ClusterName $node.Hosts.host_name) $nodePrivateEntity
+
+        $nodeEntity = $discoveryData.CreateClassInstance("$MPElement[Name="Ambari.SCOM.Host"]$")
+        $nodeEntity.AddProperty("$MPElement[Name="Ambari.SCOM.Host.Private"]/TemplateName$", $TemplateName)
+        $nodeEntity.AddProperty("$MPElement[Name="Ambari.SCOM.Host.Private"]/ClusterName$", $ClusterName)
+        $nodeEntity.AddProperty("$MPElement[Name='Ambari.SCOM.Host.Private']/HostName$", $node.Hosts.host_name)
+        $nodeEntity.AddProperty("$MPElement[Name='Ambari.SCOM.Host']/IpAddress$", $nodeResult.Hosts.ip)
+        $nodeEntity.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", $node.Hosts.host_name)
+        $discoveryData.AddInstance($nodeEntity)
+
+        $parentRelationship = $discoveryData.CreateRelationshipInstance("$MPElement[Name="Ambari.SCOM.ClusterHardwareProjectionContainsHost"]$")
+        $parentRelationship.Source = $parent
+        $parentRelationship.Target = $nodeEntity
+        $discoveryData.AddInstance($parentRelationship)
+    }
+}
+
+function Main() {
+    $discoveryData = $ScriptApi.CreateDiscoveryData(0, "$MPElement$", "$Target/Id$")
+
+    $healthServices = CreateHealthServicesFromWatcherNodesList $discoveryData $WatcherNodesList
+    if ($healthServices.Count -eq 0) { return $discoveryData }
+
+    DiscoverHosts $discoveryData $healthServices
+
+    $discoveryData
+}

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/BaseScriptedPropertyBagDataSource.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/BaseScriptedPropertyBagDataSource.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/BaseScriptedPropertyBagDataSource.mpx
new file mode 100644
index 0000000..986104b
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/BaseScriptedPropertyBagDataSource.mpx
@@ -0,0 +1,94 @@
+<!--## 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.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <ModuleTypes>
+      <DataSourceModuleType ID="Ambari.SCOM.Module.BaseScriptedPropertyBagDataSource" Accessibility="Internal">
+        <Configuration>
+          <IncludeSchemaTypes>
+            <SchemaType>Windows!Microsoft.Windows.PowerShellSchema</SchemaType>
+            <SchemaType>System!System.ExpressionEvaluatorSchema</SchemaType>
+          </IncludeSchemaTypes>
+          <xsd:element name="IntervalSeconds" type="xsd:integer" />
+          <xsd:element name="SyncTime" type="xsd:string" minOccurs="0" />
+          <xsd:element name="TimeoutSeconds" type="xsd:int" />
+
+          <xsd:element name="StartupExpression" type="ExpressionType" minOccurs="0" />
+          
+          <xsd:element name="WorkflowName" type="xsd:string" />
+          <xsd:element name="Script" type="NonNullString" />
+          <xsd:element name="Parameters" type="NamedParametersType" />
+        </Configuration>
+        <ModuleImplementation>
+          <Composite>
+            <MemberModules>
+              <DataSource ID="Scheduler" TypeID="System!System.SimpleScheduler">
+                <IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
+                <SyncTime>$Config/SyncTime$</SyncTime>
+              </DataSource>
+              <ProbeAction ID="PS" TypeID="Ambari.SCOM.Module.ImpersonatedPowerShellPropertyBagProbe" >
+                <ScriptName>$Config/WorkflowName$.ps1</ScriptName>
+                <ScriptBody>
+                  $Config/Script$
+
+                  $IncludeFileContent/Shared Scripts/Logging.ps1$
+                  $IncludeFileContent/Shared Scripts/JsonParser.ps1$
+                  $IncludeFileContent/Shared Scripts/RestApi.ps1$
+                  $IncludeFileContent/Shared Scripts/MonitoringHelpers.ps1$
+
+                  if (!$Username) { return }
+                  
+                  $ScriptApi = New-Object -ComObject "MOM.ScriptAPI"
+                  try {
+                    Main
+                  } catch {
+                    LogMessage '$Config/WorkflowName$' 1 $_
+                  }
+                </ScriptBody>
+                <Parameters>$Config/Parameters$</Parameters>
+                <TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
+              </ProbeAction>
+              <ConditionDetection ID="StartupCheck" TypeID="System!System.ExpressionFilter">
+                <Expression>$Config/StartupExpression$</Expression>
+              </ConditionDetection>
+            </MemberModules>
+            <Composition>
+              <Node ID="PS">
+                <Node ID="StartupCheck">
+                  <Node ID="Scheduler" />
+                </Node>
+              </Node>
+            </Composition>
+          </Composite>
+        </ModuleImplementation>
+        <OutputType>System!System.PropertyBagData</OutputType>
+      </DataSourceModuleType>
+    </ModuleTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.Module.BaseScriptedPropertyBagDataSource">
+          <Name>Hadoop Base Scripted Property Bag Data Provider</Name>
+          <Description>This module allows to execute Powershell scripts to collect data into Property Bag objects.</Description>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/ClusterServiceMetricsDataSource.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/ClusterServiceMetricsDataSource.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/ClusterServiceMetricsDataSource.mpx
new file mode 100644
index 0000000..b81f457
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/ClusterServiceMetricsDataSource.mpx
@@ -0,0 +1,102 @@
+<!--## 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.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <ModuleTypes>
+      <DataSourceModuleType ID="Ambari.SCOM.Module.ClusterServiceMetricsDataSource" Accessibility="Internal">
+        <Configuration>
+          <IncludeSchemaTypes>
+            <SchemaType>Windows!Microsoft.Windows.PowerShellSchema</SchemaType>
+          </IncludeSchemaTypes>
+          <xsd:element name="IntervalSeconds" type="xsd:integer" />
+          <xsd:element minOccurs="0" maxOccurs="1" name="SyncTime" type="xsd:string" />
+          <xsd:element name="TimeoutSeconds" type="xsd:int" />
+
+          <xsd:element name="CollectionScript" type="NonNullString" />
+          <xsd:element name="ServiceName" type="xsd:string" />
+        </Configuration>
+        <ModuleImplementation>
+          <Composite>
+            <MemberModules>
+              <DataSource ID="DS" TypeID="Ambari.SCOM.Module.BaseScriptedPropertyBagDataSource">
+                <IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
+                <SyncTime>$Config/SyncTime$</SyncTime>
+                <TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
+
+                <StartupExpression>
+                  <And>
+                    <Expression>
+                      <Exists>
+                        <ValueExpression>
+                          <Value Type="String">$Target/Host/Property[Type="Ambari.SCOM.AmbariManagedEntity"]/AmbariUri$</Value>
+                        </ValueExpression>
+                      </Exists>
+                    </Expression>
+                    <Expression>
+                      <SimpleExpression>
+                        <ValueExpression>
+                          <Value Type="String">$Target/Host/Property[Type="Ambari.SCOM.AmbariManagedEntity"]/AmbariUri$</Value>
+                        </ValueExpression>
+                        <Operator>NotEqual</Operator>
+                        <ValueExpression>
+                          <Value Type="String" />
+                        </ValueExpression>
+                      </SimpleExpression>
+                    </Expression>
+                  </And>
+                </StartupExpression>
+
+                <WorkflowName>$Config/ServiceName$ServiceMetricsCollection</WorkflowName>
+                <Script>$Config/CollectionScript$</Script>
+                <Parameters>
+                  <Parameter>
+                    <Name>MonitoringAmbariUri</Name>
+                    <Value>$Target/Host/Property[Type="Ambari.SCOM.AmbariManagedEntity"]/AmbariUri$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>Username</Name>
+                    <Value>$RunAs[Name="Ambari.SCOM.Profile.Ambari"]/UserName$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>Password</Name>
+                    <Value>$RunAs[Name="Ambari.SCOM.Profile.Ambari"]/Password$</Value>
+                  </Parameter>
+                </Parameters>
+              </DataSource>
+            </MemberModules>
+            <Composition>
+              <Node ID="DS" />
+            </Composition>
+          </Composite>
+        </ModuleImplementation>
+        <OutputType>System!System.PropertyBagData</OutputType>
+      </DataSourceModuleType>
+    </ModuleTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.Module.ClusterServiceMetricsDataSource">
+          <Name>Hadoop Base Cluster Service Metrics Property Bag Data Provider</Name>
+          <Description>This module collects all metrics available for target Cluster Service into property bag using provided collection script.</Description>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/HdfsServiceMetricsDataSource.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/HdfsServiceMetricsDataSource.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/HdfsServiceMetricsDataSource.mpx
new file mode 100644
index 0000000..ac7aaf3
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/HdfsServiceMetricsDataSource.mpx
@@ -0,0 +1,72 @@
+<!--## 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.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <ModuleTypes>
+      <DataSourceModuleType ID="Ambari.SCOM.Module.HdfsServiceMetricsDataSource" Accessibility="Internal">
+        <Configuration>
+          <xsd:element name="IntervalSeconds" type="xsd:integer" />
+          <xsd:element minOccurs="0" maxOccurs="1" name="SyncTime" type="xsd:string" />
+          <xsd:element name="TimeoutSeconds" type="xsd:int" />
+        </Configuration>
+        <OverrideableParameters>
+          <OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int" />
+          <OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string" />
+          <OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int" />
+        </OverrideableParameters>
+        <ModuleImplementation>
+          <Composite>
+            <MemberModules>
+              <DataSource ID="DS" TypeID="Ambari.SCOM.Module.ClusterServiceMetricsDataSource">
+                <IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
+                <SyncTime>$Config/SyncTime$</SyncTime>
+                <TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
+                <CollectionScript>$IncludeFileContent/Modules/DataSources/Monitoring/Scripts/HdfsServiceMetrics.ps1$</CollectionScript>
+                <ServiceName>Hdfs</ServiceName>
+              </DataSource>
+            </MemberModules>
+            <Composition>
+              <Node ID="DS" />
+            </Composition>
+          </Composite>
+        </ModuleImplementation>
+        <OutputType>System!System.PropertyBagData</OutputType>
+      </DataSourceModuleType>
+    </ModuleTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.Module.HdfsServiceMetricsDataSource">
+          <Name>Hadoop HDFS Cluster Service Metrics Property Bag Data Provider</Name>
+          <Description>This module collects all metrics available for target HDFS Cluster Service into property bag.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HdfsServiceMetricsDataSource" SubElementID="IntervalSeconds">
+          <Name>Interval (sec)</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HdfsServiceMetricsDataSource" SubElementID="SyncTime">
+          <Name>Sync Time</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HdfsServiceMetricsDataSource" SubElementID="TimeoutSeconds">
+          <Name>Timeout (sec)</Name>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/HdfsServiceMetricsPerformanceDataSource.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/HdfsServiceMetricsPerformanceDataSource.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/HdfsServiceMetricsPerformanceDataSource.mpx
new file mode 100644
index 0000000..f3345fe
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/HdfsServiceMetricsPerformanceDataSource.mpx
@@ -0,0 +1,81 @@
+<!--## 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.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <ModuleTypes>
+      <DataSourceModuleType ID="Ambari.SCOM.Module.HdfsServiceMetricsPerformanceDataSource" Accessibility="Internal">
+        <Configuration>
+          <xsd:element name="IntervalSeconds" type="xsd:integer" />
+          <xsd:element minOccurs="0" maxOccurs="1" name="SyncTime" type="xsd:string" />
+          <xsd:element name="TimeoutSeconds" type="xsd:int" />
+
+          <xsd:element name="PropertyName" type="xsd:string" />
+          <xsd:element name="CounterName" type="xsd:string" />
+        </Configuration>
+        <OverrideableParameters>
+          <OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int" />
+          <OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string" />
+          <OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int" />
+        </OverrideableParameters>
+        <ModuleImplementation>
+          <Composite>
+            <MemberModules>
+              <DataSource ID="DS" TypeID="Ambari.SCOM.Module.HdfsServiceMetricsDataSource">
+                <IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
+                <SyncTime>$Config/SyncTime$</SyncTime>
+                <TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
+              </DataSource>
+              <ConditionDetection ID="Mapper" TypeID="Ambari.SCOM.Module.PropertyBagPerformanceDataMapper">
+                <PropertyName>$Config/PropertyName$</PropertyName>
+                <ObjectName>Hadoop : Cluster Service</ObjectName>
+                <CounterName>$Config/CounterName$</CounterName>
+                <InstanceName>$Target/Host/Property[Type="Ambari.SCOM.ClusterService.Private"]/ClusterName$ : $Target/Host/Property[Type="Ambari.SCOM.ClusterService.Private"]/ServiceName$</InstanceName>
+              </ConditionDetection>
+            </MemberModules>
+            <Composition>
+              <Node ID="Mapper">
+                <Node ID="DS" />
+              </Node>
+            </Composition>
+          </Composite>
+        </ModuleImplementation>
+        <OutputType>Perf!System.Performance.Data</OutputType>
+      </DataSourceModuleType>
+    </ModuleTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.Module.HdfsServiceMetricsPerformanceDataSource">
+          <Name>Hadoop HDFS Cluster Service Metrics Performance Data Provider</Name>
+          <Description>This module collects specified metric for HDFS Cluster Service as performance data point.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HdfsServiceMetricsPerformanceDataSource" SubElementID="IntervalSeconds">
+          <Name>Interval (sec)</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HdfsServiceMetricsPerformanceDataSource" SubElementID="SyncTime">
+          <Name>Sync Time</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HdfsServiceMetricsPerformanceDataSource" SubElementID="TimeoutSeconds">
+          <Name>Timeout (sec)</Name>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/HostComponentHealthStateDataSource.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/HostComponentHealthStateDataSource.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/HostComponentHealthStateDataSource.mpx
new file mode 100644
index 0000000..9b86429
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/HostComponentHealthStateDataSource.mpx
@@ -0,0 +1,87 @@
+<!--## 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.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <ModuleTypes>
+      <DataSourceModuleType ID="Ambari.SCOM.Module.HostComponentHealthStateDataSource" Accessibility="Internal">
+        <Configuration>
+          <xsd:element name="IntervalSeconds" type="xsd:integer" />
+          <xsd:element minOccurs="0" maxOccurs="1" name="SyncTime" type="xsd:string" />
+          <xsd:element name="TimeoutSeconds" type="xsd:int" />
+          <xsd:element name="MonitoringAmbariUri" type="xsd:string" />
+        </Configuration>
+        <OverrideableParameters>
+          <OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int" />
+          <OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string" />
+          <OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int" />
+        </OverrideableParameters>
+        <ModuleImplementation>
+          <Composite>
+            <MemberModules>
+              <DataSource ID="DS" TypeID="Ambari.SCOM.Module.BaseScriptedPropertyBagDataSource">
+                <IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
+                <SyncTime>$Config/SyncTime$</SyncTime>
+                <TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
+                <WorkflowName>HostComponentHealthState</WorkflowName>
+                <Script>$IncludeFileContent/Modules/DataSources/Monitoring/Scripts/HostComponentHealthState.ps1$</Script>
+                <Parameters>
+                  <Parameter>
+                    <Name>MonitoringAmbariUri</Name>
+                    <Value>$Config/MonitoringAmbariUri$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>Username</Name>
+                    <Value>$RunAs[Name="Ambari.SCOM.Profile.Ambari"]/UserName$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>Password</Name>
+                    <Value>$RunAs[Name="Ambari.SCOM.Profile.Ambari"]/Password$</Value>
+                  </Parameter>
+                </Parameters>
+              </DataSource>
+            </MemberModules>
+            <Composition>
+              <Node ID="DS" />
+            </Composition>
+          </Composite>
+        </ModuleImplementation>
+        <OutputType>System!System.PropertyBagData</OutputType>
+      </DataSourceModuleType>
+    </ModuleTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.Module.HostComponentHealthStateDataSource">
+          <Name>Hadoop Host Component Health State Data Provider</Name>
+          <Description>This module providers health state for target Host Component.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HostComponentHealthStateDataSource" SubElementID="IntervalSeconds">
+          <Name>Interval (sec)</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HostComponentHealthStateDataSource" SubElementID="SyncTime">
+          <Name>Sync Time</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HostComponentHealthStateDataSource" SubElementID="TimeoutSeconds">
+          <Name>Timeout (sec)</Name>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/HostComponentMetricsDataSource.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/HostComponentMetricsDataSource.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/HostComponentMetricsDataSource.mpx
new file mode 100644
index 0000000..b5911b8
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Modules/DataSources/Monitoring/HostComponentMetricsDataSource.mpx
@@ -0,0 +1,86 @@
+<!--## 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.-->
+
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <ModuleTypes>
+      <DataSourceModuleType ID="Ambari.SCOM.Module.HostComponentMetricsDataSource" Accessibility="Internal">
+        <Configuration>
+          <xsd:element name="IntervalSeconds" type="xsd:integer" />
+          <xsd:element minOccurs="0" maxOccurs="1" name="SyncTime" type="xsd:string" />
+          <xsd:element name="TimeoutSeconds" type="xsd:int" />
+        </Configuration>
+        <OverrideableParameters>
+          <OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int" />
+          <OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string" />
+          <OverrideableParameter ID="TimeoutSeconds" Selector="$Config/TimeoutSeconds$" ParameterType="int" />
+        </OverrideableParameters>
+        <ModuleImplementation>
+          <Composite>
+            <MemberModules>
+              <DataSource ID="DS" TypeID="Ambari.SCOM.Module.BaseScriptedPropertyBagDataSource">
+                <IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
+                <SyncTime>$Config/SyncTime$</SyncTime>
+                <TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
+                <WorkflowName>HostComponentMetricsCollection</WorkflowName>
+                <Script>$IncludeFileContent/Modules/DataSources/Monitoring/Scripts/HostComponentMetrics.ps1$</Script>
+                <Parameters>
+                  <Parameter>
+                    <Name>MonitoringAmbariUri</Name>
+                    <Value>$Target/Property[Type="Ambari.SCOM.AmbariManagedEntity"]/AmbariUri$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>Username</Name>
+                    <Value>$RunAs[Name="Ambari.SCOM.Profile.Ambari"]/UserName$</Value>
+                  </Parameter>
+                  <Parameter>
+                    <Name>Password</Name>
+                    <Value>$RunAs[Name="Ambari.SCOM.Profile.Ambari"]/Password$</Value>
+                  </Parameter>
+                </Parameters>
+              </DataSource>
+            </MemberModules>
+            <Composition>
+              <Node ID="DS" />
+            </Composition>
+          </Composite>
+        </ModuleImplementation>
+        <OutputType>System!System.PropertyBagData</OutputType>
+      </DataSourceModuleType>
+    </ModuleTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.Module.HostComponentMetricsDataSource">
+          <Name>Hadoop Host Component Metrics Data Provider</Name>
+          <Description>This module collects all metrics available for target Host Component into property bag.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HostComponentMetricsDataSource" SubElementID="IntervalSeconds">
+          <Name>Interval (sec)</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HostComponentMetricsDataSource" SubElementID="SyncTime">
+          <Name>Sync Time</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Module.HostComponentMetricsDataSource" SubElementID="TimeoutSeconds">
+          <Name>Timeout (sec)</Name>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+</ManagementPackFragment>


Mime
View raw message