You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ao...@apache.org on 2015/03/23 17:00:09 UTC

ambari git commit: AMBARI-10180. Repo validation doesn't pass on debian7 (aonishuk)

Repository: ambari
Updated Branches:
  refs/heads/trunk 7ed1d2e37 -> 10e61fff7


AMBARI-10180. Repo validation doesn't pass on debian7 (aonishuk)


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

Branch: refs/heads/trunk
Commit: 10e61fff798a050ef25bbcc68d71f54d35dac350
Parents: 7ed1d2e
Author: Andrew Onishuk <ao...@hortonworks.com>
Authored: Mon Mar 23 18:00:03 2015 +0200
Committer: Andrew Onishuk <ao...@hortonworks.com>
Committed: Mon Mar 23 18:00:03 2015 +0200

----------------------------------------------------------------------
 .../server/configuration/Configuration.java     | 12 ++++++++----
 .../server/state/stack/LatestRepoCallable.java  |  4 +++-
 .../ambari/server/state/stack/OsFamily.java     | 20 +++++++++++++++++++-
 .../apache/ambari/server/view/ViewRegistry.java |  5 ++++-
 .../resources/stacks/HDP/2.3/repos/repoinfo.xml | 12 ++++++++++++
 5 files changed, 46 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/10e61fff/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java b/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
index cfdcb95..c3ad685 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
@@ -33,6 +33,7 @@ import org.apache.ambari.server.orm.PersistenceType;
 import org.apache.ambari.server.security.ClientSecurityType;
 import org.apache.ambari.server.security.authorization.LdapServerProperties;
 import org.apache.ambari.server.security.encryption.CredentialProvider;
+import org.apache.ambari.server.state.stack.OsFamily;
 import org.apache.ambari.server.utils.ShellCommandUtil;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang.RandomStringUtils;
@@ -40,6 +41,7 @@ import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.inject.Inject;
 import com.google.inject.Singleton;
 
 
