You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by vb...@apache.org on 2014/04/25 15:57:46 UTC

git commit: AMBARI-5570. MySQL Server install failed during deployment, suse11.(vbrodetskyi)

Repository: ambari
Updated Branches:
  refs/heads/trunk fb57e05a5 -> 7c277169f


AMBARI-5570. MySQL Server install failed during deployment, suse11.(vbrodetskyi)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7c277169
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7c277169
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7c277169

Branch: refs/heads/trunk
Commit: 7c277169fe158222f1856e931a3a0a030dd0b318
Parents: fb57e05
Author: Vitaly Brodetskyi <vb...@hortonworks.com>
Authored: Fri Apr 25 16:57:30 2014 +0300
Committer: Vitaly Brodetskyi <vb...@hortonworks.com>
Committed: Fri Apr 25 16:57:30 2014 +0300

----------------------------------------------------------------------
 .../AmbariManagementControllerImpl.java         | 20 +++++++++++++++++---
 .../apache/ambari/server/state/ServiceInfo.java |  6 +-----
 .../ambari/server/state/ServiceOsSpecific.java  | 10 ++++++++++
 3 files changed, 28 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/7c277169/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
index 978ffaf..de3db69 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
@@ -1307,9 +1307,13 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle
     if (serviceInfo.getOsSpecifics().containsKey(AmbariMetaInfo.ANY_OS)) {
       anyOs = serviceInfo.getOsSpecifics().get(AmbariMetaInfo.ANY_OS);
     }
-    ServiceOsSpecific hostOs = null;
-    if (serviceInfo.getOsSpecifics().containsKey(osFamily)) {
-      hostOs = serviceInfo.getOsSpecifics().get(osFamily);
+    ServiceOsSpecific hostOs = new ServiceOsSpecific(osFamily);
+    List<ServiceOsSpecific> foundedOSSpecifics = getOSSpecificsByFamily(serviceInfo.getOsSpecifics(), osFamily);
+    if (!foundedOSSpecifics.isEmpty()) {
+      for (ServiceOsSpecific osSpecific : foundedOSSpecifics) {
+        hostOs.addPackages(osSpecific.getPackages());
+      }
+      serviceInfo.getOsSpecifics().get(osFamily);
       // Choose repo that is relevant for host
       ServiceOsSpecific.Repo serviceRepo = hostOs.getRepo();
       if (serviceRepo != null) {
@@ -1349,6 +1353,16 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle
     }
   }
 
+  private List<ServiceOsSpecific> getOSSpecificsByFamily(Map<String, ServiceOsSpecific> osSpecifics, String osFamily) {
+    List<ServiceOsSpecific> foundedOSSpecifics = new ArrayList<ServiceOsSpecific>();
+    for (Entry<String, ServiceOsSpecific> osSpecific : osSpecifics.entrySet()) {
+      if (osSpecific.getKey().indexOf(osFamily) != -1) {
+        foundedOSSpecifics.add(osSpecific.getValue());
+      }
+    }
+    return foundedOSSpecifics;
+  }
+
   private ActionExecutionContext getActionExecutionContext
       (ExecuteActionRequest actionRequest) throws AmbariException {
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/7c277169/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceInfo.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceInfo.java
index 6020481..8710fec 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceInfo.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceInfo.java
@@ -66,8 +66,6 @@ public class ServiceInfo {
   private File metricsFile = null;
   @XmlTransient
   private Map<String, Map<String, List<MetricDefinition>>> metrics = null;
-  
-  private static final String OS_SEPARATOR = ",";
 
 
   /**
@@ -316,9 +314,7 @@ public class ServiceInfo {
                   new TreeMap<String, ServiceOsSpecific>();
           if (serviceOsSpecifics != null) {
             for (ServiceOsSpecific osSpecific : serviceOsSpecifics) {
-              for(String osFamily:osSpecific.getOsFamily().split(OS_SEPARATOR)) {
-                tmpMap.put(osFamily.trim(), osSpecific);
-              }
+              tmpMap.put(osSpecific.getOsFamily(), osSpecific);
             }
           }
           serviceOsSpecificsMap = tmpMap;

http://git-wip-us.apache.org/repos/asf/ambari/blob/7c277169/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceOsSpecific.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceOsSpecific.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceOsSpecific.java
index aebf9e7..e317ece 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceOsSpecific.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceOsSpecific.java
@@ -32,6 +32,12 @@ public class ServiceOsSpecific {
   private String osFamily;
   private Repo repo;
 
+  public ServiceOsSpecific() {
+  }
+
+  public ServiceOsSpecific(String osFamily) {
+    this.osFamily = osFamily;
+  }
 
   @XmlElementWrapper(name="packages")
   @XmlElements(@XmlElement(name="package"))
@@ -52,6 +58,10 @@ public class ServiceOsSpecific {
     return packages;
   }
 
+  public void addPackages(List<Package> packages) {
+    this.packages.addAll(packages);
+  }
+
   /**
    * The <code>repo</code> tag. It has different set of fields compared to
    * <link>org.apache.ambari.server.state.RepositoryInfo</link>,