فهرست منبع

AMBARI-5373. metainfo.xml should support os families not os types (aonishuk)

Andrew Onischuk 11 سال پیش
والد
کامیت
01bd864f1c
78فایلهای تغییر یافته به همراه364 افزوده شده و 1144 حذف شده
  1. 2 2
      ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java
  2. 3 3
      ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
  3. 11 0
      ambari-server/src/main/java/org/apache/ambari/server/state/Host.java
  4. 5 1
      ambari-server/src/main/java/org/apache/ambari/server/state/ServiceInfo.java
  5. 3 3
      ambari-server/src/main/java/org/apache/ambari/server/state/ServiceOsSpecific.java
  6. 4 3
      ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClustersImpl.java
  7. 11 0
      ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java
  8. 0 41
      ambari-server/src/main/resources/stacks/HDP/1.2.0/repos/repoinfo.xml
  9. 0 35
      ambari-server/src/main/resources/stacks/HDP/1.2.1/repos/repoinfo.xml
  10. 0 35
      ambari-server/src/main/resources/stacks/HDP/1.3.0/repos/repoinfo.xml
  11. 0 35
      ambari-server/src/main/resources/stacks/HDP/1.3.2.GlusterFS/repos/repoinfo.xml
  12. 0 35
      ambari-server/src/main/resources/stacks/HDP/1.3.2/repos/repoinfo.xml
  13. 3 25
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/GANGLIA/metainfo.xml
  14. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HBASE/metainfo.xml
  15. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/metainfo.xml
  16. 4 58
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HIVE/metainfo.xml
  17. 3 34
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/NAGIOS/metainfo.xml
  18. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/OOZIE/metainfo.xml
  19. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/PIG/metainfo.xml
  20. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/SQOOP/metainfo.xml
  21. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/WEBHCAT/metainfo.xml
  22. 1 1
      ambari-server/src/main/resources/stacks/HDP/1.3.2/services/ZOOKEEPER/metainfo.xml
  23. 0 35
      ambari-server/src/main/resources/stacks/HDP/1.3.3/repos/repoinfo.xml
  24. 0 21
      ambari-server/src/main/resources/stacks/HDP/2.0.5/repos/repoinfo.xml
  25. 0 35
      ambari-server/src/main/resources/stacks/HDP/2.0.6.GlusterFS/repos/repoinfo.xml
  26. 0 35
      ambari-server/src/main/resources/stacks/HDP/2.0.6/repos/repoinfo.xml
  27. 3 61
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/GANGLIA/metainfo.xml
  28. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HBASE/metainfo.xml
  29. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/metainfo.xml
  30. 10 10
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/metainfo.xml
  31. 3 34
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/metainfo.xml
  32. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/OOZIE/metainfo.xml
  33. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/PIG/metainfo.xml
  34. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/SQOOP/metainfo.xml
  35. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/WEBHCAT/metainfo.xml
  36. 2 2
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/metainfo.xml
  37. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.0.6/services/ZOOKEEPER/metainfo.xml
  38. 0 35
      ambari-server/src/main/resources/stacks/HDP/2.0/repos/repoinfo.xml
  39. 1 36
      ambari-server/src/main/resources/stacks/HDP/2.1/repos/repoinfo.xml
  40. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/metainfo.xml
  41. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1/services/HIVE/metainfo.xml
  42. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1/services/OOZIE/metainfo.xml
  43. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/metainfo.xml
  44. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/metainfo.xml
  45. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1/services/WEBHCAT/metainfo.xml
  46. 1 1
      ambari-server/src/main/resources/stacks/HDP/2.1/services/YARN/metainfo.xml
  47. 8 0
      ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java
  48. 16 6
      ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatMonitor.java
  49. 6 2
      ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
  50. 2 2
      ambari-server/src/test/java/org/apache/ambari/server/api/util/StackExtensionHelperTest.java
  51. 126 414
      ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
  52. 17 5
      ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java
  53. 4 1
      ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackDefinedPropertyProviderTest.java
  54. 7 1
      ambari-server/src/test/java/org/apache/ambari/server/state/ServiceComponentTest.java
  55. 6 1
      ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterTest.java
  56. 16 8
      ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java
  57. 12 2
      ambari-server/src/test/java/org/apache/ambari/server/state/host/HostTest.java
  58. 11 3
      ambari-server/src/test/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostTest.java
  59. 6 1
      ambari-server/src/test/java/org/apache/ambari/server/utils/TestStageUtils.java
  60. 1 1
      ambari-server/src/test/resources/stacks/HDP/0.1/repos/repoinfo.xml
  61. 1 1
      ambari-server/src/test/resources/stacks/HDP/0.2/repos/repoinfo.xml
  62. 3 3
      ambari-server/src/test/resources/stacks/HDP/1.3.4/services/GANGLIA/metainfo.xml
  63. 1 1
      ambari-server/src/test/resources/stacks/HDP/1.3.4/services/HBASE/metainfo.xml
  64. 1 1
      ambari-server/src/test/resources/stacks/HDP/1.3.4/services/HDFS/metainfo.xml
  65. 5 5
      ambari-server/src/test/resources/stacks/HDP/1.3.4/services/HIVE/metainfo.xml
  66. 5 5
      ambari-server/src/test/resources/stacks/HDP/1.3.4/services/NAGIOS/metainfo.xml
  67. 1 1
      ambari-server/src/test/resources/stacks/HDP/1.3.4/services/OOZIE/metainfo.xml
  68. 1 1
      ambari-server/src/test/resources/stacks/HDP/1.3.4/services/PIG/metainfo.xml
  69. 1 1
      ambari-server/src/test/resources/stacks/HDP/1.3.4/services/SQOOP/metainfo.xml
  70. 1 1
      ambari-server/src/test/resources/stacks/HDP/1.3.4/services/WEBHCAT/metainfo.xml
  71. 1 1
      ambari-server/src/test/resources/stacks/HDP/1.3.4/services/ZOOKEEPER/metainfo.xml
  72. 2 2
      ambari-server/src/test/resources/stacks/HDP/2.0.7/services/HBASE/metainfo.xml
  73. 1 1
      ambari-server/src/test/resources/stacks/HDP/2.0.7/services/HDFS/metainfo.xml
  74. 2 2
      ambari-server/src/test/resources/stacks/HDP/2.0.7/services/YARN/metainfo.xml
  75. 1 1
      ambari-server/src/test/resources/stacks/HDP/2.0.8/services/HDFS/metainfo.xml
  76. 1 1
      ambari-server/src/test/resources/stacks/HDP/2.1.1/services/STORM/metainfo.xml
  77. 1 1
      ambari-web/app/controllers/installer.js
  78. 8 33
      ambari-web/app/views/wizard/step1_view.js

+ 2 - 2
ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java

