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:49 UTC

[27/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/ambari-scom-server/src/test/java/org/apache/ambari/scom/SinkConnectionFactoryTest.java
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/scom/SinkConnectionFactoryTest.java b/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/scom/SinkConnectionFactoryTest.java
new file mode 100644
index 0000000..0a0c9d4
--- /dev/null
+++ b/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/scom/SinkConnectionFactoryTest.java
@@ -0,0 +1,68 @@
+/**
+ * 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.
+ */
+
+package org.apache.ambari.scom;
+
+import org.apache.ambari.server.configuration.Configuration;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.Properties;
+
+/**
+ * SinkConnectionFactory Tests.
+ */
+public class SinkConnectionFactoryTest {
+
+  public static SinkConnectionFactory getFactory(String url, String driver) {
+    Properties ambariProperties = new Properties();
+    ambariProperties.setProperty(SinkConnectionFactory.SCOM_SINK_DB_URL, url);
+    ambariProperties.setProperty(SinkConnectionFactory.SCOM_SINK_DB_DRIVER, driver);
+
+    Configuration configuration =  new TestConfiguration(ambariProperties);
+
+    SinkConnectionFactory connectionFactory = new SinkConnectionFactory();
+
+    connectionFactory.init(configuration);
+
+    return connectionFactory;
+  }
+
+  @Test
+  public void testGetDatabaseUrl() throws Exception {
+    SinkConnectionFactory factory = getFactory("myURL", "myDriver");
+    Assert.assertEquals("myURL", factory.getDatabaseUrl());
+  }
+
+  @Test
+  public void testGetDatabaseDriver() throws Exception {
+    SinkConnectionFactory factory = getFactory("myURL", "myDriver");
+    Assert.assertEquals("myDriver", factory.getDatabaseDriver());
+  }
+
+  private static class TestConfiguration extends Configuration {
+
+    private TestConfiguration(Properties properties) {
+      super(properties);
+    }
+
+    @Override
+    protected void loadSSLParams() {
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/scom/TestClusterDefinitionProvider.java
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/scom/TestClusterDefinitionProvider.java b/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/scom/TestClusterDefinitionProvider.java
new file mode 100644
index 0000000..98c6869
--- /dev/null
+++ b/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/scom/TestClusterDefinitionProvider.java
@@ -0,0 +1,30 @@
+/**
+ * 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.
+ */
+
+package org.apache.ambari.scom;
+
+/**
+ *  Test version of ClusterDefinitionProvider.
+ */
+public class TestClusterDefinitionProvider extends ClusterDefinitionProvider {
+  public TestClusterDefinitionProvider() {
+    setFileName("clusterproperties.txt");
+    setClusterName("myCluster");
+    setVersionId("HDP-1.2.9");
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/scom/TestHostInfoProvider.java
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/scom/TestHostInfoProvider.java b/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/scom/TestHostInfoProvider.java
new file mode 100644
index 0000000..9a9e4cf
--- /dev/null
+++ b/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/scom/TestHostInfoProvider.java
@@ -0,0 +1,58 @@
+/**
+ * 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.
+ */
+
+package org.apache.ambari.scom;
+
+import org.apache.ambari.server.controller.spi.SystemException;
+
+public class TestHostInfoProvider implements HostInfoProvider {
+
+  private String clusterName;
+  private String componentName;
+  private String hostId;
+
+  public String getClusterName() {
+    return clusterName;
+  }
+
+  public String getComponentName() {
+    return componentName;
+  }
+
+  public String getHostId() {
+    return hostId;
+  }
+
+  @Override
+  public String getHostName(String clusterName, String componentName) throws SystemException {
+    this.clusterName = clusterName;
+    this.componentName = componentName;
+    return "host1";
+  }
+
+  @Override
+  public String getHostName(String id) throws SystemException {
+    this.hostId = id;
+    return "host1";
+  }
+
+  @Override
+  public String getHostAddress(String id) throws SystemException {
+    return "127.0.0.1";
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/scom/logging/JpaLoggerTest.java
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/scom/logging/JpaLoggerTest.java b/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/scom/logging/JpaLoggerTest.java
new file mode 100644
index 0000000..a7186f8
--- /dev/null
+++ b/contrib/ambari-scom/ambari-scom-server/src/test/java/org/apache/ambari/scom/logging/JpaLoggerTest.java
@@ -0,0 +1,163 @@
+/**
+ * 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.
+ */
+
+package org.apache.ambari.scom.logging;
+
+import org.eclipse.persistence.logging.SessionLog;
+import org.eclipse.persistence.logging.SessionLogEntry;
+import org.junit.Assert;
+import org.junit.Test;
+import org.slf4j.Logger;
+
+import java.util.logging.Formatter;
+import java.util.logging.Level;
+import java.util.logging.LogRecord;
+
+import static org.easymock.EasyMock.anyObject;
+import static org.easymock.EasyMock.createNiceMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+
+/**
+ * JpaLogger Tests
+ */
+public class JpaLoggerTest {
+  @Test
+  public void testLog() throws Exception {
+
+    Logger logger = createNiceMock(Logger.class);
+    SessionLogEntry severeEntry = createNiceMock(SessionLogEntry.class);
+    SessionLogEntry configEntry = createNiceMock(SessionLogEntry.class);
+    SessionLogEntry finestEntry = createNiceMock(SessionLogEntry.class);
+    Formatter formatter = createNiceMock(Formatter.class);
+
+    JpaLogger jpaLogger = new TestJpaLogger(logger, formatter);
+
+    // set expectations
+
+    expect(severeEntry.getLevel()).andReturn(SessionLog.SEVERE);
+    expect(formatter.format((LogRecord) anyObject())).andReturn("severe log message");
+    logger.error("severe log message");
+
+    expect(configEntry.getLevel()).andReturn(SessionLog.CONFIG);
+    expect(formatter.format((LogRecord) anyObject())).andReturn("config log message");
+    logger.info("config log message");
+
+    expect(finestEntry.getLevel()).andReturn(SessionLog.FINEST);
+    expect(formatter.format((LogRecord) anyObject())).andReturn("finest log message");
+    logger.debug("finest log message");
+
+    // replay
+    replay(logger, severeEntry, configEntry, finestEntry, formatter);
+
+    jpaLogger.log(severeEntry);
+    jpaLogger.log(configEntry);
+    jpaLogger.log(finestEntry);
+
+    // verify
+    verify(logger, severeEntry, configEntry, finestEntry, formatter);
+  }
+
+  @Test
+  public void testThrowing() throws Exception {
+    Logger logger = createNiceMock(Logger.class);
+    Formatter formatter = createNiceMock(Formatter.class);
+
+    Exception exception = new IllegalStateException("Something went wrong!");
+
+    JpaLogger jpaLogger = new TestJpaLogger(logger, formatter);
+
+    // set expectations
+    logger.error(null, exception);
+
+    // replay
+    replay(logger, formatter);
+
+    jpaLogger.throwing(exception);
+
+    // verify
+    verify(logger, formatter);
+  }
+
+  @Test
+  public void testShouldLog() throws Exception {
+    JpaLogger logger = new JpaLogger();
+    Assert.assertTrue(logger.shouldLog(SessionLog.SEVERE, ""));
+    Assert.assertTrue(logger.shouldLog(SessionLog.WARNING, ""));
+    Assert.assertFalse(logger.shouldLog(SessionLog.CONFIG, ""));
+    Assert.assertFalse(logger.shouldLog(SessionLog.FINER, ""));
+    Assert.assertFalse(logger.shouldLog(SessionLog.ALL, ""));
+
+    logger.setLogLevel(Level.FINER);
+    Assert.assertTrue(logger.shouldLog(SessionLog.SEVERE, ""));
+    Assert.assertTrue(logger.shouldLog(SessionLog.WARNING, ""));
+    Assert.assertTrue(logger.shouldLog(SessionLog.CONFIG, ""));
+    Assert.assertTrue(logger.shouldLog(SessionLog.FINER, ""));
+    Assert.assertFalse(logger.shouldLog(SessionLog.ALL, ""));
+
+    logger.setLogLevel(Level.SEVERE);
+    Assert.assertTrue(logger.shouldLog(SessionLog.SEVERE, ""));
+    Assert.assertFalse(logger.shouldLog(SessionLog.WARNING, ""));
+    Assert.assertFalse(logger.shouldLog(SessionLog.CONFIG, ""));
+    Assert.assertFalse(logger.shouldLog(SessionLog.FINER, ""));
+    Assert.assertFalse(logger.shouldLog(SessionLog.ALL, ""));
+  }
+
+  @Test
+  public void testGetSetLogLevel() throws Exception {
+    JpaLogger logger = new JpaLogger();
+    Assert.assertEquals(Level.WARNING, logger.getLogLevel());
+
+    logger.setLogLevel(Level.ALL);
+    Assert.assertEquals(Level.ALL, logger.getLogLevel());
+
+    logger.setLogLevel(Level.FINER);
+    Assert.assertEquals(Level.FINER, logger.getLogLevel());
+
+    logger.setLogLevel(Level.OFF);
+    Assert.assertEquals(Level.OFF, logger.getLogLevel());
+  }
+
+
+  private static class TestJpaLogger extends JpaLogger {
+
+    private final Logger logger;
+    private final Formatter formatter;
+
+    private TestJpaLogger(Logger logger, Formatter formatter) {
+      this.logger = logger;
+      this.formatter = formatter;
+    }
+
+    @Override
+    protected Logger getLogger() {
+      return logger;
+    }
+
+    @Override
+    protected Formatter getFormatter() {
+      return formatter;
+    }
+
+    @Override
+    protected String formatMessage(SessionLogEntry entry) {
+      return "message";
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/ambari-scom-server/src/test/resources/ambari.properties
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/ambari-scom-server/src/test/resources/ambari.properties b/contrib/ambari-scom/ambari-scom-server/src/test/resources/ambari.properties
new file mode 100644
index 0000000..67dbf7f
--- /dev/null
+++ b/contrib/ambari-scom/ambari-scom-server/src/test/resources/ambari.properties
@@ -0,0 +1,34 @@
+# Copyright 2011 The Apache Software Foundation
+#
+# 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.
+
+security.server.keys_dir = /var/lib/ambari-server/keys
+resources.dir = /var/lib/ambari-server/resources
+jdk.url=http://public-repo-1.hortonworks.com/ARTIFACTS/jdk-6u31-linux-x64.bin
+jce_policy.url=http://public-repo-1.hortonworks.com/ARTIFACTS/jce_policy-6.zip
+metadata.path=/var/lib/ambari-server/resources/stacks
+server.version.file=/var/lib/ambari-server/resources/version
+webapp.dir=/usr/lib/ambari-server/web
+bootstrap.dir=/var/run/ambari-server/bootstrap
+bootstrap.script=/usr/lib/python2.6/site-packages/ambari_server/bootstrap.py
+bootstrap.setup_agent.script=/usr/lib/python2.6/site-packages/ambari_server/setupAgent.py
+api.authenticate=true
+server.connection.max.idle.millis=900000
+server.fqdn.service.url=http://169.254.169.254/latest/meta-data/public-hostname
+
+scom.sink.db.url=jdbc:sqlserver://10.0.2.2:2301;databaseName=HadoopMonitoring;user=sink
+scom.sink.db.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/ambari-scom-server/src/test/resources/clusterproperties.txt
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/ambari-scom-server/src/test/resources/clusterproperties.txt b/contrib/ambari-scom/ambari-scom-server/src/test/resources/clusterproperties.txt
new file mode 100644
index 0000000..dcdeabb
--- /dev/null
+++ b/contrib/ambari-scom/ambari-scom-server/src/test/resources/clusterproperties.txt
@@ -0,0 +1,47 @@
+### 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.
+
+#Log directory
+HDP_LOG_DIR=d:\hadoop\logs
+
+#Data directory
+HDP_DATA_DIR=d:\hdp\data
+
+#Hosts (this is a comment)
+NAMENODE_HOST=NAMENODE_MASTER.acme.com
+SECONDARY_NAMENODE_HOST=SECONDARY_NAMENODE_MASTER.acme.com
+JOBTRACKER_HOST=JOBTRACKER_MASTER.acme.com
+HIVE_SERVER_HOST=HIVE_SERVER_MASTER.acme.com
+OOZIE_SERVER_HOST=OOZIE_SERVER_MASTER.acme.com
+WEBHCAT_HOST=WEBHCAT_MASTER.acme.com
+FLUME_HOSTS=FLUME_SERVICE1.acme.com,FLUME_SERVICE2.acme.com,FLUME_SERVICE3.acme.com
+HBASE_MASTER=HBASE_MASTER.acme.com
+HBASE_REGIONSERVERS=slave1.acme.com, slave2.acme.com, slave3.acme.com
+ZOOKEEPER_HOSTS=slave1.acme.com, slave2.acme.com, slave3.acme.com
+SLAVE_HOSTS=slave1.acme.com, slave2.acme.com, slave3.acme.com
+
+#Database host
+DB_FLAVOR=derby
+DB_HOSTNAME=DB_myHostName
+
+#Hive properties
+HIVE_DB_NAME=hive
+HIVE_DB_USERNAME=hive
+HIVE_DB_PASSWORD=hive
+
+#Oozie properties
+OOZIE_DB_NAME=oozie
+OOZIE_DB_USERNAME=oozie
+OOZIE_DB_PASSWORD=oozie
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/ambari-scom-server/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/ambari-scom-server/src/test/resources/log4j.properties b/contrib/ambari-scom/ambari-scom-server/src/test/resources/log4j.properties
new file mode 100644
index 0000000..f6767d3
--- /dev/null
+++ b/contrib/ambari-scom/ambari-scom-server/src/test/resources/log4j.properties
@@ -0,0 +1,21 @@
+#   Licensed 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.
+
+# log4j configuration used during build and unit tests
+
+log4j.rootLogger=DEBUG,stdout
+log4j.threshhold=ALL
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c{2} (%F:%M(%L)) - %m%n
+
+log4j.logger.org.apache.ambari=DEBUG

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/BUILDING.md
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/BUILDING.md b/contrib/ambari-scom/management-pack/Hadoop_MP/BUILDING.md
new file mode 100644
index 0000000..a0dcc2c
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/BUILDING.md
@@ -0,0 +1,35 @@
+## 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.
+
+Building the Management Pack
+=========
+
+
+1.	Install Microsoft Visual Studio 2010 Professional or higher
+2.	Install System Center 2012 Visual Studio Authoring Extensions from
+http://www.microsoft.com/en-us/download/details.aspx?id=30169
+3.	Replace `C:\Program Files (x86)\MSBuild\Microsoft\VSAC Replace Microsoft.EnterpriseManagement.Core.dll` with a version from Operations Management 2012 SP1 or R2 Preview
+4.	Install latest Wix toolset from http://wix.codeplex.com/
+5.	Install Silverlight (Open solution in Visual Studio and it will suggest download)
+6.	If you would like to sign MP with your key then replace `Solution Items\key.snk` file with your own but keep the same name.
+7.	Update `\Installer\Assets\EULA.rtf`
+8.	Run `build.bat`
+9.	Look for built MPs:
+    * `\HadoopMp\bin\Debug\Ambari.SCOM.mpb`
+    * `\ManagementMp\bin\Debug\Ambari.SCOM.Management.mpb`
+    * `\PresentationMp\bin\Debug\Ambari.SCOM.Presentation.mpb`
+10. Built msi will be located in `\Installer\bin\Debug\en-us\`

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp.sln
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp.sln b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp.sln
new file mode 100644
index 0000000..ef0c28a
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp.sln
@@ -0,0 +1,161 @@
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+## 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("{D4B43EB3-688B-4EEE-86BD-088F0B28ABB3}") = "HadoopMp", "HadoopMp\HadoopMp.mpproj", "{63B476B6-EFCD-468F-80D9-94E2CFF1B5DB}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Items", "Items", "{07217F3F-F648-4FF8-B785-5967FACFB38F}"
+	ProjectSection(SolutionItems) = preProject
+		Items\key.snk = Items\key.snk
+	EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libs", "Libs", "{BF3DF7C0-7A2F-4639-AC4B-F0F3200BED77}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SCOM2012", "SCOM2012", "{E2576039-8FD4-48A2-A2E8-BD8AF3DBD22C}"
+	ProjectSection(SolutionItems) = preProject
+		Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.CompositionEngine.dll = Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.CompositionEngine.dll
+		Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.CompositionEngine.Extensibility.dll = Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.CompositionEngine.Extensibility.dll
+		Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.Core.dll = Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.Core.dll
+		Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.HealthService.dll = Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.HealthService.dll
+		Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.OperationsManager.dll = Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.OperationsManager.dll
+		Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.Presentation.Controls.dll = Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.Presentation.Controls.dll
+		Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.Presentation.Core.dll = Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.Presentation.Core.dll
+		Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.UI.Authoring.dll = Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.UI.Authoring.dll
+		Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.UI.ConsoleFramework.dll = Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.UI.ConsoleFramework.dll
+		Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.UI.Extensibility.dll = Items\Libs\SCOM2012\Microsoft.EnterpriseManagement.UI.Extensibility.dll
+		Items\Libs\SCOM2012\Microsoft.Mom.Modules.DataTypes.dll = Items\Libs\SCOM2012\Microsoft.Mom.Modules.DataTypes.dll
+		Items\Libs\SCOM2012\Microsoft.MOM.UI.Common.dll = Items\Libs\SCOM2012\Microsoft.MOM.UI.Common.dll
+		Items\Libs\SCOM2012\Microsoft.Practices.Unity.dll = Items\Libs\SCOM2012\Microsoft.Practices.Unity.dll
+		Items\Libs\SCOM2012\System.Windows.Controls.DataVisualization.Toolkit.dll = Items\Libs\SCOM2012\System.Windows.Controls.DataVisualization.Toolkit.dll
+	EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ScomPages", "ScomPages\ScomPages.csproj", "{B77E5EA7-3FE4-49C9-88AC-3AB871A26F9B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WidgetsWpf", "WidgetsWpf\WidgetsWpf.csproj", "{D4C615D1-9274-41D9-B14E-BC88AE7FCDCE}"
+EndProject
+Project("{D4B43EB3-688B-4EEE-86BD-088F0B28ABB3}") = "PresentationMp", "PresentationMp\PresentationMp.mpproj", "{8AB1E36E-7FF4-4BAF-9BD0-1491492DFDA0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Modules", "Modules\Modules.csproj", "{AEAA0FB0-D274-491A-BEB5-5354584F1400}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Packs", "Packs", "{413F4F6B-2864-4EA9-A2FC-FE7F7DEBE695}"
+	ProjectSection(SolutionItems) = preProject
+		Items\Packs\Microsoft.SystemCenter.Visualization.Library.mpb = Items\Packs\Microsoft.SystemCenter.Visualization.Library.mpb
+	EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WidgetsSilverlight", "WidgetsSilverlight\WidgetsSilverlight.csproj", "{729E6DB2-31F7-4EB1-9146-A2F2263585EE}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SCOM2012_Web", "SCOM2012_Web", "{13CBF7E2-FA6A-465C-ACFE-881AECABC145}"
+	ProjectSection(SolutionItems) = preProject
+		Items\Libs\SCOM2012_Web\Microsoft.EnterpriseManagement.CompositionEngine.dll = Items\Libs\SCOM2012_Web\Microsoft.EnterpriseManagement.CompositionEngine.dll
+		Items\Libs\SCOM2012_Web\Microsoft.EnterpriseManagement.CompositionEngine.Extensibility.dll = Items\Libs\SCOM2012_Web\Microsoft.EnterpriseManagement.CompositionEngine.Extensibility.dll
+		Items\Libs\SCOM2012_Web\Microsoft.EnterpriseManagement.Presentation.Controls.dll = Items\Libs\SCOM2012_Web\Microsoft.EnterpriseManagement.Presentation.Controls.dll
+		Items\Libs\SCOM2012_Web\Microsoft.EnterpriseManagement.Presentation.Core.dll = Items\Libs\SCOM2012_Web\Microsoft.EnterpriseManagement.Presentation.Core.dll
+		Items\Libs\SCOM2012_Web\Microsoft.Practices.Unity.Silverlight.dll = Items\Libs\SCOM2012_Web\Microsoft.Practices.Unity.Silverlight.dll
+		Items\Libs\SCOM2012_Web\System.Windows.Controls.DataVisualization.Toolkit.dll = Items\Libs\SCOM2012_Web\System.Windows.Controls.DataVisualization.Toolkit.dll
+	EndProjectSection
+EndProject
+Project("{D4B43EB3-688B-4EEE-86BD-088F0B28ABB3}") = "ManagementMp", "ManagementMp\ManagementMp.mpproj", "{1BAB40E2-B43F-469A-8583-CC196A792A38}"
+EndProject
+Global
+	GlobalSection(TeamFoundationVersionControl) = preSolution
+		SccNumberOfProjects = 8
+		SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
+		SccTeamFoundationServer = http://tfs.viacode.com:8080/tfs/llc
+		SccLocalPath0 = .
+		SccProjectUniqueName1 = HadoopMp\\HadoopMp.mpproj
+		SccProjectName1 = HadoopMp
+		SccLocalPath1 = HadoopMp
+		SccProjectUniqueName2 = ManagementMp\\ManagementMp.mpproj
+		SccProjectName2 = ManagementMp
+		SccLocalPath2 = ManagementMp
+		SccProjectUniqueName3 = Modules\\Modules.csproj
+		SccProjectName3 = Modules
+		SccLocalPath3 = Modules
+		SccProjectUniqueName4 = PresentationMp\\PresentationMp.mpproj
+		SccProjectName4 = PresentationMp
+		SccLocalPath4 = PresentationMp
+		SccProjectUniqueName5 = ScomPages\\ScomPages.csproj
+		SccProjectName5 = ScomPages
+		SccLocalPath5 = ScomPages
+		SccProjectUniqueName6 = WidgetsSilverlight\\WidgetsSilverlight.csproj
+		SccProjectName6 = WidgetsSilverlight
+		SccLocalPath6 = WidgetsSilverlight
+		SccProjectUniqueName7 = WidgetsWpf\\WidgetsWpf.csproj
+		SccProjectName7 = WidgetsWpf
+		SccLocalPath7 = WidgetsWpf
+	EndGlobalSection
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Debug|x86 = Debug|x86
+		Release|Any CPU = Release|Any CPU
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{63B476B6-EFCD-468F-80D9-94E2CFF1B5DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{63B476B6-EFCD-468F-80D9-94E2CFF1B5DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{63B476B6-EFCD-468F-80D9-94E2CFF1B5DB}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{63B476B6-EFCD-468F-80D9-94E2CFF1B5DB}.Debug|x86.Build.0 = Debug|Any CPU
+		{63B476B6-EFCD-468F-80D9-94E2CFF1B5DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{63B476B6-EFCD-468F-80D9-94E2CFF1B5DB}.Release|x86.ActiveCfg = Release|Any CPU
+		{63B476B6-EFCD-468F-80D9-94E2CFF1B5DB}.Release|x86.Build.0 = Release|Any CPU
+		{B77E5EA7-3FE4-49C9-88AC-3AB871A26F9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B77E5EA7-3FE4-49C9-88AC-3AB871A26F9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B77E5EA7-3FE4-49C9-88AC-3AB871A26F9B}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{B77E5EA7-3FE4-49C9-88AC-3AB871A26F9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B77E5EA7-3FE4-49C9-88AC-3AB871A26F9B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B77E5EA7-3FE4-49C9-88AC-3AB871A26F9B}.Release|x86.ActiveCfg = Release|Any CPU
+		{D4C615D1-9274-41D9-B14E-BC88AE7FCDCE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D4C615D1-9274-41D9-B14E-BC88AE7FCDCE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D4C615D1-9274-41D9-B14E-BC88AE7FCDCE}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{D4C615D1-9274-41D9-B14E-BC88AE7FCDCE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D4C615D1-9274-41D9-B14E-BC88AE7FCDCE}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D4C615D1-9274-41D9-B14E-BC88AE7FCDCE}.Release|x86.ActiveCfg = Release|Any CPU
+		{8AB1E36E-7FF4-4BAF-9BD0-1491492DFDA0}.Debug|Any CPU.ActiveCfg = Debug|x86
+		{8AB1E36E-7FF4-4BAF-9BD0-1491492DFDA0}.Debug|x86.ActiveCfg = Debug|x86
+		{8AB1E36E-7FF4-4BAF-9BD0-1491492DFDA0}.Debug|x86.Build.0 = Debug|x86
+		{8AB1E36E-7FF4-4BAF-9BD0-1491492DFDA0}.Release|Any CPU.ActiveCfg = Release|x86
+		{8AB1E36E-7FF4-4BAF-9BD0-1491492DFDA0}.Release|x86.ActiveCfg = Release|x86
+		{8AB1E36E-7FF4-4BAF-9BD0-1491492DFDA0}.Release|x86.Build.0 = Release|x86
+		{AEAA0FB0-D274-491A-BEB5-5354584F1400}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{AEAA0FB0-D274-491A-BEB5-5354584F1400}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{AEAA0FB0-D274-491A-BEB5-5354584F1400}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{AEAA0FB0-D274-491A-BEB5-5354584F1400}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{AEAA0FB0-D274-491A-BEB5-5354584F1400}.Release|Any CPU.Build.0 = Release|Any CPU
+		{AEAA0FB0-D274-491A-BEB5-5354584F1400}.Release|x86.ActiveCfg = Release|Any CPU
+		{729E6DB2-31F7-4EB1-9146-A2F2263585EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{729E6DB2-31F7-4EB1-9146-A2F2263585EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{729E6DB2-31F7-4EB1-9146-A2F2263585EE}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{729E6DB2-31F7-4EB1-9146-A2F2263585EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{729E6DB2-31F7-4EB1-9146-A2F2263585EE}.Release|Any CPU.Build.0 = Release|Any CPU
+		{729E6DB2-31F7-4EB1-9146-A2F2263585EE}.Release|x86.ActiveCfg = Release|Any CPU
+		{1BAB40E2-B43F-469A-8583-CC196A792A38}.Debug|Any CPU.ActiveCfg = Debug|x86
+		{1BAB40E2-B43F-469A-8583-CC196A792A38}.Debug|x86.ActiveCfg = Debug|x86
+		{1BAB40E2-B43F-469A-8583-CC196A792A38}.Debug|x86.Build.0 = Debug|x86
+		{1BAB40E2-B43F-469A-8583-CC196A792A38}.Release|Any CPU.ActiveCfg = Release|x86
+		{1BAB40E2-B43F-469A-8583-CC196A792A38}.Release|x86.ActiveCfg = Release|x86
+		{1BAB40E2-B43F-469A-8583-CC196A792A38}.Release|x86.Build.0 = Release|x86
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(NestedProjects) = preSolution
+		{BF3DF7C0-7A2F-4639-AC4B-F0F3200BED77} = {07217F3F-F648-4FF8-B785-5967FACFB38F}
+		{413F4F6B-2864-4EA9-A2FC-FE7F7DEBE695} = {07217F3F-F648-4FF8-B785-5967FACFB38F}
+		{E2576039-8FD4-48A2-A2E8-BD8AF3DBD22C} = {BF3DF7C0-7A2F-4639-AC4B-F0F3200BED77}
+		{13CBF7E2-FA6A-465C-ACFE-881AECABC145} = {BF3DF7C0-7A2F-4639-AC4B-F0F3200BED77}
+	EndGlobalSection
+EndGlobal

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/AmbariAccessorRole.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/AmbariAccessorRole.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/AmbariAccessorRole.mpx
new file mode 100644
index 0000000..22af842
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/AmbariAccessorRole.mpx
@@ -0,0 +1,63 @@
+<!--## 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>
+    <EntityTypes>
+      <ClassTypes>
+        <ClassType ID="Ambari.SCOM.AmbariAccessorRole" Accessibility="Public" Base="System!System.ComputerRole" Hosted="true" Abstract="true" Singleton="false" />
+      </ClassTypes>
+
+      <RelationshipTypes>
+        <RelationshipType ID="Ambari.SCOM.ComputerHostsAmbariWatcherNode" Base="System!System.Hosting" Accessibility="Public" Abstract="false">
+          <Source ID="Computer" Type="Windows!Microsoft.Windows.Computer" />
+          <Target ID="Accessor" Type="Ambari.SCOM.AmbariAccessorRole" />
+        </RelationshipType>
+      </RelationshipTypes>
+    </EntityTypes>
+  </TypeDefinitions>
+
+  <!--<Categories>
+    <Category ID="Ambari.SCOM.AmbariAccessorRole.16x16Image.Category" Target="Ambari.SCOM.AmbariAccessorRole.16x16Image" Value="System!System.Internal.ManagementPack.Images.u16x16Icon" />
+    <Category ID="Ambari.SCOM.AmbariAccessorRole.80x80Image.Category" Target="Ambari.SCOM.AmbariAccessorRole.80x80Image" Value="System!System.Internal.ManagementPack.Images.DiagramIcon" />
+  </Categories>
+
+  <Presentation>
+    <ImageReferences>
+      <ImageReference ElementID="Ambari.SCOM.AmbariAccessorRole" ImageID="Ambari.SCOM.AmbariAccessorRole.16x16Image" />
+      <ImageReference ElementID="Ambari.SCOM.AmbariAccessorRole" ImageID="Ambari.SCOM.AmbariAccessorRole.80x80Image" />
+    </ImageReferences>
+  </Presentation>-->
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.AmbariAccessorRole">
+          <Name>Hadoop Ambari Accessor Role</Name>
+          <Description>This class defines Hadoop Ambari Accessor Computer Role.</Description>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+
+  <!--
+  <Resources>
+    <Image ID="Ambari.SCOM.AmbariAccessorRole.16x16Image" Accessibility="Public" FileName="AmbariAccessorRole-16.png" />
+    <Image ID="Ambari.SCOM.AmbariAccessorRole.80x80Image" Accessibility="Public" FileName="AmbariAccessorRole-80.png" />
+  </Resources>
+  -->
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/AmbariEntity.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/AmbariEntity.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/AmbariEntity.mpx
new file mode 100644
index 0000000..77cd866
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/AmbariEntity.mpx
@@ -0,0 +1,66 @@
+<!--## 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>
+    <EntityTypes>
+      <ClassTypes>
+        <ClassType ID="Ambari.SCOM.AmbariEntity" Accessibility="Public" Base="System!System.LogicalEntity" Hosted="false" Abstract="true" Singleton="false" />
+        <ClassType ID="Ambari.SCOM.AmbariManagedEntity" Accessibility="Public" Base="Ambari.SCOM.AmbariEntity" Hosted="false" Abstract="true" Singleton="false">
+          <Property ID="AmbariUri" Type="string" />
+        </ClassType>
+      </ClassTypes>
+    </EntityTypes>
+  </TypeDefinitions>
+
+  <!--<Categories>
+    <Category ID="Ambari.SCOM.AmbariManagedEntity.16x16Image.Category" Target="Ambari.SCOM.AmbariManagedEntity.16x16Image" Value="System!System.Internal.ManagementPack.Images.u16x16Icon" />
+    <Category ID="Ambari.SCOM.AmbariManagedEntity.80x80Image.Category" Target="Ambari.SCOM.AmbariManagedEntity.80x80Image" Value="System!System.Internal.ManagementPack.Images.DiagramIcon" />
+  </Categories>
+
+  <Presentation>
+    <ImageReferences>
+      <ImageReference ElementID="Ambari.SCOM.AmbariManagedEntity" ImageID="Ambari.SCOM.AmbariManagedEntity.16x16Image" />
+      <ImageReference ElementID="Ambari.SCOM.AmbariManagedEntity" ImageID="Ambari.SCOM.AmbariManagedEntity.80x80Image" />
+    </ImageReferences>
+  </Presentation>-->
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.AmbariEntity">
+          <Name>Ambari Entity</Name>
+          <Description>This class represents any Ambari Service entity.</Description>
+        </DisplayString>
+        
+        <DisplayString ElementID="Ambari.SCOM.AmbariManagedEntity">
+          <Name>Ambari Managed Entity</Name>
+          <Description>This class represents entity managed by Ambari Service.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.AmbariManagedEntity" SubElementID="AmbariUri">
+          <Name>Ambari URI</Name>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+
+  <!--
+  <Resources>
+    <Image ID="Ambari.SCOM.AmbariManagedEntity.16x16Image" Accessibility="Public" FileName="Cluster-16.png" />
+    <Image ID="Ambari.SCOM.AmbariManagedEntity.80x80Image" Accessibility="Public" FileName="Cluster-80.png" />
+  </Resources>
+  -->
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/AmbariSeed.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/AmbariSeed.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/AmbariSeed.mpx
new file mode 100644
index 0000000..cb7e959
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/AmbariSeed.mpx
@@ -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.-->
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <EntityTypes>
+      <ClassTypes>
+        <ClassType ID="Ambari.SCOM.AmbariSeed" Accessibility="Public" Base="Ambari.SCOM.AmbariAccessorRole" Hosted="true" Abstract="false" Singleton="false">
+          <Property ID="TemplateName" Type="string" Key="true" />
+          <Property ID="AmbariUri" Type="string" />
+        </ClassType>
+      </ClassTypes>
+
+      <RelationshipTypes>
+        <RelationshipType ID="Ambari.SCOM.AmbariSeedContainsCluster"
+                          Base="System!System.Containment" Abstract="false" Accessibility="Public">
+          <Source ID="Seed" Type="Ambari.SCOM.AmbariSeed" />
+          <Target ID="Cluster" Type="Ambari.SCOM.Cluster" />
+        </RelationshipType>
+      </RelationshipTypes>
+    </EntityTypes>
+  </TypeDefinitions>
+
+  <!--<Categories>
+    <Category ID="Ambari.SCOM.AmbariSeed.16x16Image.Category" Target="Ambari.SCOM.AmbariSeed.16x16Image" Value="System!System.Internal.ManagementPack.Images.u16x16Icon" />
+    <Category ID="Ambari.SCOM.AmbariSeed.80x80Image.Category" Target="Ambari.SCOM.AmbariSeed.80x80Image" Value="System!System.Internal.ManagementPack.Images.DiagramIcon" />
+  </Categories>
+
+  <Presentation>
+    <ImageReferences>
+      <ImageReference ElementID="Ambari.SCOM.AmbariSeed" ImageID="Ambari.SCOM.AmbariSeed.16x16Image" />
+      <ImageReference ElementID="Ambari.SCOM.AmbariSeed" ImageID="Ambari.SCOM.AmbariSeed.80x80Image" />
+    </ImageReferences>
+  </Presentation>-->
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.AmbariSeed">
+          <Name>Hadoop Ambari Service Seed</Name>
+          <Description>This class defines Hadoop Ambari Service seed object.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.AmbariSeed" SubElementID="TemplateName">
+          <Name>Template Name</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.AmbariSeed" SubElementID="AmbariUri">
+          <Name>Ambari URI</Name>
+        </DisplayString>
+
+        <DisplayString ElementID="Ambari.SCOM.AmbariSeedContainsCluster">
+          <Name>Hadoop Ambari Service Seed Contains Cluster</Name>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+
+  <!--
+  <Resources>
+    <Image ID="Ambari.SCOM.AmbariSeed.16x16Image" Accessibility="Public" FileName="AmbariSeed-16.png" />
+    <Image ID="Ambari.SCOM.AmbariSeed.80x80Image" Accessibility="Public" FileName="AmbariSeed-80.png" />
+  </Resources>
+  -->
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/AmbariWatcherNode.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/AmbariWatcherNode.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/AmbariWatcherNode.mpx
new file mode 100644
index 0000000..1b3a6c6
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/AmbariWatcherNode.mpx
@@ -0,0 +1,55 @@
+<!--## 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>
+    <EntityTypes>
+      <ClassTypes>
+        <ClassType ID="Ambari.SCOM.AmbariWatcherNode" Accessibility="Public" Base="Ambari.SCOM.AmbariAccessorRole" Hosted="true" Abstract="false" Singleton="false" />
+      </ClassTypes>
+    </EntityTypes>
+  </TypeDefinitions>
+
+  <!--<Categories>
+    <Category ID="Ambari.SCOM.AmbariWatcherNode.16x16Image.Category" Target="Ambari.SCOM.AmbariWatcherNode.16x16Image" Value="System!System.Internal.ManagementPack.Images.u16x16Icon" />
+    <Category ID="Ambari.SCOM.AmbariWatcherNode.80x80Image.Category" Target="Ambari.SCOM.AmbariWatcherNode.80x80Image" Value="System!System.Internal.ManagementPack.Images.DiagramIcon" />
+  </Categories>
+
+  <Presentation>
+    <ImageReferences>
+      <ImageReference ElementID="Ambari.SCOM.AmbariWatcherNode" ImageID="Ambari.SCOM.AmbariWatcherNode.16x16Image" />
+      <ImageReference ElementID="Ambari.SCOM.AmbariWatcherNode" ImageID="Ambari.SCOM.AmbariWatcherNode.80x80Image" />
+    </ImageReferences>
+  </Presentation>-->
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.AmbariWatcherNode">
+          <Name>Hadoop Watcher Node</Name>
+          <Description>This class identifies computer, participating in Hadoop monitoring.</Description>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+
+  <!--
+  <Resources>
+    <Image ID="Ambari.SCOM.AmbariWatcherNode.16x16Image" Accessibility="Public" FileName="AmbariWatcherNode-16.png" />
+    <Image ID="Ambari.SCOM.AmbariWatcherNode.80x80Image" Accessibility="Public" FileName="AmbariWatcherNode-80.png" />
+  </Resources>
+  -->
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/Cluster.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/Cluster.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/Cluster.mpx
new file mode 100644
index 0000000..86451e0
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/Cluster.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>
+    <EntityTypes>
+      <ClassTypes>
+        <ClassType ID="Ambari.SCOM.ClusterSeed" Accessibility="Public" Base="Ambari.SCOM.AmbariManagedEntity" Hosted="false" Abstract="false" Singleton="false">
+          <Property ID="TemplateName" Type="string" Key="true" />
+          <Property ID="ClusterName" Type="string" Key="true" />
+        </ClassType>
+
+        <ClassType ID="Ambari.SCOM.Cluster.Private" Accessibility="Public" Base="Ambari.SCOM.AmbariEntity" Hosted="false" Abstract="false" Singleton="false">
+          <Property ID="TemplateName" Type="string" Key="true" />
+          <Property ID="ClusterName" Type="string" Key="true" />
+        </ClassType>
+        
+        <ClassType ID="Ambari.SCOM.Cluster" Accessibility="Public" Base="Ambari.SCOM.AmbariEntity" Hosted="true" Abstract="false" Singleton="false" />
+      </ClassTypes>
+
+      <RelationshipTypes>
+        <RelationshipType ID="Ambari.SCOM.PrivateClusterHostsCluster"
+                          Base="System!System.Hosting" Accessibility="Public">
+          <Source ID="PrivateCluster" Type="Ambari.SCOM.Cluster.Private" />
+          <Target ID="Cluster" Type="Ambari.SCOM.Cluster" />
+        </RelationshipType>
+      </RelationshipTypes>
+    </EntityTypes>
+  </TypeDefinitions>
+
+  <Presentation>
+    <ImageReferences>
+      <ImageReference ElementID="Ambari.SCOM.Cluster" ImageID="Ambari.SCOM.Resources.Images.Cluster16Icon" />
+      <ImageReference ElementID="Ambari.SCOM.Cluster" ImageID="Ambari.SCOM.Resources.Images.ClusterDiagramIcon" />
+    </ImageReferences>
+  </Presentation>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.ClusterSeed">
+          <Name>Hadoop Cluster Seed</Name>
+          <Description>This class indicates discovered Hadoop Cluster.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.ClusterSeed" SubElementID="TemplateName">
+          <Name>Template Name</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.ClusterSeed" SubElementID="ClusterName">
+          <Name>Cluster Name</Name>
+        </DisplayString>
+
+        <DisplayString ElementID="Ambari.SCOM.Cluster.Private">
+          <Name>Hadoop Cluster (Private Entity)</Name>
+          <Description>This class contains private properties of Hadoop Cluster.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Cluster.Private" SubElementID="TemplateName">
+          <Name>Template Name</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Cluster.Private" SubElementID="ClusterName">
+          <Name>Cluster Name</Name>
+        </DisplayString>
+
+        <DisplayString ElementID="Ambari.SCOM.Cluster">
+          <Name>Hadoop Cluster</Name>
+          <Description>This class represents Hadoop Cluster.</Description>
+        </DisplayString>
+
+        <DisplayString ElementID="Ambari.SCOM.PrivateClusterHostsCluster">
+          <Name>Hadoop Cluster (Private Entity) Hosts Hadoop Cluster</Name>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+
+  <!--
+  <Resources>
+    <Image ID="Ambari.SCOM.Cluster.16x16Image" Accessibility="Public" FileName="Cluster-16.png" />
+    <Image ID="Ambari.SCOM.Cluster.80x80Image" Accessibility="Public" FileName="Cluster-80.png" />
+  </Resources>
+  -->
+</ManagementPackFragment>

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/873b3502/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/ClusterHardwareProjection.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/ClusterHardwareProjection.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/ClusterHardwareProjection.mpx
new file mode 100644
index 0000000..9eee349
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/ClusterHardwareProjection.mpx
@@ -0,0 +1,65 @@
+<!--## 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>
+    <EntityTypes>
+      <ClassTypes>
+        <ClassType ID="Ambari.SCOM.ClusterHardwareProjection" Accessibility="Public"
+                   Base="Ambari.SCOM.ClusterProjection" Hosted="true" Abstract="false" Singleton="false" />
+      </ClassTypes>
+
+      <RelationshipTypes>
+        <RelationshipType ID="Ambari.SCOM.ClusterHostsClusterHardwareProjection"
+                          Base="System!System.Hosting" Accessibility="Public">
+          <Source ID="Cluster" Type="Ambari.SCOM.Cluster" />
+          <Target ID="Projection" Type="Ambari.SCOM.ClusterHardwareProjection" />
+        </RelationshipType>
+
+        <RelationshipType ID="Ambari.SCOM.ClusterHardwareProjectionContainsHost"
+                          Base="System!System.Containment" Abstract="false" Accessibility="Public">
+          <Source ID="Projection" Type="Ambari.SCOM.ClusterHardwareProjection" />
+          <Target ID="Host" Type="Ambari.SCOM.Host" />
+        </RelationshipType>
+      </RelationshipTypes>
+    </EntityTypes>
+  </TypeDefinitions>
+
+  <Presentation>
+    <ImageReferences>
+      <ImageReference ElementID="Ambari.SCOM.ClusterHardwareProjection" ImageID="Ambari.SCOM.Resources.Images.Hosts16Icon" />
+      <ImageReference ElementID="Ambari.SCOM.ClusterHardwareProjection" ImageID="Ambari.SCOM.Resources.Images.HostsDiagramIcon" />
+    </ImageReferences>
+  </Presentation>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.ClusterHardwareProjection">
+          <Name>Cluster Hardware Projection</Name>
+          <Description>This class represents Hadoop Cluster Hardware monitoring projection, based on cluster nodes.</Description>
+        </DisplayString>
+
+        <DisplayString ElementID="Ambari.SCOM.ClusterHostsClusterHardwareProjection">
+          <Name>Cluster Hosts Cluster Hardware Projection</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.ClusterHardwareProjectionContainsHost">
+          <Name>Cluster Hardware Projection Contains Host</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/Classes/ClusterProjection.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/ClusterProjection.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/ClusterProjection.mpx
new file mode 100644
index 0000000..a012e36
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/ClusterProjection.mpx
@@ -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.-->
+<ManagementPackFragment SchemaVersion="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <TypeDefinitions>
+    <EntityTypes>
+      <ClassTypes>
+        <ClassType ID="Ambari.SCOM.ClusterProjection" Accessibility="Public"
+                   Base="System!System.LogicalEntity" Hosted="false" Abstract="true" Singleton="false" />
+      </ClassTypes>
+    </EntityTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.ClusterProjection">
+          <Name>Hadoop Cluster Projection</Name>
+          <Description>This is the base class for monitoring projections of Hadoop Cluster.</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/Classes/ClusterService.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/ClusterService.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/ClusterService.mpx
new file mode 100644
index 0000000..a5558f8
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/ClusterService.mpx
@@ -0,0 +1,189 @@
+<!--## 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>
+    <EntityTypes>
+      <ClassTypes>
+        <ClassType ID="Ambari.SCOM.ClusterService.Private" Accessibility="Public" Base="Ambari.SCOM.AmbariManagedEntity" Hosted="false" Abstract="false" Singleton="false">
+          <Property ID="TemplateName" Type="string" Key="true" />
+          <Property ID="ClusterName" Type="string" Key="true" />
+          <Property ID="ServiceName" Type="string" Key="true" />
+        </ClassType>
+
+        <ClassType ID="Ambari.SCOM.ClusterService" Accessibility="Public" Base="Ambari.SCOM.AmbariEntity" Hosted="true" Abstract="true" Singleton="false">
+          <Property ID="ClusterName" Type="string" Comment="Required to show parent cluster name on State Widget" />
+        </ClassType>
+
+        <ClassType ID="Ambari.SCOM.ClusterService.Hdfs" Accessibility="Public" Base="Ambari.SCOM.ClusterService" Hosted="true" Abstract="false" Singleton="false" />
+        <ClassType ID="Ambari.SCOM.ClusterService.MapReduce" Accessibility="Public" Base="Ambari.SCOM.ClusterService" Hosted="true" Abstract="false" Singleton="false" />
+        <ClassType ID="Ambari.SCOM.ClusterService.Hive" Accessibility="Public" Base="Ambari.SCOM.ClusterService" Hosted="true" Abstract="false" Singleton="false" />
+        <ClassType ID="Ambari.SCOM.ClusterService.Templeton" Accessibility="Public" Base="Ambari.SCOM.ClusterService" Hosted="true" Abstract="false" Singleton="false" />
+        <ClassType ID="Ambari.SCOM.ClusterService.Oozie" Accessibility="Public" Base="Ambari.SCOM.ClusterService" Hosted="true" Abstract="false" Singleton="false" />
+        <ClassType ID="Ambari.SCOM.ClusterService.Pig" Accessibility="Public" Base="Ambari.SCOM.ClusterService" Hosted="true" Abstract="false" Singleton="false" />
+        <ClassType ID="Ambari.SCOM.ClusterService.Sqoop" Accessibility="Public" Base="Ambari.SCOM.ClusterService" Hosted="true" Abstract="false" Singleton="false" />
+      </ClassTypes>
+
+      <RelationshipTypes>
+        <RelationshipType ID="Ambari.SCOM.PrivateClusterServiceHostsClusterService"
+                          Base="System!System.Hosting" Accessibility="Public">
+          <Source ID="PrivateService" Type="Ambari.SCOM.ClusterService.Private" />
+          <Target ID="Service" Type="Ambari.SCOM.ClusterService" />
+        </RelationshipType>
+
+        <RelationshipType ID="Ambari.SCOM.ClusterServiceContainsHostComponent" Base="System!System.Containment" Abstract="false" Accessibility="Public">
+          <Source ID="Service" Type="Ambari.SCOM.ClusterService" />
+          <Target ID="Component" Type="Ambari.SCOM.HostComponent" />
+        </RelationshipType>
+
+        <RelationshipType ID="Ambari.SCOM.HdfsServiceContainsNameNodeComponent" Base="System!System.Containment" Abstract="false" Accessibility="Public">
+          <Source ID="Service" Type="Ambari.SCOM.ClusterService.Hdfs" />
+          <Target ID="Component" Type="Ambari.SCOM.HostComponent.NameNode" />
+        </RelationshipType>
+        <RelationshipType ID="Ambari.SCOM.HdfsServiceContainsSecondaryNameNodeComponent" Base="System!System.Containment" Abstract="false" Accessibility="Public">
+          <Source ID="Service" Type="Ambari.SCOM.ClusterService.Hdfs" />
+          <Target ID="Component" Type="Ambari.SCOM.HostComponent.SecondaryNameNode" />
+        </RelationshipType>
+        <RelationshipType ID="Ambari.SCOM.MapReduceServiceContainsJobTrackerComponent" Base="System!System.Containment" Abstract="false" Accessibility="Public">
+          <Source ID="Service" Type="Ambari.SCOM.ClusterService.MapReduce" />
+          <Target ID="Component" Type="Ambari.SCOM.HostComponent.JobTracker" />
+        </RelationshipType>
+        <RelationshipType ID="Ambari.SCOM.HiveServiceContainsHiveServerComponent" Base="System!System.Containment" Abstract="false" Accessibility="Public">
+          <Source ID="Service" Type="Ambari.SCOM.ClusterService.Hive" />
+          <Target ID="Component" Type="Ambari.SCOM.HostComponent.HiveServer" />
+        </RelationshipType>
+        <RelationshipType ID="Ambari.SCOM.HiveServiceContainsHiveMetastoreComponent" Base="System!System.Containment" Abstract="false" Accessibility="Public">
+          <Source ID="Service" Type="Ambari.SCOM.ClusterService.Hive" />
+          <Target ID="Component" Type="Ambari.SCOM.HostComponent.HiveMetastore" />
+        </RelationshipType>
+        <RelationshipType ID="Ambari.SCOM.TempletonServiceContainsTempletonServerComponent" Base="System!System.Containment" Abstract="false" Accessibility="Public">
+          <Source ID="Service" Type="Ambari.SCOM.ClusterService.Templeton" />
+          <Target ID="Component" Type="Ambari.SCOM.HostComponent.TempletonServer" />
+        </RelationshipType>
+        <RelationshipType ID="Ambari.SCOM.OozieServiceContainsOozieServerComponent" Base="System!System.Containment" Abstract="false" Accessibility="Public">
+          <Source ID="Service" Type="Ambari.SCOM.ClusterService.Oozie" />
+          <Target ID="Component" Type="Ambari.SCOM.HostComponent.OozieServer" />
+        </RelationshipType>
+      </RelationshipTypes>
+    </EntityTypes>
+  </TypeDefinitions>
+
+  <Presentation>
+    <ImageReferences>
+      <ImageReference ElementID="Ambari.SCOM.ClusterService.Hdfs" ImageID="Ambari.SCOM.Resources.Images.HDFS16Icon" />
+      <ImageReference ElementID="Ambari.SCOM.ClusterService.Hdfs" ImageID="Ambari.SCOM.Resources.Images.HDFSDiagramIcon" />
+      <ImageReference ElementID="Ambari.SCOM.ClusterService.MapReduce" ImageID="Ambari.SCOM.Resources.Images.MapReduce16Icon" />
+      <ImageReference ElementID="Ambari.SCOM.ClusterService.MapReduce" ImageID="Ambari.SCOM.Resources.Images.MapReduceDiagramIcon" />
+      <ImageReference ElementID="Ambari.SCOM.ClusterService.Hive" ImageID="Ambari.SCOM.Resources.Images.HiveService16Icon" />
+      <ImageReference ElementID="Ambari.SCOM.ClusterService.Hive" ImageID="Ambari.SCOM.Resources.Images.HiveServiceDiagramIcon" />
+      <ImageReference ElementID="Ambari.SCOM.ClusterService.Templeton" ImageID="Ambari.SCOM.Resources.Images.TempletonService16Icon" />
+      <ImageReference ElementID="Ambari.SCOM.ClusterService.Templeton" ImageID="Ambari.SCOM.Resources.Images.TempletonServiceDiagramIcon" />
+      <ImageReference ElementID="Ambari.SCOM.ClusterService.Oozie" ImageID="Ambari.SCOM.Resources.Images.OozieService16Icon" />
+      <ImageReference ElementID="Ambari.SCOM.ClusterService.Oozie" ImageID="Ambari.SCOM.Resources.Images.OozieServiceDiagramIcon" />
+      <ImageReference ElementID="Ambari.SCOM.ClusterService.Pig" ImageID="Ambari.SCOM.Resources.Images.PigService16Icon" />
+      <ImageReference ElementID="Ambari.SCOM.ClusterService.Pig" ImageID="Ambari.SCOM.Resources.Images.PigServiceDiagramIcon" />
+      <ImageReference ElementID="Ambari.SCOM.ClusterService.Sqoop" ImageID="Ambari.SCOM.Resources.Images.ScoopService16Icon" />
+      <ImageReference ElementID="Ambari.SCOM.ClusterService.Sqoop" ImageID="Ambari.SCOM.Resources.Images.ScoopServiceDiagramIcon" />
+    </ImageReferences>
+  </Presentation>
+
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.ClusterService.Private">
+          <Name>Hadoop Cluster Service (Private Entity)</Name>
+          <Description>This class contains private properties of Hadoop Cluster Service.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.ClusterService.Private" SubElementID="TemplateName">
+          <Name>Template Name</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.ClusterService.Private" SubElementID="ClusterName">
+          <Name>Cluster Name</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.ClusterService.Private" SubElementID="ServiceName">
+          <Name>Service Name</Name>
+        </DisplayString>
+
+        <DisplayString ElementID="Ambari.SCOM.ClusterService">
+          <Name>Hadoop Cluster Service</Name>
+          <Description>Base class for all Hadoop Cluster Services.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.ClusterService" SubElementID="ClusterName">
+          <Name>Cluster Name</Name>
+        </DisplayString>
+
+        <DisplayString ElementID="Ambari.SCOM.PrivateClusterServiceHostsClusterService">
+          <Name>Hadoop Cluster Service (Private) Hosts Hadoop Cluster Service</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.ClusterServiceContainsHostComponent">
+          <Name>Hadoop Cluster Service Contains Hadoop Host Component</Name>
+        </DisplayString>
+
+        <DisplayString ElementID="Ambari.SCOM.ClusterService.Hdfs">
+          <Name>Hadoop HDFS Cluster Service</Name>
+          <Description>This class represents Hadoop HDFS Service.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.ClusterService.MapReduce">
+          <Name>Hadoop MapReduce Cluster Service</Name>
+          <Description>This class represents Hadoop MapReduce Service.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.ClusterService.Hive">
+          <Name>Hadoop Hive Cluster Services</Name>
+          <Description>This class represents Hadoop Hive Service.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.ClusterService.Templeton">
+          <Name>Hadoop Templeton Cluster Services</Name>
+          <Description>This class represents Hadoop Templeton Service.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.ClusterService.Oozie">
+          <Name>Hadoop Oozie Cluster Services</Name>
+          <Description>This class represents Hadoop Oozie Service.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.ClusterService.Pig">
+          <Name>Hadoop Pig Cluster Services</Name>
+          <Description>This class represents Hadoop Pig Service.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.ClusterService.Sqoop">
+          <Name>Hadoop Sqoop Cluster Service</Name>
+          <Description>This class represents Hadoop Sqoop Service.</Description>
+        </DisplayString>
+
+        <DisplayString ElementID="Ambari.SCOM.HdfsServiceContainsNameNodeComponent">
+          <Name>Hadoop HDFS Cluster Service Contains NameNode Host Component</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.HdfsServiceContainsSecondaryNameNodeComponent">
+          <Name>Hadoop HDFS Cluster Service Contains Secondary NameNode Host Component</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.MapReduceServiceContainsJobTrackerComponent">
+          <Name>Hadoop MapReduce Cluster Service Contains JobTracker Host Component</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.HiveServiceContainsHiveServerComponent">
+          <Name>Hadoop Hive Cluster Service Contains Hive Server Host Component</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.HiveServiceContainsHiveMetastoreComponent">
+          <Name>Hadoop Hive Cluster Service Contains Hive Metastore Host Component</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.TempletonServiceContainsTempletonServerComponent">
+          <Name>Hadoop Templeton Cluster Service Contains Templeton Server Host Component</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.OozieServiceContainsOozieServerComponent">
+          <Name>Hadoop Oozie Cluster Service Contains Oozie Server Host Component</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/Classes/ClusterSoftwareProjection.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/ClusterSoftwareProjection.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/ClusterSoftwareProjection.mpx
new file mode 100644
index 0000000..fc474ac
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/ClusterSoftwareProjection.mpx
@@ -0,0 +1,66 @@
+<!--## 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>
+    <EntityTypes>
+      <ClassTypes>
+        <ClassType ID="Ambari.SCOM.ClusterSoftwareProjection" Accessibility="Public"
+                   Base="Ambari.SCOM.ClusterProjection" Hosted="true" Abstract="false" Singleton="false" />
+      </ClassTypes>
+
+      <RelationshipTypes>
+        <RelationshipType ID="Ambari.SCOM.ClusterHostsClusterSoftwareProjection"
+                          Base="System!System.Hosting" Accessibility="Public">
+          <Source ID="Cluster" Type="Ambari.SCOM.Cluster" />
+          <Target ID="Projection" Type="Ambari.SCOM.ClusterSoftwareProjection" />
+        </RelationshipType>
+
+        <RelationshipType ID="Ambari.SCOM.ClusterSoftwareProjectionContainsClusterService"
+                            Base="System!System.Containment" Abstract="false" Accessibility="Public">
+          <Source ID="Projection" Type="Ambari.SCOM.ClusterSoftwareProjection" />
+          <Target ID="Service" Type="Ambari.SCOM.ClusterService" />
+        </RelationshipType>
+      </RelationshipTypes>
+    </EntityTypes>
+  </TypeDefinitions>
+
+  <Presentation>
+    <ImageReferences>
+      <ImageReference ElementID="Ambari.SCOM.ClusterSoftwareProjection" ImageID="Ambari.SCOM.Resources.Images.Services16Icon" />
+      <ImageReference ElementID="Ambari.SCOM.ClusterSoftwareProjection" ImageID="Ambari.SCOM.Resources.Images.ServicesDiagramIcon" />
+    </ImageReferences>
+  </Presentation>
+
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.ClusterSoftwareProjection">
+          <Name>Hadoop Cluster Software Projection</Name>
+          <Description>This class represents Hadoop Cluster Software monitoring projection, based on cluster services.</Description>
+        </DisplayString>
+
+        <DisplayString ElementID="Ambari.SCOM.ClusterHostsClusterSoftwareProjection">
+          <Name>Hadoop Cluster Hosts Cluster Software Projection</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.ClusterSoftwareProjectionContainsClusterService">
+          <Name>Hadoop Cluster Software Projection Contains Cluster Service</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/Classes/ClustersGroup.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/ClustersGroup.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/ClustersGroup.mpx
new file mode 100644
index 0000000..b5e93e5
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/ClustersGroup.mpx
@@ -0,0 +1,46 @@
+<!--## 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>
+    <EntityTypes>
+      <ClassTypes>
+        <ClassType ID="Ambari.SCOM.ClustersGroup" Accessibility="Public" Base="System!System.Group" Hosted="false" Abstract="false" Singleton="true" />
+      </ClassTypes>
+
+      <RelationshipTypes>
+        <RelationshipType ID="Ambari.SCOM.ClustersGroupContainsCluster" Accessibility="Public" Base="System!System.Containment" Abstract="false">
+          <Source ID="Source" Type="Ambari.SCOM.ClustersGroup" />
+          <Target ID="Target" Type="Ambari.SCOM.Cluster" />
+        </RelationshipType>
+      </RelationshipTypes>
+    </EntityTypes>
+  </TypeDefinitions>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.ClustersGroup">
+          <Name>Hadoop Clusters</Name>
+          <Description>A group containing all monitored Hadoop Clusters.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.ClustersGroupContainsCluster">
+          <Name>Hadoop Clusters Group Contains Hadoop Cluster</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/Classes/Host.mpx
----------------------------------------------------------------------
diff --git a/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/Host.mpx b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/Host.mpx
new file mode 100644
index 0000000..1efb33a
--- /dev/null
+++ b/contrib/ambari-scom/management-pack/Hadoop_MP/HadoopMp/Classes/Host.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>
+    <EntityTypes>
+      <ClassTypes>
+        <ClassType ID="Ambari.SCOM.Host.Private" Accessibility="Public" Base="Ambari.SCOM.AmbariManagedEntity" Hosted="false" Abstract="false" Singleton="false">
+          <Property ID="TemplateName" Type="string" Key="true" />
+          <Property ID="ClusterName" Type="string" Key="true" />
+          <Property ID="HostName" Type="string" Key="true" />
+        </ClassType>
+        
+        <ClassType ID="Ambari.SCOM.Host" Accessibility="Public" Base="Ambari.SCOM.AmbariEntity" Hosted="true" Abstract="false" Singleton="false">
+          <Property ID="IpAddress" Type="string" Key="true" />
+        </ClassType>
+      </ClassTypes>
+
+      <RelationshipTypes>
+        <RelationshipType ID="Ambari.SCOM.PrivateHostHostsHost"
+                          Base="System!System.Hosting" Accessibility="Public">
+          <Source ID="PrivateHost" Type="Ambari.SCOM.Host.Private" />
+          <Target ID="Host" Type="Ambari.SCOM.Host" />
+        </RelationshipType>
+      </RelationshipTypes>
+    </EntityTypes>
+  </TypeDefinitions>
+
+  <Presentation>
+    <ImageReferences>
+      <ImageReference ElementID="Ambari.SCOM.Host" ImageID="Ambari.SCOM.Resources.Images.Host16Icon" />
+      <ImageReference ElementID="Ambari.SCOM.Host" ImageID="Ambari.SCOM.Resources.Images.HostDiagramIcon" />
+    </ImageReferences>
+  </Presentation>
+
+  <LanguagePacks>
+    <LanguagePack ID="ENU" IsDefault="true">
+      <DisplayStrings>
+        <DisplayString ElementID="Ambari.SCOM.Host.Private">
+          <Name>Hadoop Host (Private Entity)</Name>
+          <Description>This class contains private properties of Hadoop Host.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Host.Private" SubElementID="TemplateName">
+          <Name>Template Name</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Host.Private" SubElementID="ClusterName">
+          <Name>Cluster Name</Name>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Host.Private" SubElementID="HostName">
+          <Name>Host Name</Name>
+        </DisplayString>
+        
+        <DisplayString ElementID="Ambari.SCOM.Host">
+          <Name>Hadoop Host</Name>
+          <Description>This class represents Hadoop Host.</Description>
+        </DisplayString>
+        <DisplayString ElementID="Ambari.SCOM.Host" SubElementID="IpAddress">
+          <Name>IP Address</Name>
+        </DisplayString>
+
+        <DisplayString ElementID="Ambari.SCOM.PrivateHostHostsHost">
+          <Name>Hadoop Host (Private Entity) Hosts Hadoop Host</Name>
+        </DisplayString>
+      </DisplayStrings>
+    </LanguagePack>
+  </LanguagePacks>
+
+  <!--
+  <Resources>
+    <Image ID="Ambari.SCOM.Host.16x16Image" Accessibility="Public" FileName="Host-16.png" />
+    <Image ID="Ambari.SCOM.Host.80x80Image" Accessibility="Public" FileName="Host-80.png" />
+  </Resources>
+  -->
+</ManagementPackFragment>