@@ -49,6 +51,9 @@ import com.google.inject.Singleton;
  */
 @Singleton
 public class Configuration {
+  
+  @Inject
+  private OsFamily osFamily;
 
   public static final String CONFIG_FILE = "ambari.properties";
   public static final String BOOTSTRAP_DIR = "bootstrap.dir";
@@ -298,8 +303,6 @@ public class Configuration {
   private static final String SERVER_PERSISTENCE_TYPE_DEFAULT = "local";
   private static final String SERVER_CONNECTION_MAX_IDLE_TIME = "server.connection.max.idle.millis";
 
-  private static final String UBUNTU_OS = "ubuntu12";
-
   /**
    * Default for repo validation suffixes.
    */
@@ -1139,10 +1142,11 @@ public class Configuration {
   /**
    * @return a string array of suffixes used to validate repo URLs.
    */
-  public String[] getRepoValidationSuffixes(String osFamily) {
+  public String[] getRepoValidationSuffixes(String osType) {
+    String osFamily = this.osFamily.find_family(osType);
     String repoSuffixes;
 
-    if(osFamily.equals(UBUNTU_OS)) {
+    if(osFamily.equals(OsFamily.UBUNTU_FAMILY)) {
       repoSuffixes = properties.getProperty(REPO_SUFFIX_KEY_UBUNTU,
           REPO_SUFFIX_UBUNTU);
     } else {

http://git-wip-us.apache.org/repos/asf/ambari/blob/10e61fff/ambari-server/src/main/java/org/apache/ambari/server/state/stack/LatestRepoCallable.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/LatestRepoCallable.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/LatestRepoCallable.java
index 373be33..9eb2387 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/LatestRepoCallable.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/LatestRepoCallable.java
@@ -108,7 +108,9 @@ public class LatestRepoCallable implements Callable<Void> {
               // Agents do the reverse action (take the base url, and append <name>.repo)
 
               String repo_file_format;
-              if(ri.getOsType().equals("ubuntu12")) {
+              String osFamily = os_family.find_family(ri.getOsType());
+              
+              if(osFamily.equals(OsFamily.UBUNTU_FAMILY)) {
                 repo_file_format = "list";
               } else {
                 repo_file_format = "repo";

http://git-wip-us.apache.org/repos/asf/ambari/blob/10e61fff/ambari-server/src/main/java/org/apache/ambari/server/state/stack/OsFamily.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/OsFamily.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/OsFamily.java
index 22b6005..2df3fcf 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/OsFamily.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/OsFamily.java
@@ -41,6 +41,8 @@ import org.apache.commons.io.IOUtils;
  */
 @Singleton
 public class OsFamily {
+    public final static String UBUNTU_FAMILY = "ubuntu";
+    
     private final String os_pattern = "([^\\d]*)([\\d]*)";
     private final String OS_DISTRO = "distro";
     private final String OS_VERSION = "versions";
@@ -124,7 +126,7 @@ public class OsFamily {
     }
 
     /**
-     * Finds the family for the specific OS
+     * Finds the family for the specific OS + it's version number
      * @param os the OS
      * @return the family, or <code>null</code> if not defined
      */
@@ -138,6 +140,22 @@ public class OsFamily {
       }
       return null;
     }
+    
+    /**
+     * Finds the family for the specific OS
+     * @param os the OS
+     * @return the family, or <code>null</code> if not defined
+     */
+    public String find_family(String os) {
+      Map<String,String>  pos = parse_os(os);
+      for ( String family : osMap.keySet()) {
+        Map<String, Set<String>> fam = osMap.get(family);
+        if (fam.get(OS_DISTRO).contains(pos.get(OS_DISTRO)) && fam.get(OS_VERSION).contains(pos.get(OS_VERSION))){
+          return family;
+        }
+      }
+      return null;
+    }
 
     /**
      * Form list of all supported os types

http://git-wip-us.apache.org/repos/asf/ambari/blob/10e61fff/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java
index 7eccd66..419ba02 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java
@@ -23,6 +23,7 @@ import com.google.inject.AbstractModule;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
 import com.google.inject.persist.Transactional;
+
 import org.apache.ambari.server.api.resources.ResourceInstanceFactoryImpl;
 import org.apache.ambari.server.api.resources.SubResourceDefinition;
 import org.apache.ambari.server.api.resources.ViewExternalSubResourceDefinition;
@@ -33,6 +34,7 @@ import org.apache.ambari.server.configuration.ComponentSSLConfiguration;
 import org.apache.ambari.server.configuration.Configuration;
 import org.apache.ambari.server.controller.AmbariServer;
 import org.apache.ambari.server.controller.AmbariSessionManager;
+import org.apache.ambari.server.controller.ControllerModule;
 import org.apache.ambari.server.controller.spi.Resource;
 import org.apache.ambari.server.controller.spi.ResourceProvider;
 import org.apache.ambari.server.orm.dao.MemberDAO;
@@ -84,6 +86,7 @@ import org.springframework.security.core.GrantedAuthority;
 import javax.inject.Inject;
 import javax.inject.Provider;
 import javax.inject.Singleton;
+
 import java.beans.IntrospectionException;
 import java.io.File;
 import java.util.Collection;
@@ -257,7 +260,7 @@ public class ViewRegistry {
       String archivePath = args[1];
 
       try {
-        Injector injector = Guice.createInjector();
+        Injector injector = Guice.createInjector(new ControllerModule());
 
         ViewExtractor      extractor      = injector.getInstance(ViewExtractor.class);
         ViewArchiveUtility archiveUtility = injector.getInstance(ViewArchiveUtility.class);

http://git-wip-us.apache.org/repos/asf/ambari/blob/10e61fff/ambari-server/src/main/resources/stacks/HDP/2.3/repos/repoinfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/repos/repoinfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/repos/repoinfo.xml
index 5b25a04..646b2c0 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.3/repos/repoinfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.3/repos/repoinfo.xml
@@ -65,4 +65,16 @@
       <reponame>HDP-UTILS</reponame>
     </repo>
   </os>
+  <os family="ubuntu7">
+    <repo>
+      <baseurl>http://s3.amazonaws.com/dev.hortonworks.com/HDP/debian6/2.x/updates/2.3.0.0</baseurl>
+      <repoid>HDP-2.3</repoid>
+      <reponame>HDP</reponame>
+    </repo>
+    <repo>
+      <baseurl>http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/debian6</baseurl>
+      <repoid>HDP-UTILS-1.1.0.20</repoid>
+      <reponame>HDP-UTILS</reponame>
+    </repo>
+  </os>
 </reposinfo>