@@ -735,14 +735,14 @@ public class AmbariCustomCommandExecutionHelper {
     Map<String, List<RepositoryInfo>> repos = ambariMetaInfo.getRepository(
         stackId.getStackName(), stackId.getStackVersion());
     String repoInfo = "";
-    if (!repos.containsKey(host.getOsType())) {
+    if (!repos.containsKey(host.getOsFamily())) {
       // FIXME should this be an error?
       LOG.warn("Could not retrieve repo information for host"
           + ", hostname=" + host.getHostName()
           + ", clusterName=" + cluster.getClusterName()
           + ", stackInfo=" + stackId.getStackId());
     } else {
-      repoInfo = gson.toJson(repos.get(host.getOsType()));
+      repoInfo = gson.toJson(repos.get(host.getOsFamily()));
     }
 
     return repoInfo;

+ 3 - 3
ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java

@@ -1183,7 +1183,7 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle
     String serviceName = scHost.getServiceName();
     String componentName = event.getServiceComponentName();
     String hostname = scHost.getHostName();
-    String osType = clusters.getHost(hostname).getOsType();
+    String osFamily = clusters.getHost(hostname).getOsFamily();
     StackId stackId = cluster.getDesiredStackVersion();
     ServiceInfo serviceInfo = ambariMetaInfo.getServiceInfo(stackId.getStackName(),
       stackId.getStackVersion(), serviceName);
@@ -1277,8 +1277,8 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle
       anyOs = serviceInfo.getOsSpecifics().get(AmbariMetaInfo.ANY_OS);
     }
     ServiceOsSpecific hostOs = null;
-    if (serviceInfo.getOsSpecifics().containsKey(osType)) {
-      hostOs = serviceInfo.getOsSpecifics().get(osType);
+    if (serviceInfo.getOsSpecifics().containsKey(osFamily)) {
+      hostOs = serviceInfo.getOsSpecifics().get(osFamily);
       // Choose repo that is relevant for host
       ServiceOsSpecific.Repo serviceRepo = hostOs.getRepo();
       if (serviceRepo != null) {

+ 11 - 0
ambari-server/src/main/java/org/apache/ambari/server/state/Host.java

@@ -159,6 +159,17 @@ public interface Host {
    * @return the osType
    */
   public String getOsType();
+  
+  /**
+   * Get the os Family: 
+   * redhat5: for centos5, rhel5, oraclelinux5 ..
+   * redhat6: for centos6, rhel6, oraclelinux6 ..
+   * debian12 : for ubuntu12
+   * suse11: for sles11, suse11 ..
+   * 
+   * @return the osFamily
+   */
+  public String getOsFamily();
 
   /**
    * @param osType the osType to set

+ 5 - 1
ambari-server/src/main/java/org/apache/ambari/server/state/ServiceInfo.java

@@ -62,6 +62,8 @@ public class ServiceInfo {
   private File metricsFile = null;
   @XmlTransient
   private Map<String, Map<String, List<MetricDefinition>>> metrics = null;
+  
+  private static final String OS_SEPARATOR = ",";
 
 
   /**
@@ -310,7 +312,9 @@ public class ServiceInfo {
                   new TreeMap<String, ServiceOsSpecific>();
           if (serviceOsSpecifics != null) {
             for (ServiceOsSpecific osSpecific : serviceOsSpecifics) {
-              tmpMap.put(osSpecific.getOsType(), osSpecific);
+              for(String osFamily:osSpecific.getOsFamily().split(OS_SEPARATOR)) {
+                tmpMap.put(osFamily.trim(), osSpecific);
+              }
             }
           }
           serviceOsSpecificsMap = tmpMap;

+ 3 - 3
ambari-server/src/main/java/org/apache/ambari/server/state/ServiceOsSpecific.java

@@ -29,7 +29,7 @@ import com.google.gson.annotations.SerializedName;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class ServiceOsSpecific {
 
-  private String osType;
+  private String osFamily;
   private Repo repo;
 
 
@@ -38,8 +38,8 @@ public class ServiceOsSpecific {
   private List<Package> packages = new ArrayList<Package>();
 
 
-  public String getOsType() {
-    return osType;
+  public String getOsFamily() {
+    return osFamily;
   }
 
 

+ 4 - 3
ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClustersImpl.java

@@ -319,7 +319,8 @@ public class ClustersImpl implements Clusters {
     if (repos == null || repos.isEmpty()) {
       return false;
     }
-    return repos.containsKey(h.getOsType());
+    
+    return repos.containsKey(h.getOsFamily());
   }
 
   @Override
@@ -363,7 +364,7 @@ public class ClustersImpl implements Clusters {
                     + ", clusterName=" + clusterName
                     + ", clusterStackId=" + cluster.getDesiredStackVersion().getStackId()
                     + ", hostname=" + hostname
-                    + ", hostOsType=" + host.getOsType();
+                    + ", hostOsFamily=" + host.getOsFamily();
                 LOG.warn(message);
                 throw new AmbariException(message);
               }
@@ -451,7 +452,7 @@ public class ClustersImpl implements Clusters {
             + ", clusterName=" + clusterName
             + ", clusterStackId=" + cluster.getDesiredStackVersion().getStackId()
             + ", hostname=" + hostname
-            + ", hostOsType=" + host.getOsType();
+            + ", hostOsFamily=" + host.getOsFamily();
         LOG.warn(message);
         throw new AmbariException(message);
       }

+ 11 - 0
ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java

@@ -87,6 +87,7 @@ public class HostImpl implements Host {
   private static final String SWAPSIZE = "swap_size";
   private static final String SWAPFREE = "swap_free";
   private static final String TIMEZONE = "timezone";
+  private static final String OS_RELEASE_VERSION = "os_release_version";
 
   
   private final Gson gson;
@@ -455,6 +456,10 @@ public class HostImpl implements Host {
       if (hostInfo.getTimeZone() != null) {
         attrs.put(TIMEZONE, hostInfo.getTimeZone());
       }
+      if (hostInfo.getOSRelease() != null) {
+        attrs.put(OS_RELEASE_VERSION, hostInfo.getOSRelease());
+      }
+      
       setHostAttributes(attrs);
 
       saveIfPersisted();
@@ -803,6 +808,12 @@ public class HostImpl implements Host {
       writeLock.unlock();
     }
   }
+  
+  @Override
+  public String getOsFamily() {
+	  String majorVersion = this.getHostAttributes().get(OS_RELEASE_VERSION).split("\\.")[0];
+	  return this.getHostAttributes().get(OSFAMILY) + majorVersion;
+  }
 
   @Override
   public List<DiskInfo> getDisksInfo() {

+ 0 - 41
ambari-server/src/main/resources/stacks/HDP/1.2.0/repos/repoinfo.xml

@@ -16,20 +16,6 @@
    limitations under the License.
 -->
 <reposinfo>
-  <os type="centos6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP-1.2.0/repos/centos6</baseurl>
-      <repoid>HDP-1.2.0</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="centos5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP-1.2.0/repos/centos5</baseurl>
-      <repoid>HDP-1.2.0</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="redhat6">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP-1.2.0/repos/centos6</baseurl>
@@ -44,20 +30,6 @@
       <reponame>HDP</reponame>
     </repo>
   </os>
-  <os type="oraclelinux6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP-1.2.0/repos/centos6</baseurl>
-      <repoid>HDP-1.2.0</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="oraclelinux5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP-1.2.0/repos/centos5</baseurl>
-      <repoid>HDP-1.2.0</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="suse11">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP-1.2.0/repos/suse11</baseurl>
@@ -71,17 +43,4 @@
       <mirrorslist></mirrorslist>
     </repo>
   </os>
-    <os type="sles11">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP-1.2.0/repos/suse11</baseurl>
-      <repoid>HDP-1.2.0</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.15/repos/suse11</baseurl>
-      <repoid>HDP-UTILS-1.1.0.15</repoid>
-      <reponame>HDP-UTILS</reponame>
-      <mirrorslist></mirrorslist>
-    </repo>
-  </os>
 </reposinfo>

+ 0 - 35
ambari-server/src/main/resources/stacks/HDP/1.2.1/repos/repoinfo.xml

@@ -16,20 +16,6 @@
    limitations under the License.
 -->
 <reposinfo>
-  <os type="centos6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/1.x/updates/1.2.1</baseurl>
-      <repoid>HDP-1.2.1</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="centos5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/1.x/updates/1.2.1</baseurl>
-      <repoid>HDP-1.2.1</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="redhat6">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/1.x/updates/1.2.1</baseurl>
@@ -44,20 +30,6 @@
       <reponame>HDP</reponame>
     </repo>
   </os>
-  <os type="oraclelinux6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/1.x/updates/1.2.1</baseurl>
-      <repoid>HDP-1.2.1</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="oraclelinux5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/1.x/updates/1.2.1</baseurl>
-      <repoid>HDP-1.2.1</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="suse11">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/1.x/updates/1.2.1</baseurl>
@@ -65,11 +37,4 @@
       <reponame>HDP</reponame>
     </repo>
   </os>
-  <os type="sles11">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/1.x/updates/1.2.1</baseurl>
-      <repoid>HDP-1.2.1</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
 </reposinfo>

+ 0 - 35
ambari-server/src/main/resources/stacks/HDP/1.3.0/repos/repoinfo.xml

@@ -16,20 +16,6 @@
    limitations under the License.
 -->
 <reposinfo>
-  <os type="centos6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/1.x/GA/1.3.0.0</baseurl>
-      <repoid>HDP-1.3.0</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="centos5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/1.x/GA/1.3.0.0</baseurl>
-      <repoid>HDP-1.3.0</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="redhat6">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/1.x/GA/1.3.0.0</baseurl>
@@ -44,20 +30,6 @@
       <reponame>HDP</reponame>
     </repo>
   </os>
-  <os type="oraclelinux6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/1.x/GA/1.3.0.0</baseurl>
-      <repoid>HDP-1.3.0</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="oraclelinux5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/1.x/GA/1.3.0.0</baseurl>
-      <repoid>HDP-1.3.0</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="suse11">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/1.x/GA/1.3.0.0</baseurl>
@@ -65,11 +37,4 @@
       <reponame>HDP</reponame>
     </repo>
   </os>
-    <os type="sles11">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/1.x/GA/1.3.0.0</baseurl>
-      <repoid>HDP-1.3.0</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
 </reposinfo>

+ 0 - 35
ambari-server/src/main/resources/stacks/HDP/1.3.2.GlusterFS/repos/repoinfo.xml

@@ -16,20 +16,6 @@
    limitations under the License.
 -->
 <reposinfo>
-  <os type="centos6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/1.x/updates/1.3.2.0</baseurl>
-      <repoid>HDP-1.3.2.GlusterFS</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="centos5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/1.x/updates/1.3.2.0</baseurl>
-      <repoid>HDP-1.3.2.GlusterFS</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="redhat6">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/1.x/updates/1.3.2.0</baseurl>
@@ -44,20 +30,6 @@
       <reponame>HDP</reponame>
     </repo>
   </os>
-  <os type="oraclelinux6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/1.x/updates/1.3.2.0</baseurl>
-      <repoid>HDP-1.3.2.GlusterFS</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="oraclelinux5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/1.x/updates/1.3.2.0</baseurl>
-      <repoid>HDP-1.3.2.GlusterFS</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="suse11">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/1.x/updates/1.3.2.0</baseurl>
@@ -65,11 +37,4 @@
       <reponame>HDP</reponame>
     </repo>
   </os>
-    <os type="sles11">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/1.x/updates/1.3.2.0</baseurl>
-      <repoid>HDP-1.3.2.GlusterFS</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
 </reposinfo>

+ 0 - 35
ambari-server/src/main/resources/stacks/HDP/1.3.2/repos/repoinfo.xml

@@ -16,20 +16,6 @@
    limitations under the License.
 -->
 <reposinfo>
-  <os type="centos6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/1.x/updates/1.3.2.0</baseurl>
-      <repoid>HDP-1.3.2</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="centos5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/1.x/updates/1.3.2.0</baseurl>
-      <repoid>HDP-1.3.2</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="redhat6">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/1.x/updates/1.3.2.0</baseurl>
@@ -44,20 +30,6 @@
       <reponame>HDP</reponame>
     </repo>
   </os>
-  <os type="oraclelinux6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/1.x/updates/1.3.2.0</baseurl>
-      <repoid>HDP-1.3.2</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="oraclelinux5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/1.x/updates/1.3.2.0</baseurl>
-      <repoid>HDP-1.3.2</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="suse11">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/1.x/updates/1.3.2.0</baseurl>
@@ -65,11 +37,4 @@
       <reponame>HDP</reponame>
     </repo>
   </os>
-    <os type="sles11">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/1.x/updates/1.3.2.0</baseurl>
-      <repoid>HDP-1.3.2</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
 </reposinfo>

+ 3 - 25
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/GANGLIA/metainfo.xml

@@ -50,7 +50,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -83,7 +83,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>suse11</osType>
+          <osFamily>suse11</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -96,29 +96,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>sles11</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>apache2</name>
-            </package>
-            <package>
-              <type>rpm</type>
-              <name>apache2-mod_php5</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>centos5</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>httpd</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>centos6</osType>
+          <osFamily>redhat5,redhat6</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HBASE/metainfo.xml

@@ -96,7 +96,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/metainfo.xml

@@ -80,7 +80,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 4 - 58
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HIVE/metainfo.xml

@@ -88,7 +88,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -105,7 +105,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>centos6</osType>
+          <osFamily>redhat5,redhat6</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -114,61 +114,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>redhat6</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>mysql-server</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>redhat5</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>mysql-server</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>oraclelinux6</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>mysql-server</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>oraclelinux5</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>mysql-server</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>centos5</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>mysql-server</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>suse11</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>mysql-client</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>sles11</osType>
+          <osFamily>suse11</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -208,7 +154,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 3 - 34
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/NAGIOS/metainfo.xml

@@ -36,7 +36,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -73,7 +73,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>suse11</osType>
+          <osFamily>suse11</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -86,38 +86,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>sles11</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>php5-json</name>
-            </package>
-            <package>
-              <type>rpm</type>
-              <name>apache2-mod_php5</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>centos5</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>php-pecl-json.x86_64</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>redhat5</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>php-pecl-json.x86_64</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>oraclelinux5</osType>
+          <osFamily>redhat5</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/OOZIE/metainfo.xml

@@ -80,7 +80,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/PIG/metainfo.xml

@@ -36,7 +36,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/SQOOP/metainfo.xml

@@ -54,7 +54,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/WEBHCAT/metainfo.xml

@@ -67,7 +67,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/ZOOKEEPER/metainfo.xml

@@ -48,7 +48,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 0 - 35
ambari-server/src/main/resources/stacks/HDP/1.3.3/repos/repoinfo.xml

@@ -16,20 +16,6 @@
    limitations under the License.
 -->
 <reposinfo>
-  <os type="centos6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/1.x/updates/1.3.3.0</baseurl>
-      <repoid>HDP-1.3.3</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="centos5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/1.x/updates/1.3.3.0</baseurl>
-      <repoid>HDP-1.3.3</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="redhat6">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/1.x/updates/1.3.3.0</baseurl>
@@ -44,20 +30,6 @@
       <reponame>HDP</reponame>
     </repo>
   </os>
-  <os type="oraclelinux6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/1.x/updates/1.3.3.0</baseurl>
-      <repoid>HDP-1.3.3</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="oraclelinux5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/1.x/updates/1.3.3.0</baseurl>
-      <repoid>HDP-1.3.3</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="suse11">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/1.x/updates/1.3.3.0</baseurl>
@@ -65,11 +37,4 @@
       <reponame>HDP</reponame>
     </repo>
   </os>
-    <os type="sles11">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/1.x/updates/1.3.3.0</baseurl>
-      <repoid>HDP-1.3.3</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
 </reposinfo>

+ 0 - 21
ambari-server/src/main/resources/stacks/HDP/2.0.5/repos/repoinfo.xml

@@ -16,20 +16,6 @@
    limitations under the License.
 -->
 <reposinfo>
-  <os type="centos6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.5.0</baseurl>
-      <repoid>HDP-2.0.5</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="centos5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/2.x/updates/2.0.5.0</baseurl>
-      <repoid>HDP-2.0.5</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="redhat6">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.5.0</baseurl>
@@ -51,11 +37,4 @@
       <reponame>HDP</reponame>
     </repo>
   </os>
-  <os type="sles11">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/2.x/updates/2.0.5.0</baseurl>
-      <repoid>HDP-2.0.5</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
 </reposinfo>

+ 0 - 35
ambari-server/src/main/resources/stacks/HDP/2.0.6.GlusterFS/repos/repoinfo.xml

@@ -16,20 +16,6 @@
    limitations under the License.
 -->
 <reposinfo>
-  <os type="centos6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.0</baseurl>
-      <repoid>HDP-2.0.6.GlusterFS</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="centos5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/2.x/updates/2.0.6.0</baseurl>
-      <repoid>HDP-2.0.6.GlusterFS</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="redhat6">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.0</baseurl>
@@ -43,20 +29,6 @@
       <repoid>HDP-2.0.6.GlusterFS</repoid>
       <reponame>HDP</reponame>
     </repo>
-  </os>
-   <os type="oraclelinux6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.0</baseurl>
-      <repoid>HDP-2.0.6.GlusterFS</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="oraclelinux5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/2.x/updates/2.0.6.0</baseurl>
-      <repoid>HDP-2.0.6.GlusterFS</repoid>
-      <reponame>HDP</reponame>
-    </repo>
   </os>
   <os type="suse11">
     <repo>
@@ -65,11 +37,4 @@
       <reponame>HDP</reponame>
     </repo>
   </os>
-  <os type="sles11">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/2.x/updates/2.0.6.0</baseurl>
-      <repoid>HDP-2.0.6.GlusterFS</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
 </reposinfo>

+ 0 - 35
ambari-server/src/main/resources/stacks/HDP/2.0.6/repos/repoinfo.xml

@@ -16,20 +16,6 @@
    limitations under the License.
 -->
 <reposinfo>
-  <os type="centos6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.1</baseurl>
-      <repoid>HDP-2.0.6</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="centos5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/2.x/updates/2.0.6.1</baseurl>
-      <repoid>HDP-2.0.6</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="redhat6">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.1</baseurl>
@@ -43,20 +29,6 @@
       <repoid>HDP-2.0.6</repoid>
       <reponame>HDP</reponame>
     </repo>
-  </os>
-   <os type="oraclelinux6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.1</baseurl>
-      <repoid>HDP-2.0.6</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="oraclelinux5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/2.x/updates/2.0.6.1</baseurl>
-      <repoid>HDP-2.0.6</repoid>
-      <reponame>HDP</reponame>
-    </repo>
   </os>
   <os type="suse11">
     <repo>
@@ -65,11 +37,4 @@
       <reponame>HDP</reponame>
     </repo>
   </os>
-  <os type="sles11">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/2.x/updates/2.0.6.1</baseurl>
-      <repoid>HDP-2.0.6</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
 </reposinfo>

+ 3 - 61
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/GANGLIA/metainfo.xml

@@ -45,7 +45,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -78,7 +78,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>suse11</osType>
+          <osFamily>suse11</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -91,65 +91,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>sles11</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>apache2</name>
-            </package>
-            <package>
-              <type>rpm</type>
-              <name>apache2-mod_php5</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>centos6</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>httpd</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>centos5</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>httpd</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>redhat6</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>httpd</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>redhat5</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>httpd</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>oraclelinux6</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>httpd</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>oraclelinux5</osType>
+          <osFamily>redhat5,redhat6</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HBASE/metainfo.xml

@@ -66,7 +66,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/metainfo.xml

@@ -97,7 +97,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 10 - 10
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HIVE/metainfo.xml

@@ -64,7 +64,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -81,7 +81,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>centos6</osType>
+          <osFamily>centos6</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -90,7 +90,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>centos5</osType>
+          <osFamily>centos5</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -99,7 +99,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>redhat6</osType>
+          <osFamily>redhat6</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -108,7 +108,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>redhat5</osType>
+          <osFamily>redhat5</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -117,7 +117,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>oraclelinux6</osType>
+          <osFamily>oraclelinux6</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -126,7 +126,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>oraclelinux5</osType>
+          <osFamily>oraclelinux5</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -135,7 +135,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>suse11</osType>
+          <osFamily>suse11</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -144,7 +144,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>sles11</osType>
+          <osFamily>sles11</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -183,7 +183,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 3 - 34
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/NAGIOS/metainfo.xml

@@ -35,7 +35,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -72,7 +72,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>suse11</osType>
+          <osFamily>suse11</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -85,38 +85,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>sles11</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>php5-json</name>
-            </package>
-            <package>
-              <type>rpm</type>
-              <name>apache2-mod_php5</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>centos5</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>php-pecl-json.x86_64</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>redhat5</osType>
-          <packages>
-            <package>
-              <type>rpm</type>
-              <name>php-pecl-json.x86_64</name>
-            </package>
-          </packages>
-        </osSpecific>
-        <osSpecific>
-          <osType>oraclelinux5</osType>
+          <osFamily>redhat5</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/OOZIE/metainfo.xml

@@ -46,7 +46,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/PIG/metainfo.xml

@@ -35,7 +35,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/SQOOP/metainfo.xml

@@ -37,7 +37,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/WEBHCAT/metainfo.xml

@@ -35,7 +35,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 2 - 2
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/YARN/metainfo.xml

@@ -68,7 +68,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -139,7 +139,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/ZOOKEEPER/metainfo.xml

@@ -46,7 +46,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 0 - 35
ambari-server/src/main/resources/stacks/HDP/2.0/repos/repoinfo.xml

@@ -16,20 +16,6 @@
    limitations under the License.
 -->
 <reposinfo>
-  <os type="centos6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.10.0</baseurl>
-      <repoid>HDP-2.0</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="centos5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/2.x/updates/2.0.10.0</baseurl>
-      <repoid>HDP-2.0</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="redhat6">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.10.0</baseurl>
@@ -43,20 +29,6 @@
       <repoid>HDP-2.0</repoid>
       <reponame>HDP</reponame>
     </repo>
-  </os>
-   <os type="oraclelinux6">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.10.0</baseurl>
-      <repoid>HDP-2.0</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="oraclelinux5">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/centos5/2.x/updates/2.0.10.0</baseurl>
-      <repoid>HDP-2.0</repoid>
-      <reponame>HDP</reponame>
-    </repo>
   </os>
   <os type="suse11">
     <repo>
@@ -65,11 +37,4 @@
       <reponame>HDP</reponame>
     </repo>
   </os>
-  <os type="sles11">
-    <repo>
-      <baseurl>http://public-repo-1.hortonworks.com/HDP/suse11/2.x/updates/2.0.10.0</baseurl>
-      <repoid>HDP-2.0</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
 </reposinfo>

+ 1 - 36
ambari-server/src/main/resources/stacks/HDP/2.1/repos/repoinfo.xml

@@ -17,20 +17,6 @@
 -->
 <reposinfo>
   <latest>http://s3.amazonaws.com/dev.hortonworks.com/HDP/hdp_urlinfo.json</latest>
-  <os type="centos6">
-    <repo>
-      <baseurl>REPLACE_WITH_CENTOS6_URL</baseurl>
-      <repoid>HDP-2.1</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="centos5">
-    <repo>
-      <baseurl>REPLACE_WITH_CENTOS5_URL</baseurl>
-      <repoid>HDP-2.1</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="redhat6">
     <repo>
       <baseurl>REPLACE_WITH_CENTOS6_URL</baseurl>
@@ -45,20 +31,6 @@
       <reponame>HDP</reponame>
     </repo>
   </os>
-  <os type="oraclelinux6">
-    <repo>
-      <baseurl>REPLACE_WITH_CENTOS6_URL</baseurl>
-      <repoid>HDP-2.1</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="oraclelinux5">
-    <repo>
-      <baseurl>REPLACE_WITH_CENTOS5_URL</baseurl>
-      <repoid>HDP-2.1</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
   <os type="suse11">
     <repo>
       <baseurl>REPLACE_WITH_SUSE11_URL</baseurl>
@@ -66,14 +38,7 @@
       <reponame>HDP</reponame>
     </repo>
   </os>
-  <os type="sles11">
-    <repo>
-      <baseurl>REPLACE_WITH_SUSE11_URL</baseurl>
-      <repoid>HDP-2.1</repoid>
-      <reponame>HDP</reponame>
-    </repo>
-  </os>
-  <os type="ubuntu12">
+  <os type="debian12">
     <repo>
       <baseurl>REPLACE_WITH_UBUNTU12_URL</baseurl>
       <repoid>HDP-2.1</repoid>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/metainfo.xml

@@ -45,7 +45,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.1/services/HIVE/metainfo.xml

@@ -38,7 +38,7 @@
       <version>0.12.0.2.1</version>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.1/services/OOZIE/metainfo.xml

@@ -26,7 +26,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/metainfo.xml

@@ -78,7 +78,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/metainfo.xml

@@ -35,7 +35,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.1/services/WEBHCAT/metainfo.xml

@@ -24,7 +24,7 @@
       <version>0.13.0.2.1</version>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.1/services/YARN/metainfo.xml

@@ -40,7 +40,7 @@
 
             <osSpecifics>
                 <osSpecific>
-                    <osType>any</osType>
+                    <osFamily>any</osFamily>
                     <packages>
                         <package>
                             <type>rpm</type>

+ 8 - 0
ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java

@@ -511,6 +511,7 @@ public class TestHeartbeatHandler {
     HostInfo hi = new HostInfo();
     hi.setHostName(DummyHostname1);
     hi.setOS(DummyOsType);
+    
     reg.setHostname(DummyHostname1);
     reg.setHardwareProfile(hi);
     reg.setAgentVersion(""); // Invalid agent version
@@ -1680,6 +1681,13 @@ public class TestHeartbeatHandler {
       throws AmbariException {
     clusters.addHost(DummyHostname1);
     clusters.getHost(DummyHostname1).setOsType(DummyOsType);
+    
+    Map<String, String> hostAttributes = new HashMap<String, String>();
+    hostAttributes.put("os_family", "redhat");
+    hostAttributes.put("os_release_version", "6.3");
+    clusters.getHost(DummyHostname1).setHostAttributes(hostAttributes);
+
+    
     clusters.getHost(DummyHostname1).persist();
     clusters.addCluster(DummyCluster);
 

+ 16 - 6
ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatMonitor.java

@@ -28,6 +28,7 @@ import static org.mockito.Mockito.verify;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import org.apache.ambari.server.AmbariException;
@@ -40,6 +41,7 @@ import org.apache.ambari.server.state.Cluster;
 import org.apache.ambari.server.state.Clusters;
 import org.apache.ambari.server.state.Config;
 import org.apache.ambari.server.state.ConfigFactory;
+import org.apache.ambari.server.state.Host;
 import org.apache.ambari.server.state.HostState;
 import org.apache.ambari.server.state.Service;
 import org.apache.ambari.server.state.ServiceComponent;
@@ -89,16 +91,24 @@ public class TestHeartbeatMonitor {
   public void teardown() {
     injector.getInstance(PersistService.class).stop();
   }
+  
+  private void setOsFamily(Host host, String osFamily, String osVersion) {
+    Map<String, String> hostAttributes = new HashMap<String, String>();
+    hostAttributes.put("os_family", osFamily);
+    hostAttributes.put("os_release_version", osVersion);
+    
+    host.setHostAttributes(hostAttributes);
+  }
 
   @Test
   public void testStateCommandsGeneration() throws AmbariException, InterruptedException,
           InvalidStateTransitionException {
     Clusters clusters = injector.getInstance(Clusters.class);
     clusters.addHost(hostname1);
-    clusters.getHost(hostname1).setOsType("centos6");
+    setOsFamily(clusters.getHost(hostname1), "redhat", "6.3");
     clusters.getHost(hostname1).persist();
     clusters.addHost(hostname2);
-    clusters.getHost(hostname2).setOsType("centos6");
+    setOsFamily(clusters.getHost(hostname2), "redhat", "6.3");
     clusters.getHost(hostname2).persist();
     clusters.addCluster(clusterName);
     Cluster cluster = clusters.getCluster(clusterName);
@@ -172,10 +182,10 @@ public class TestHeartbeatMonitor {
   public void testStatusCommandForAnyComponents() throws Exception {
     Clusters clusters = injector.getInstance(Clusters.class);
     clusters.addHost(hostname1);
-    clusters.getHost(hostname1).setOsType("centos6");
+    setOsFamily(clusters.getHost(hostname1), "redhat", "6.3");
     clusters.getHost(hostname1).persist();
     clusters.addHost(hostname2);
-    clusters.getHost(hostname2).setOsType("centos6");
+    setOsFamily(clusters.getHost(hostname2), "redhat", "6.3");
     clusters.getHost(hostname2).persist();
     clusters.addCluster(clusterName);
     Cluster cluster = clusters.getCluster(clusterName);
@@ -270,7 +280,7 @@ public class TestHeartbeatMonitor {
           InvalidStateTransitionException {
     Clusters clusters = injector.getInstance(Clusters.class);
     clusters.addHost(hostname1);
-    clusters.getHost(hostname1).setOsType("centos5");
+    setOsFamily(clusters.getHost(hostname1), "redhat", "5.9");
     clusters.getHost(hostname1).persist();
     clusters.addCluster(clusterName);
     Cluster cluster = clusters.getCluster(clusterName);
@@ -373,7 +383,7 @@ public class TestHeartbeatMonitor {
           InvalidStateTransitionException {
     Clusters clusters = injector.getInstance(Clusters.class);
     clusters.addHost(hostname1);
-    clusters.getHost(hostname1).setOsType("centos5");
+    setOsFamily(clusters.getHost(hostname1), "redhat", "6.3");
     clusters.getHost(hostname1).persist();
     
     clusters.addCluster(clusterName);

+ 6 - 2
ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java

@@ -80,7 +80,7 @@ public class AmbariMetaInfoTest {
   private static final int REPOS_CNT = 3;
   private static final int STACKS_NAMES_CNT = 1;
   private static final int PROPERTIES_CNT = 63;
-  private static final int OS_CNT = 3;
+  private static final int OS_CNT = 4;
 
   private AmbariMetaInfo metaInfo = null;
   private final static Logger LOG =
@@ -234,6 +234,7 @@ public class AmbariMetaInfoTest {
     Set<String> centos5Cnt = new HashSet<String>();
     Set<String> centos6Cnt = new HashSet<String>();
     Set<String> redhat6cnt = new HashSet<String>();
+    Set<String> redhat5cnt = new HashSet<String>();
 
     for (List<RepositoryInfo> vals : repos.values()) {
       for (RepositoryInfo repo : vals) {
@@ -244,8 +245,10 @@ public class AmbariMetaInfoTest {
           centos6Cnt.add(repo.getRepoId());
         } else if (repo.getOsType().equals("redhat6")) {
           redhat6cnt.add(repo.getRepoId());
+        } else if (repo.getOsType().equals("redhat5")) {
+          redhat5cnt.add(repo.getRepoId());
         } else {
-          fail("Found invalid os" + repo.getOsType());
+          fail("Found invalid os " + repo.getOsType());
         }
 
         if (repo.getRepoId().equals("epel")) {
@@ -260,6 +263,7 @@ public class AmbariMetaInfoTest {
 
     assertEquals(3, centos5Cnt.size());
     assertEquals(3, redhat6cnt.size());
+    assertEquals(3, redhat5cnt.size());
     assertEquals(3, centos6Cnt.size());
   }
   

+ 2 - 2
ambari-server/src/test/java/org/apache/ambari/server/api/util/StackExtensionHelperTest.java

@@ -118,7 +118,7 @@ public class StackExtensionHelperTest {
         Map<String,ServiceOsSpecific> specifics = serviceInfo.getOsSpecifics();
         assertTrue(specifics.size() == 2);
         ServiceOsSpecific anyOs = specifics.get(AmbariMetaInfo.ANY_OS);
-        assertEquals(AmbariMetaInfo.ANY_OS, anyOs.getOsType());
+        assertEquals(AmbariMetaInfo.ANY_OS, anyOs.getOsFamily());
         assertEquals("rpm", anyOs.getPackages().get(0).getType());
         assertEquals("wget", anyOs.getPackages().get(0).getName());
 
@@ -129,7 +129,7 @@ public class StackExtensionHelperTest {
                 secondComponent.getCommandScript().getTimeout());
 
         ServiceOsSpecific c6Os = specifics.get("centos6");
-        assertEquals("centos6", c6Os.getOsType());
+        assertEquals("centos6", c6Os.getOsFamily());
         assertEquals("rpm", c6Os.getPackages().get(0).getType());
         assertEquals("hbase", c6Os.getPackages().get(0).getName());
         assertEquals("http://something.com/centos6/2.x/updates/1",

+ 126 - 414
ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java

@@ -210,6 +210,22 @@ public class AmbariManagementControllerTest {
     injector.getInstance(PersistService.class).stop();
     actionDB = null;
   }
+  
+  private void setOsFamily(Host host, String osFamily, String osVersion) {
+    Map<String, String> hostAttributes = new HashMap<String, String>();
+    hostAttributes.put("os_family", osFamily);
+    hostAttributes.put("os_release_version", osVersion);
+    
+    host.setHostAttributes(hostAttributes);
+  }
+  
+  private void addHost(String hostname, String clusterName) throws AmbariException {
+    clusters.addHost(hostname);
+    setOsFamily(clusters.getHost(hostname), "redhat", "6.3");
+    clusters.getHost(hostname).setState(HostState.HEALTHY);
+    clusters.getHost(hostname).persist();
+    clusters.mapHostToCluster(hostname, clusterName);
+  }
 
   private void createCluster(String clusterName) throws AmbariException {
     ClusterRequest r = new ClusterRequest(null, clusterName, "HDP-0.1", null);
@@ -452,8 +468,8 @@ public class AmbariManagementControllerTest {
 
     clusters.addHost("h1");
     clusters.addHost("h2");
-    clusters.getHost("h1").setOsType("redhat6");
-    clusters.getHost("h2").setOsType("redhat6");
+    setOsFamily(clusters.getHost("h1"), "redhat", "6.3");
+    setOsFamily(clusters.getHost("h2"), "redhat", "6.3");
     clusters.getHost("h1").persist();
     clusters.getHost("h2").persist();
 
@@ -941,18 +957,7 @@ public class AmbariManagementControllerTest {
         State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos5");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
-
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h2").setOsType("centos6");
 
     try {
       createServiceComponentHost(clusterName, serviceName, componentName1,
@@ -963,8 +968,8 @@ public class AmbariManagementControllerTest {
       // Expected
     }
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     try {
       createServiceComponentHost(clusterName, serviceName, componentName1,
@@ -1047,15 +1052,9 @@ public class AmbariManagementControllerTest {
     createServiceComponent(clusterName, serviceName, componentName2,
         State.INIT);
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos5");
-    clusters.getHost("h2").persist();
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     Set<ServiceComponentHostRequest> set1 =
         new HashSet<ServiceComponentHostRequest>();
@@ -1236,19 +1235,19 @@ public class AmbariManagementControllerTest {
     Host h1 = clusters.getHost("h1");
     h1.setIPv4("ipv41");
     h1.setIPv6("ipv61");
-    h1.setOsType("centos6");
+    setOsFamily(h1, "redhat", "6.3");
     h1.persist();
     clusters.addHost("h2");
     Host h2 = clusters.getHost("h2");
     h2.setIPv4("ipv42");
     h2.setIPv6("ipv62");
-    h2.setOsType("centos6");
+    setOsFamily(h2, "redhat", "6.3");
     h2.persist();
     clusters.addHost("h3");
     Host h3 = clusters.getHost("h3");
     h3.setIPv4("ipv43");
     h3.setIPv6("ipv63");
-    h3.setOsType("centos6");
+    setOsFamily(h3, "redhat", "6.3");
     h3.persist();
 
     try {
@@ -1364,8 +1363,8 @@ public class AmbariManagementControllerTest {
 
     clusters.addHost("h1");
     clusters.addHost("h2");
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h2").setOsType("centos5");
+    setOsFamily(clusters.getHost("h1"), "redhat", "5.9");
+    setOsFamily(clusters.getHost("h2"), "redhat", "5.9");
     clusters.getHost("h1").persist();
     clusters.getHost("h2").persist();
 
@@ -1398,9 +1397,9 @@ public class AmbariManagementControllerTest {
     clusters.addHost("h3");
     clusters.addCluster("c1");
     clusters.getCluster("c1").setDesiredStackVersion(new StackId("HDP-0.1"));
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h2").setOsType("centos5");
-    clusters.getHost("h3").setOsType("centos5");
+    setOsFamily(clusters.getHost("h1"), "redhat", "5.9");
+    setOsFamily(clusters.getHost("h2"), "redhat", "5.9");
+    setOsFamily(clusters.getHost("h3"), "redhat", "5.9");
     clusters.getHost("h1").persist();
     clusters.getHost("h2").persist();
     clusters.getHost("h3").persist();
@@ -1426,8 +1425,8 @@ public class AmbariManagementControllerTest {
     Assert.assertEquals(1, clusters.getClustersForHost("h2").size());
     Assert.assertEquals(0, clusters.getClustersForHost("h3").size());
 
-    Assert.assertEquals(2, clusters.getHost("h2").getHostAttributes().size());
-    Assert.assertEquals(2, clusters.getHost("h3").getHostAttributes().size());
+    Assert.assertEquals(4, clusters.getHost("h2").getHostAttributes().size());
+    Assert.assertEquals(4, clusters.getHost("h3").getHostAttributes().size());
     Assert.assertEquals("val1",
         clusters.getHost("h2").getHostAttributes().get("attr1"));
     Assert.assertEquals("val2",
@@ -2308,18 +2307,10 @@ public class AmbariManagementControllerTest {
         State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     createServiceComponentHost(clusterName, serviceName, componentName1,
         host1, null);
@@ -2455,10 +2446,7 @@ public class AmbariManagementControllerTest {
     controller.createCluster(r);
     Cluster c1 = clusters.getCluster(clusterName);
     for (String host : hosts) {
-      clusters.addHost(host);
-      clusters.getHost(host).setOsType(osType);
-      clusters.getHost(host).persist();
-      clusters.mapHostToCluster(host, clusterName);
+      addHost(host, clusterName);
     }
     return c1;
   }
@@ -2635,7 +2623,7 @@ public class AmbariManagementControllerTest {
         }},
         "centos5");
     clusters.addHost("h4");
-    clusters.getHost("h4").setOsType("centos5");
+    setOsFamily(clusters.getHost("h4"), "redhat", "5.9");
     clusters.getHost("h4").persist();
 
     Map<String, String> attrs = new HashMap<String, String>();
@@ -2656,17 +2644,17 @@ public class AmbariManagementControllerTest {
       foundHosts.add(resp.getHostname());
       if (resp.getHostname().equals("h1")) {
         Assert.assertEquals("c1", resp.getClusterName());
-        Assert.assertEquals(0, resp.getHostAttributes().size());
+        Assert.assertEquals(2, resp.getHostAttributes().size());
       } else if (resp.getHostname().equals("h2")) {
         Assert.assertEquals("c1", resp.getClusterName());
-        Assert.assertEquals(0, resp.getHostAttributes().size());
+        Assert.assertEquals(2, resp.getHostAttributes().size());
       } else if (resp.getHostname().equals("h3")) {
         Assert.assertEquals("c2", resp.getClusterName());
-        Assert.assertEquals(1, resp.getHostAttributes().size());
+        Assert.assertEquals(3, resp.getHostAttributes().size());
       } else if (resp.getHostname().equals("h4")) {
         //todo: why wouldn't this be null?
         Assert.assertEquals("", resp.getClusterName());
-        Assert.assertEquals(2, resp.getHostAttributes().size());
+        Assert.assertEquals(4, resp.getHostAttributes().size());
       } else {
         fail("Found invalid host");
       }
@@ -2680,7 +2668,7 @@ public class AmbariManagementControllerTest {
     HostResponse resp = resps.iterator().next();
     Assert.assertEquals("h1", resp.getHostname());
     Assert.assertEquals("c1", resp.getClusterName());
-    Assert.assertEquals(0, resp.getHostAttributes().size());
+    Assert.assertEquals(2, resp.getHostAttributes().size());
 
   }
 
@@ -2840,17 +2828,9 @@ public class AmbariManagementControllerTest {
     createServiceComponent(clusterName, serviceName1, componentName4,
         State.INIT);
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos5");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     Set<ServiceComponentHostRequest> set1 =
         new HashSet<ServiceComponentHostRequest>();
@@ -3084,17 +3064,9 @@ public class AmbariManagementControllerTest {
     createServiceComponent(clusterName, serviceName1, componentName3,
         State.INIT);
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos5");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     Set<ServiceComponentHostRequest> set1 =
         new HashSet<ServiceComponentHostRequest>();
@@ -3282,17 +3254,9 @@ public class AmbariManagementControllerTest {
     createServiceComponent(clusterName, serviceName1, componentName3,
         State.INIT);
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos5");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
 
     Set<ServiceComponentHostRequest> set1 =
@@ -3458,17 +3422,9 @@ public class AmbariManagementControllerTest {
     createServiceComponent(clusterName, serviceName1, componentName2,
         State.INIT);
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos5");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     Set<ServiceComponentHostRequest> set1 =
         new HashSet<ServiceComponentHostRequest>();
@@ -3615,15 +3571,9 @@ public class AmbariManagementControllerTest {
     createServiceComponent(clusterName, serviceName1, componentName1,
         State.INIT);
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos5");
-    clusters.getHost("h2").persist();
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     Set<ServiceComponentHostRequest> set1 =
         new HashSet<ServiceComponentHostRequest>();
@@ -4572,18 +4522,10 @@ public class AmbariManagementControllerTest {
         State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
 
     createServiceComponentHost(clusterName, serviceName, componentName1,
@@ -4654,16 +4596,10 @@ public class AmbariManagementControllerTest {
             State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
 
     // null service should work
@@ -4860,16 +4796,10 @@ public class AmbariManagementControllerTest {
         State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
 
     // null service should work
@@ -5010,16 +4940,10 @@ public class AmbariManagementControllerTest {
       State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
 
     // null service should work
@@ -5184,22 +5108,10 @@ public class AmbariManagementControllerTest {
     String host1 = "h1";
     String host2 = "h2";
     String host3 = "h3";
-    clusters.addHost(host1);
-    clusters.addHost(host2);
-    clusters.addHost(host3);
-    clusters.getHost("h1").setOsType("centos6");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
-    clusters.getHost("h3").setOsType("centos6");
-    clusters.getHost("h3").setState(HostState.HEALTHY);
-    clusters.getHost("h3").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
-    clusters.mapHostToCluster(host3, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
+    addHost(host3, clusterName);
 
     createServiceComponentHost(clusterName, serviceName1, componentName1,
       host1, null);
@@ -5352,18 +5264,10 @@ public class AmbariManagementControllerTest {
       State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     createServiceComponentHost(clusterName, serviceName, componentName1,
       host1, null);
@@ -5444,18 +5348,10 @@ public class AmbariManagementControllerTest {
         State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
-
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     Map<String, String> mapRequestProps = new HashMap<String, String>();
     mapRequestProps.put("context", "Called from a test");
@@ -5548,24 +5444,12 @@ public class AmbariManagementControllerTest {
         State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
     String host3 = "h3";
-    clusters.addHost(host3);
-    clusters.getHost("h3").setOsType("centos6");
-    clusters.getHost("h3").setState(HostState.HEALTHY);
-    clusters.getHost("h3").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
-    clusters.mapHostToCluster(host3, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
+    addHost(host3, clusterName);
 
     createServiceComponentHost(clusterName, serviceName, componentName1,
         host1, null);
@@ -5698,24 +5582,12 @@ public class AmbariManagementControllerTest {
         State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
     String host3 = "h3";
-    clusters.addHost(host3);
-    clusters.getHost("h3").setOsType("centos6");
-    clusters.getHost("h3").setState(HostState.HEALTHY);
-    clusters.getHost("h3").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
-    clusters.mapHostToCluster(host3, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
+    addHost(host3, clusterName);
 
     createServiceComponentHost(clusterName, serviceName, componentName1,
         host1, null);
@@ -5815,24 +5687,12 @@ public class AmbariManagementControllerTest {
       State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
     String host3 = "h3";
-    clusters.addHost(host3);
-    clusters.getHost("h3").setOsType("centos6");
-    clusters.getHost("h3").setState(HostState.HEALTHY);
-    clusters.getHost("h3").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
-    clusters.mapHostToCluster(host3, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
+    addHost(host3, clusterName);
 
     createServiceComponentHost(clusterName, serviceName, componentName1,
       host1, null);
@@ -5892,24 +5752,12 @@ public class AmbariManagementControllerTest {
       State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
     String host3 = "h3";
-    clusters.addHost(host3);
-    clusters.getHost("h3").setOsType("centos6");
-    clusters.getHost("h3").setState(HostState.HEALTHY);
-    clusters.getHost("h3").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
-    clusters.mapHostToCluster(host3, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
+    addHost(host3, clusterName);
 
     createServiceComponentHost(clusterName, serviceName, componentName1,
       host1, null);
@@ -5962,18 +5810,10 @@ public class AmbariManagementControllerTest {
       State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos6");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     createServiceComponentHost(clusterName, serviceName, componentName,
       host1, null);
@@ -6030,16 +5870,8 @@ public class AmbariManagementControllerTest {
 
     String host1 = "h1";
     String host2 = "h2";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos5");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     createServiceComponentHost(clusterName, serviceName, componentName1,
       host1, null);
@@ -6106,18 +5938,10 @@ public class AmbariManagementControllerTest {
       State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     createServiceComponentHost(clusterName, serviceName, componentName1,
       host1, null);
@@ -6495,18 +6319,10 @@ public class AmbariManagementControllerTest {
       State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
 
     // null service should work
@@ -6578,18 +6394,10 @@ public class AmbariManagementControllerTest {
       State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
 
     // null service should work
@@ -6659,18 +6467,10 @@ public class AmbariManagementControllerTest {
       State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
-
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     Map<String, String> mapRequestProps = new HashMap<String, String>();
     mapRequestProps.put("context", "Called from a test");
@@ -6729,24 +6529,12 @@ public class AmbariManagementControllerTest {
       State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
     String host3 = "h3";
-    clusters.addHost(host3);
-    clusters.getHost("h3").setOsType("centos6");
-    clusters.getHost("h3").setState(HostState.HEALTHY);
-    clusters.getHost("h3").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
-    clusters.mapHostToCluster(host3, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
+    addHost(host3, clusterName);
 
     createServiceComponentHost(clusterName, serviceName1, componentName1,
       host1, null);
@@ -6903,18 +6691,10 @@ public class AmbariManagementControllerTest {
         State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     createServiceComponentHost(clusterName, serviceName, componentName1,
         host1, null);
@@ -7018,18 +6798,10 @@ public class AmbariManagementControllerTest {
       State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     // null service should work
     createServiceComponentHost(clusterName, null, componentName1,
@@ -7328,18 +7100,8 @@ public class AmbariManagementControllerTest {
     createService(clusterName, serviceName, State.INIT);
     createServiceComponent(clusterName, serviceName, componentName, null);
 
-    clusters.addHost(host1);
-    clusters.getHost(host1).persist();
-    clusters.addHost(host2);
-    clusters.getHost(host2).persist();
-
-    clusters.getHost(host1).setOsType("centos5");
-    clusters.getHost(host2).setOsType("centos6");
-    clusters.getHost(host1).setState(HostState.HEALTHY);
-    clusters.getHost(host2).setState(HostState.HEALTHY);
-
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     createServiceComponentHost(clusterName, null, componentName,
         host1, null);
@@ -7515,17 +7277,8 @@ public class AmbariManagementControllerTest {
     createService(clusterName, pigServiceName, State.INIT);
     createServiceComponent(clusterName, pigServiceName, pigComponentName, null);
 
-    clusters.addHost(host1);
-    clusters.getHost(host1).setState(HostState.HEALTHY);
-    clusters.getHost(host1).persist();
-    clusters.addHost(host2);
-    clusters.getHost(host2).setState(HostState.HEALTHY);
-    clusters.getHost(host2).persist();
-
-    clusters.getHost(host1).setOsType("centos5");
-    clusters.getHost(host2).setOsType("centos6");
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     createServiceComponentHost(clusterName, null, pigComponentName,
         host1, null);
@@ -7800,16 +7553,10 @@ public class AmbariManagementControllerTest {
       State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     Map<String, String> mapRequestProps = new HashMap<String, String>();
     mapRequestProps.put("context", "Called from a test");
@@ -7939,7 +7686,7 @@ public class AmbariManagementControllerTest {
     clusters.addCluster(clusterName);
     clusters.getCluster(clusterName).setDesiredStackVersion(new StackId("HDP-0.1"));
     clusters.addHost(hostName1);
-    clusters.getHost("h1").setOsType("centos5");
+    setOsFamily(clusters.getHost("h1"), "redhat", "5.9");
     clusters.getHost(hostName1).persist();
 
     clusters.mapHostsToCluster(new HashSet<String>(){
@@ -8071,16 +7818,10 @@ public class AmbariManagementControllerTest {
       State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
-    clusters.getHost("h2").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     Map<String, String> mapRequestProps = new HashMap<String, String>();
     mapRequestProps.put("context", "Called from a test");
@@ -8164,10 +7905,7 @@ public class AmbariManagementControllerTest {
     createServiceComponent(clusterName, serviceName1, componentName2, State.INIT);
     createServiceComponent(clusterName, serviceName1, componentName3, State.INIT);
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").persist();
-    clusters.mapHostToCluster(host1, clusterName);
+    addHost(host1, clusterName);
 
     Set<ServiceComponentHostRequest> set1 =  new HashSet<ServiceComponentHostRequest>();
     ServiceComponentHostRequest r1 = new ServiceComponentHostRequest(clusterName, serviceName1,
@@ -8366,12 +8104,8 @@ public class AmbariManagementControllerTest {
     createServiceComponent(clusterName, mapred, componentName6, State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
+    addHost(host1, clusterName);
 
     createServiceComponentHost(clusterName, serviceName, componentName1, host1, null);
     createServiceComponentHost(clusterName, serviceName, componentName2, host1, null);
@@ -8446,18 +8180,15 @@ public class AmbariManagementControllerTest {
     createServiceComponent(clusterName, serviceName, componentName3, State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").persist();
 
     String host2 = "h2";
     clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
+    setOsFamily(clusters.getHost("h2"), "redhat", "6.3");
     clusters.getHost("h2").persist();
 
     String host3 = "h3";
 
-    clusters.mapHostToCluster(host1, clusterName);
+    addHost(host1, clusterName);
 
     createServiceComponentHost(clusterName, null, componentName1, host1, null);
     createServiceComponentHost(clusterName, serviceName, componentName2, host1, null);
@@ -8628,11 +8359,8 @@ public class AmbariManagementControllerTest {
     createServiceComponent(clusterName, serviceName, componentName3, State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").persist();
 
-    clusters.mapHostToCluster(host1, clusterName);
+    addHost(host1, clusterName);
 
     createServiceComponentHost(clusterName, null, componentName1, host1, null);
     createServiceComponentHost(clusterName, serviceName, componentName2, host1, null);
@@ -8759,13 +8487,13 @@ public class AmbariManagementControllerTest {
         clusters.addHost("host2");
         clusters.addHost("host3");
         Host host = clusters.getHost("host1");
-        host.setOsType("centos6");
+        setOsFamily(host, "redhat", "6.3");
         host.persist();
         host = clusters.getHost("host2");
-        host.setOsType("centos6");
+        setOsFamily(host, "redhat", "6.3");
         host.persist();
         host = clusters.getHost("host3");
-        host.setOsType("centos6");
+        setOsFamily(host, "redhat", "6.3");
         host.persist();
 
         ClusterRequest clusterRequest = new ClusterRequest(null, "c1", "HDP-1.2.0", null);
@@ -8832,12 +8560,12 @@ public class AmbariManagementControllerTest {
 
       clusters.addHost(HOST1);
       Host host = clusters.getHost(HOST1);
-      host.setOsType("centos6");
+      setOsFamily(host, "redhat", "6.3");
       host.persist();
 
       clusters.addHost(HOST2);
       host = clusters.getHost(HOST2);
-      host.setOsType("centos6");
+      setOsFamily(host, "redhat", "6.3");
       host.persist();
 
       AmbariManagementController amc = injector.getInstance(AmbariManagementController.class);
@@ -8938,13 +8666,13 @@ public class AmbariManagementControllerTest {
       clusters.addHost("host2");
       clusters.addHost("host3");
       Host host = clusters.getHost("host1");
-      host.setOsType("centos5");
+      setOsFamily(host, "redhat", "5.9");
       host.persist();
       host = clusters.getHost("host2");
-      host.setOsType("centos5");
+      setOsFamily(host, "redhat", "5.9");
       host.persist();
       host = clusters.getHost("host3");
-      host.setOsType("centos5");
+      setOsFamily(host, "redhat", "5.9");
       host.persist();
 
       ClusterRequest clusterRequest = new ClusterRequest(null, "c1", "HDP-1.2.0", null);
@@ -9260,7 +8988,7 @@ public class AmbariManagementControllerTest {
 
       clusters.addHost(HOST1);
       Host host = clusters.getHost(HOST1);
-      host.setOsType(OS_TYPE);
+      setOsFamily(host, "redhat", "5.9");
       host.persist();
 
       ClusterRequest clusterRequest = new ClusterRequest(null, CLUSTER_NAME, STACK_ID, null);
@@ -9642,18 +9370,10 @@ public class AmbariManagementControllerTest {
         State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos5");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
     
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     createServiceComponentHost(clusterName, serviceName, componentName1, host1, null);
     createServiceComponentHost(clusterName, serviceName, componentName2, host1, null);
@@ -9881,18 +9601,10 @@ public class AmbariManagementControllerTest {
     
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
-    clusters.getHost("h1").setState(HostState.HEALTHY);
-    clusters.getHost("h1").persist();
     String host2 = "h2";
-    clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos5");
-    clusters.getHost("h2").setState(HostState.HEALTHY);
-    clusters.getHost("h2").persist();
     
-    clusters.mapHostToCluster(host1, clusterName);
-    clusters.mapHostToCluster(host2, clusterName);
+    addHost(host1, clusterName);
+    addHost(host2, clusterName);
 
     createServiceComponentHost(clusterName, serviceName1, componentName1_1, host1, null);
     createServiceComponentHost(clusterName, serviceName1, componentName1_2, host1, null);

+ 17 - 5
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java

@@ -143,12 +143,18 @@ public class JMXHostProviderTest {
       State.INIT);
 
     String host1 = "h1";
-    clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
+    clusters.addHost(host1);  
+    Map<String, String> hostAttributes = new HashMap<String, String>();
+    hostAttributes.put("os_family", "redhat");
+    hostAttributes.put("os_release_version", "5.9");
+    clusters.getHost("h1").setHostAttributes(hostAttributes);
     clusters.getHost("h1").persist();
     String host2 = "h2";
     clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
+    hostAttributes = new HashMap<String, String>();
+    hostAttributes.put("os_family", "redhat");
+    hostAttributes.put("os_release_version", "6.3");
+    clusters.getHost("h2").setHostAttributes(hostAttributes);
     clusters.getHost("h2").persist();
     clusters.mapHostToCluster(host1, clusterName);
     clusters.mapHostToCluster(host2, clusterName);
@@ -216,11 +222,17 @@ public class JMXHostProviderTest {
 
     String host1 = "h1";
     clusters.addHost(host1);
-    clusters.getHost("h1").setOsType("centos5");
+    Map<String, String> hostAttributes = new HashMap<String, String>();
+    hostAttributes.put("os_family", "redhat");
+    hostAttributes.put("os_release_version", "5.9");
+    clusters.getHost("h1").setHostAttributes(hostAttributes);
     clusters.getHost("h1").persist();
     String host2 = "h2";
     clusters.addHost(host2);
-    clusters.getHost("h2").setOsType("centos6");
+    hostAttributes = new HashMap<String, String>();
+    hostAttributes.put("os_family", "redhat");
+    hostAttributes.put("os_release_version", "6.3");
+    clusters.getHost("h2").setHostAttributes(hostAttributes);
     clusters.getHost("h2").persist();
     clusters.mapHostToCluster(host1, clusterName);
     clusters.mapHostToCluster(host2, clusterName);

+ 4 - 1
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackDefinedPropertyProviderTest.java

@@ -87,7 +87,10 @@ public class StackDefinedPropertyProviderTest {
     
     clusters.addHost("h1");
     Host host = clusters.getHost("h1");
-    host.setOsType("centos5");
+    Map<String, String> hostAttributes = new HashMap<String, String>();
+    hostAttributes.put("os_family", "redhat");
+    hostAttributes.put("os_release_version", "6.3");
+    host.setHostAttributes(hostAttributes);
     host.persist();
     
     clusters.mapHostToCluster("h1", "c1");

+ 7 - 1
ambari-server/src/test/java/org/apache/ambari/server/state/ServiceComponentTest.java

@@ -169,7 +169,13 @@ public class ServiceComponentTest {
     Host h = clusters.getHost(hostname);
     h.setIPv4(hostname + "ipv4");
     h.setIPv6(hostname + "ipv6");
-    h.setOsType("centos6");
+    
+    Map<String, String> hostAttributes = new HashMap<String, String>();
+	hostAttributes.put("os_family", "redhat");
+	hostAttributes.put("os_release_version", "6.3");
+	h.setHostAttributes(hostAttributes);
+
+    
     h.persist();
     clusters.mapHostToCluster(hostname, clusterName);
   }

+ 6 - 1
ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterTest.java

@@ -95,7 +95,12 @@ public class ClusterTest {
     Host host = clusters.getHost("h1");
     host.setIPv4("ipv4");
     host.setIPv6("ipv6");
-    host.setOsType("centos5");
+    
+    Map<String, String> hostAttributes = new HashMap<String, String>();
+    hostAttributes.put("os_family", "redhat");
+    hostAttributes.put("os_release_version", "5.9");
+    host.setHostAttributes(hostAttributes);
+    
     host.persist();
     c1.setDesiredStackVersion(new StackId("HDP-0.1"));
     clusters.mapHostToCluster("h1", "c1");

+ 16 - 8
ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClustersTest.java

@@ -85,6 +85,14 @@ public class ClustersTest {
   public void teardown() {
     injector.getInstance(PersistService.class).stop();
   }
+  
+  private void setOsFamily(Host host, String osFamily, String osVersion) {
+	    Map<String, String> hostAttributes = new HashMap<String, String>();
+	    hostAttributes.put("os_family", osFamily);
+	    hostAttributes.put("os_release_version", osVersion);
+	    
+	    host.setHostAttributes(hostAttributes);
+  }
 
   @Test
   public void testGetInvalidCluster() throws AmbariException {
@@ -219,9 +227,9 @@ public class ClustersTest {
     clusters.addHost(h2);
     clusters.addHost(h3);
     Assert.assertNotNull(clusters.getHost(h1));
-    clusters.getHost(h1).setOsType("redhat6");
-    clusters.getHost(h2).setOsType("centos5");
-    clusters.getHost(h3).setOsType("centos6");
+    setOsFamily(clusters.getHost(h1), "redhat", "6.4");
+    setOsFamily(clusters.getHost(h2), "redhat", "5.9");
+    setOsFamily(clusters.getHost(h3), "redhat", "6.4");
     clusters.getHost(h1).persist();
     clusters.getHost(h2).persist();
     clusters.getHost(h3).persist();
@@ -281,9 +289,9 @@ public class ClustersTest {
     clusters.addHost(h1);
     clusters.addHost(h2);
     clusters.addHost(h3);
-    clusters.getHost(h1).setOsType("redhat6");
-    clusters.getHost(h2).setOsType("centos5");
-    clusters.getHost(h3).setOsType("centos6");
+    setOsFamily(clusters.getHost(h1), "redhat", "6.4");
+    setOsFamily(clusters.getHost(h2), "redhat", "5.9");
+    setOsFamily(clusters.getHost(h3), "redhat", "6.4");
     clusters.getHost(h1).persist();
     clusters.getHost(h2).persist();
     clusters.getHost(h3).persist();
@@ -328,9 +336,9 @@ public class ClustersTest {
     clusters.addHost(h2);
 
     Host host1 = clusters.getHost(h1);
-    host1.setOsType("centos5");
     Host host2 = clusters.getHost(h2);
-    host2.setOsType("centos5");
+    setOsFamily(clusters.getHost(h1), "centos", "5.9");
+    setOsFamily(clusters.getHost(h2), "centos", "5.9");
     host1.persist();
     host2.persist();
 

+ 12 - 2
ambari-server/src/test/java/org/apache/ambari/server/state/host/HostTest.java

@@ -364,7 +364,12 @@ public class HostTest {
     Host host = clusters.getHost("h1");
     host.setIPv4("ipv4");
     host.setIPv6("ipv6");
-    host.setOsType("centos5");
+    
+    Map<String, String> hostAttributes = new HashMap<String, String>();
+    hostAttributes.put("os_family", "redhat");
+    hostAttributes.put("os_release_version", "6.3");
+    host.setHostAttributes(hostAttributes);
+    
     host.persist();
     c1.setDesiredStackVersion(new StackId("HDP-0.1"));
     clusters.mapHostToCluster("h1", "c1");
@@ -426,7 +431,12 @@ public class HostTest {
     Host host = clusters.getHost("h1");
     host.setIPv4("ipv4");
     host.setIPv6("ipv6");
-    host.setOsType("centos5");
+    
+    Map<String, String> hostAttributes = new HashMap<String, String>();
+    hostAttributes.put("os_family", "redhat");
+    hostAttributes.put("os_release_version", "6.3");
+    host.setHostAttributes(hostAttributes);
+    
     host.persist();
     c1.setDesiredStackVersion(new StackId("HDP-0.1"));
     clusters.mapHostToCluster("h1", "c1");

+ 11 - 3
ambari-server/src/test/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostTest.java

@@ -95,13 +95,21 @@ public class ServiceComponentHostTest {
     injector.injectMembers(this);
     clusters.addCluster("C1");
     clusters.addHost("h1");
-    clusters.getHost("h1").setOsType("centos5");
+    setOsFamily(clusters.getHost("h1"), "redhat", "5.9");
     clusters.getHost("h1").persist();
     clusters.getCluster("C1").setDesiredStackVersion(
         new StackId("HDP-0.1"));
     metaInfo.init();
     clusters.mapHostToCluster("h1","C1");
   }
+  
+  private void setOsFamily(Host host, String osFamily, String osVersion) {
+    Map<String, String> hostAttributes = new HashMap<String, String>();
+    hostAttributes.put("os_family", osFamily);
+    hostAttributes.put("os_release_version", osVersion);
+    
+    host.setHostAttributes(hostAttributes);
+  }
 
   @After
   public void teardown() {
@@ -628,7 +636,7 @@ public class ServiceComponentHostTest {
     
     clusters.addCluster(clusterName);
     clusters.addHost(hostName);
-    clusters.getHost(hostName).setOsType("centos5");
+    setOsFamily(clusters.getHost(hostName), "redhat", "5.9");
     clusters.getHost(hostName).persist();
     clusters.getCluster(clusterName).setDesiredStackVersion(
         new StackId(stackVersion));
@@ -830,7 +838,7 @@ public class ServiceComponentHostTest {
     
     clusters.addCluster(clusterName);
     clusters.addHost(hostName);
-    clusters.getHost(hostName).setOsType("centos5");
+    setOsFamily(clusters.getHost(hostName), "redhat", "5.9");
     clusters.getHost(hostName).persist();
     clusters.getCluster(clusterName).setDesiredStackVersion(
         new StackId(stackVersion));

+ 6 - 1
ambari-server/src/test/java/org/apache/ambari/server/utils/TestStageUtils.java

@@ -182,7 +182,12 @@ public class TestStageUtils {
     
     for (String host: hostList) {
       fsm.addHost(host);
-      fsm.getHost(host).setOsType("centos5");
+      
+      Map<String, String> hostAttributes = new HashMap<String, String>();
+      hostAttributes.put("os_family", "redhat");
+      hostAttributes.put("os_release_version", "5.9");
+      fsm.getHost(host).setHostAttributes(hostAttributes);
+      
       fsm.getHost(host).setCurrentPingPort(pingPorts.get(index));
       fsm.getHost(host).persist();
       fsm.mapHostToCluster(host, "c1");

+ 1 - 1
ambari-server/src/test/resources/stacks/HDP/0.1/repos/repoinfo.xml

@@ -35,7 +35,7 @@
       <mirrorslist><![CDATA[https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch]]></mirrorslist>
     </repo>
   </os>
-  <os type="centos5">
+  <os type="centos5, redhat5">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP-1.1.1.16/repos/centos5</baseurl>
       <repoid>HDP-1.1.1.16</repoid>

+ 1 - 1
ambari-server/src/test/resources/stacks/HDP/0.2/repos/repoinfo.xml

@@ -16,7 +16,7 @@
    limitations under the License.
 -->
 <reposinfo>
-  <os type="centos6">
+  <os type="redhat6">
     <repo>
       <baseurl>http://public-repo-1.hortonworks.com/HDP-1.1.1.16/repos/centos6</baseurl>
       <repoid>HDP-1.1.1.16</repoid>

+ 3 - 3
ambari-server/src/test/resources/stacks/HDP/1.3.4/services/GANGLIA/metainfo.xml

@@ -50,7 +50,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -83,7 +83,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>suse</osType>
+          <osFamily>suse</osFamily>
           <package>
             <type>rpm</type>
             <name>apache2</name>
@@ -94,7 +94,7 @@
           </package>
         </osSpecific>
         <osSpecific>
-          <osType>centos6</osType>
+          <osFamily>centos6</osFamily>
           <package>
             <type>rpm</type>
             <name>httpd</name>

+ 1 - 1
ambari-server/src/test/resources/stacks/HDP/1.3.4/services/HBASE/metainfo.xml

@@ -96,7 +96,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>centos6</osType>
+          <osFamily>centos6</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/test/resources/stacks/HDP/1.3.4/services/HDFS/metainfo.xml

@@ -80,7 +80,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 5 - 5
ambari-server/src/test/resources/stacks/HDP/1.3.4/services/HIVE/metainfo.xml

@@ -88,7 +88,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -105,7 +105,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>centos6</osType>
+          <osFamily>centos6</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -114,7 +114,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>centos5</osType>
+          <osFamily>centos5</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -123,7 +123,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>suse</osType>
+          <osFamily>suse</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -161,7 +161,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 5 - 5
ambari-server/src/test/resources/stacks/HDP/1.3.4/services/NAGIOS/metainfo.xml

@@ -36,7 +36,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -73,28 +73,28 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>suse</osType>
+          <osFamily>suse</osFamily>
           <package>
             <type>rpm</type>
             <name>php5-json</name>
           </package>
         </osSpecific>
         <osSpecific>
-          <osType>centos5</osType>
+          <osFamily>centos5</osFamily>
           <package>
             <type>rpm</type>
             <name>php-pecl-json.x86_64</name>
           </package>
         </osSpecific>
         <osSpecific>
-          <osType>redhat5</osType>
+          <osFamily>redhat5</osFamily>
           <package>
             <type>rpm</type>
             <name>php-pecl-json.x86_64</name>
           </package>
         </osSpecific>
         <osSpecific>
-          <osType>oraclelinux5</osType>
+          <osFamily>oraclelinux5</osFamily>
           <package>
             <type>rpm</type>
             <name>php-pecl-json.x86_64</name>

+ 1 - 1
ambari-server/src/test/resources/stacks/HDP/1.3.4/services/OOZIE/metainfo.xml

@@ -80,7 +80,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/test/resources/stacks/HDP/1.3.4/services/PIG/metainfo.xml

@@ -36,7 +36,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>centos6</osType>
+          <osFamily>centos6</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/test/resources/stacks/HDP/1.3.4/services/SQOOP/metainfo.xml

@@ -54,7 +54,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/test/resources/stacks/HDP/1.3.4/services/WEBHCAT/metainfo.xml

@@ -67,7 +67,7 @@
       </components>
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/test/resources/stacks/HDP/1.3.4/services/ZOOKEEPER/metainfo.xml

@@ -48,7 +48,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 2 - 2
ambari-server/src/test/resources/stacks/HDP/2.0.7/services/HBASE/metainfo.xml

@@ -75,7 +75,7 @@
       repo info can be added here as well-->
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType> <!-- Specifics, common for all OSs-->
+          <osFamily>any</osFamily> <!-- Specifics, common for all OSs-->
           <packages>
             <package>
               <type>rpm</type>
@@ -84,7 +84,7 @@
           </packages>
         </osSpecific>
         <osSpecific>
-          <osType>centos6</osType>
+          <osFamily>centos6</osFamily>
           <repo>
             <baseurl>http://something.com/centos6/2.x/updates/1</baseurl>
             <repoid>Custom-repo-1</repoid>

+ 1 - 1
ambari-server/src/test/resources/stacks/HDP/2.0.7/services/HDFS/metainfo.xml

@@ -105,7 +105,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 2 - 2
ambari-server/src/test/resources/stacks/HDP/2.0.7/services/YARN/metainfo.xml

@@ -67,7 +67,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>
@@ -137,7 +137,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/test/resources/stacks/HDP/2.0.8/services/HDFS/metainfo.xml

@@ -105,7 +105,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-server/src/test/resources/stacks/HDP/2.1.1/services/STORM/metainfo.xml

@@ -80,7 +80,7 @@
 
       <osSpecifics>
         <osSpecific>
-          <osType>any</osType>
+          <osFamily>any</osFamily>
           <packages>
             <package>
               <type>rpm</type>

+ 1 - 1
ambari-web/app/controllers/installer.js

@@ -280,7 +280,7 @@ App.InstallerController = App.WizardController.extend({
               if(repo.Repositories.repo_name == version.Versions.stack_name) {
                 var defaultBaseUrl = repo.Repositories.default_base_url || repo.Repositories.base_url;
                 var latestBaseUrl = repo.Repositories.latest_base_url || defaultBaseUrl;
-                if (!App.supports.ubuntu && os.OperatingSystems.os_type == 'ubuntu12') return; // @todo: remove after Ubuntu support confirmation
+                if (!App.supports.ubuntu && os.OperatingSystems.os_type == 'debian12') return; // @todo: remove after Ubuntu support confirmation
                 oses.push({
                   osType: os.OperatingSystems.os_type,
                   baseUrl: latestBaseUrl,

+ 8 - 33
ambari-web/app/views/wizard/step1_view.js

@@ -184,39 +184,19 @@ App.WizardStep1View = Em.View.extend({
             // set group 0 properties by redhat5 (any of the three is ok)
             self.setGroupByOs(reposGroup[0], os, 0);
             break;
-          case 'centos5':
-            cur_repo.set('osType', 'CentOS 5');
-            reposGroup[0][1] = cur_repo;
-            break;
-          case 'oraclelinux5':
-            cur_repo.set('osType', 'Oracle Linux 5');
-            reposGroup[0][2] = cur_repo;
-            break;
           case 'redhat6':
             cur_repo.set('osType', 'Red Hat 6');
             reposGroup[1][0] = cur_repo;
             // set group 1 properties by redhat6 (any of the three is ok)
             self.setGroupByOs(reposGroup[1], os, 1);
             break;
-          case 'centos6':
-            cur_repo.set('osType', 'CentOS 6');
-            reposGroup[1][1] = cur_repo;
-            break;
-          case 'oraclelinux6':
-            cur_repo.set('osType', 'Oracle Linux 6');
-            reposGroup[1][2] = cur_repo;
-            break;
-          case 'sles11':
+          case 'suse11':
             cur_repo.set('osType', 'SLES 11');
             reposGroup[2][0] = cur_repo;
-            // set group 2 properties by sles11 (any of the twe is ok)
+            // set group 2 properties by suse11 (any of the twe is ok)
             self.setGroupByOs(reposGroup[2], os, 2);
             break;
-          case 'suse11':
-            cur_repo.set('osType', 'SUSE 11');
-            reposGroup[2][1] = cur_repo;
-            break;
-          case 'ubuntu12':
+          case 'debian12':
             if (App.get('supports.ubuntu')) {
               cur_repo.set('osType', 'Ubuntu 12');
               reposGroup[3][0] = cur_repo;
@@ -361,10 +341,10 @@ App.WizardStep1View = Em.View.extend({
    */
   groupToOsType: function (groupNumber) {
     return Em.getWithDefault({
-      '0': ['redhat5', 'centos5', 'oraclelinux5'],
-      '1': ['redhat6', 'centos6', 'oraclelinux6'],
-      '2': ['sles11', 'suse11'],
-      '3': ['ubuntu12']
+      '0': ['redhat5'],
+      '1': ['redhat6'],
+      '2': ['suse11'],
+      '3': ['debian12']
     }, groupNumber.toString(), []);
   },
 
@@ -377,14 +357,9 @@ App.WizardStep1View = Em.View.extend({
   osTypeToGroup: function (osType) {
     return Em.getWithDefault({
       'redhat5': 0,
-      'centos5': 0,
-      'oraclelinux5': 0,
       'redhat6': 1,
-      'centos6': 1,
-      'oraclelinux6': 1,
-      'sles11': 2,
       'suse11': 2,
-      'ubuntu12': 3
+      'debian12': 3
     }, osType, -1);
   }