Explorar o código

AMBARI-11695. Ambari RU should not perform 'yum install krb5-server' on ALL nodes during installing packages (dlysnichenko)

Lisnichenko Dmitro %!s(int64=10) %!d(string=hai) anos
pai
achega
46c15e852f
Modificáronse 35 ficheiros con 157 adicións e 181 borrados
  1. 5 1
      ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java
  2. 5 1
      ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java
  3. 24 6
      ambari-server/src/main/java/org/apache/ambari/server/state/ServiceOsSpecific.java
  4. 7 0
      ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/metainfo.xml
  5. 4 0
      ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metainfo.xml
  6. 4 0
      ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/metainfo.xml
  7. 10 0
      ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/metainfo.xml
  8. 1 0
      ambari-server/src/main/resources/common-services/OOZIE/5.0.0.2.3/metainfo.xml
  9. 1 0
      ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/metainfo.xml
  10. 1 39
      ambari-server/src/main/resources/custom_actions/scripts/install_packages.py
  11. 4 0
      ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/metainfo.xml
  12. 4 0
      ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/metainfo.xml
  13. 1 0
      ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/OOZIE/metainfo.xml
  14. 4 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6.GlusterFS/services/HIVE/metainfo.xml
  15. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.0.6.GlusterFS/services/OOZIE/metainfo.xml
  16. 4 0
      ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/HIVE/metainfo.xml
  17. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/OOZIE/metainfo.xml
  18. 4 0
      ambari-server/src/main/resources/stacks/HDP/2.1/services/HIVE/metainfo.xml
  19. 4 0
      ambari-server/src/main/resources/stacks/HDP/2.2/services/HDFS/metainfo.xml
  20. 4 0
      ambari-server/src/main/resources/stacks/HDP/2.2/services/HIVE/metainfo.xml
  21. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.2/services/SQOOP/metainfo.xml
  22. 3 0
      ambari-server/src/main/resources/stacks/HDP/2.3.GlusterFS/services/HDFS/metainfo.xml
  23. 4 0
      ambari-server/src/main/resources/stacks/HDP/2.3.GlusterFS/services/HIVE/metainfo.xml
  24. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.3.GlusterFS/services/SQOOP/metainfo.xml
  25. 3 0
      ambari-server/src/main/resources/stacks/HDP/2.3/services/HDFS/metainfo.xml
  26. 4 0
      ambari-server/src/main/resources/stacks/HDP/2.3/services/HIVE/metainfo.xml
  27. 1 0
      ambari-server/src/main/resources/stacks/HDP/2.3/services/SQOOP/metainfo.xml
  28. 4 0
      ambari-server/src/main/resources/stacks/PHD/3.0.0.0/services/HDFS/metainfo.xml
  29. 4 0
      ambari-server/src/main/resources/stacks/PHD/3.0.0.0/services/HIVE/metainfo.xml
  30. 1 0
      ambari-server/src/main/resources/stacks/PHD/3.0.0.0/services/OOZIE/metainfo.xml
  31. 8 2
      ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProviderTest.java
  32. 10 2
      ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProviderTest.java
  33. 8 2
      ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerCommonServicesTest.java
  34. 7 128
      ambari-server/src/test/python/custom_actions/TestInstallPackages.py
  35. 5 0
      ambari-server/src/test/resources/common-services/PIG/1.0/metainfo.xml

+ 5 - 1
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java

@@ -440,7 +440,11 @@ public class ClusterStackVersionResourceProvider extends AbstractControllerResou
       List<ServiceOsSpecific.Package> packagesForService = managementController.getPackagesForServiceHost(info,
       List<ServiceOsSpecific.Package> packagesForService = managementController.getPackagesForServiceHost(info,
               new HashMap<String, String>(), // Contents are ignored
               new HashMap<String, String>(), // Contents are ignored
               host.getOsFamily());
               host.getOsFamily());
-      packages.addAll(packagesForService);
+      for (ServiceOsSpecific.Package aPackage : packagesForService) {
+        if (! aPackage.getSkipUpgrade()) {
+          packages.add(aPackage);
+        }
+      }
     }
     }
     final String packageList = gson.toJson(packages);
     final String packageList = gson.toJson(packages);
     final String repoList = gson.toJson(repoInfo);
     final String repoList = gson.toJson(repoInfo);

+ 5 - 1
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java

@@ -381,7 +381,11 @@ public class HostStackVersionResourceProvider extends AbstractControllerResource
       List<ServiceOsSpecific.Package> packagesForService = managementController.getPackagesForServiceHost(info,
       List<ServiceOsSpecific.Package> packagesForService = managementController.getPackagesForServiceHost(info,
               new HashMap<String, String>(), // Contents are ignored
               new HashMap<String, String>(), // Contents are ignored
               host.getOsFamily());
               host.getOsFamily());
-      packages.addAll(packagesForService);
+      for (ServiceOsSpecific.Package aPackage : packagesForService) {
+        if (! aPackage.getSkipUpgrade()) {
+          packages.add(aPackage);
+        }
+      }
     }
     }
     final String packageList = gson.toJson(packages);
     final String packageList = gson.toJson(packages);
     final String repoList = gson.toJson(repoInfo);
     final String repoList = gson.toJson(repoInfo);

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

@@ -166,6 +166,13 @@ public class ServiceOsSpecific {
   public static class Package {
   public static class Package {
     private String name;
     private String name;
 
 
+    /**
+     * If true, package will not be attempted to be upgraded during RU.
+     * Typically, packages that are located outside of HDP* repositories,
+     * should be marked as true
+     */
+    private Boolean skipUpgrade = Boolean.FALSE;
+
     public String getName() {
     public String getName() {
       return name;
       return name;
     }
     }
@@ -174,24 +181,35 @@ public class ServiceOsSpecific {
       this.name = name;
       this.name = name;
     }
     }
 
 
-    public Package() { }
+    public Boolean getSkipUpgrade() {
+      return skipUpgrade;
+    }
+
+    public void setSkipUpgrade(Boolean skipUpgrade) {
+      this.skipUpgrade = skipUpgrade;
+    }
+
+    public Package() {
+    }
 
 
     @Override
     @Override
     public boolean equals(Object o) {
     public boolean equals(Object o) {
       if (this == o) return true;
       if (this == o) return true;
       if (o == null || getClass() != o.getClass()) return false;
       if (o == null || getClass() != o.getClass()) return false;
 
 
-      Package that = (Package) o;
+      Package aPackage = (Package) o;
+
+      if (!name.equals(aPackage.name)) return false;
+      return skipUpgrade.equals(aPackage.skipUpgrade);
 
 
-      return name.equals(that.name);
     }
     }
 
 
     @Override
     @Override
     public int hashCode() {
     public int hashCode() {
-      return name.hashCode();
+      int result = name.hashCode();
+      result = 31 * result + skipUpgrade.hashCode();
+      return result;
     }
     }
   }
   }
-
-
 }
 }
 
 

+ 7 - 0
ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/metainfo.xml

@@ -70,12 +70,15 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>ambari-metrics-collector</name>
               <name>ambari-metrics-collector</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>ambari-metrics-monitor</name>
               <name>ambari-metrics-monitor</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>ambari-metrics-hadoop-sink</name>
               <name>ambari-metrics-hadoop-sink</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>gcc</name>
               <name>gcc</name>
@@ -87,6 +90,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>ambari-metrics-assembly</name>
               <name>ambari-metrics-assembly</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>gcc</name>
               <name>gcc</name>
@@ -98,12 +102,15 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>ambari-metrics-collector</name>
               <name>ambari-metrics-collector</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>ambari-metrics-monitor</name>
               <name>ambari-metrics-monitor</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>ambari-metrics-hadoop-sink</name>
               <name>ambari-metrics-hadoop-sink</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

+ 4 - 0
ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metainfo.xml

@@ -164,6 +164,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>hadoop-lzo</name>
               <name>hadoop-lzo</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -179,9 +180,11 @@
             </package>
             </package>
             <package>
             <package>
               <name>lzo</name>
               <name>lzo</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>hadoop-lzo-native</name>
               <name>hadoop-lzo-native</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>hadoop-libhdfs</name>
               <name>hadoop-libhdfs</name>
@@ -203,6 +206,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>liblzo2-2</name>
               <name>liblzo2-2</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>hadoop-hdfs</name>
               <name>hadoop-hdfs</name>

+ 4 - 0
ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/metainfo.xml

@@ -247,6 +247,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -255,6 +256,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql</name>
               <name>mysql</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -263,6 +265,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-server</name>
               <name>mysql-server</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -271,6 +274,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-client</name>
               <name>mysql-client</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

+ 10 - 0
ambari-server/src/main/resources/common-services/KERBEROS/1.10.3-10/metainfo.xml

@@ -77,12 +77,15 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>krb5-server</name>
               <name>krb5-server</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>krb5-libs</name>
               <name>krb5-libs</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>krb5-workstation</name>
               <name>krb5-workstation</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -92,15 +95,19 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>krb5-kdc</name>
               <name>krb5-kdc</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>krb5-admin-server</name>
               <name>krb5-admin-server</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>krb5-user</name>
               <name>krb5-user</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>krb5-config</name>
               <name>krb5-config</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -110,12 +117,15 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>krb5</name>
               <name>krb5</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>krb5-client</name>
               <name>krb5-client</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>krb5-server</name>
               <name>krb5-server</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

+ 1 - 0
ambari-server/src/main/resources/common-services/OOZIE/5.0.0.2.3/metainfo.xml

@@ -117,6 +117,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>extjs</name>
               <name>extjs</name>

+ 1 - 0
ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/metainfo.xml

@@ -71,6 +71,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

+ 1 - 39
ambari-server/src/main/resources/custom_actions/scripts/install_packages.py

@@ -93,8 +93,7 @@ class InstallPackages(Script):
         allInstalledPackages(packages_installed_before)
         allInstalledPackages(packages_installed_before)
         packages_installed_before = [package[0] for package in packages_installed_before]
         packages_installed_before = [package[0] for package in packages_installed_before]
         packages_were_checked = True
         packages_were_checked = True
-        filtered_package_list = self.filter_package_list(package_list)
-        for package in filtered_package_list:
+        for package in package_list:
           name = self.format_package_name(package['name'], repository_version)
           name = self.format_package_name(package['name'], repository_version)
           Package(name, use_repos=list(current_repo_files) if OSCheck.is_ubuntu_family() else current_repositories)
           Package(name, use_repos=list(current_repo_files) if OSCheck.is_ubuntu_family() else current_repositories)
         package_install_result = True
         package_install_result = True
@@ -196,42 +195,5 @@ class InstallPackages(Script):
       return []
       return []
 
 
 
 
-  def filter_package_list(self, package_list):
-    """
-    Here we filter packages that are managed with custom logic in package
-    scripts. Usually this packages come from system repositories, and either
-     are not available when we restrict repository list, or should not be
-    installed on host at all.
-    :param package_list: original list
-    :return: filtered package_list
-    """
-    filtered_package_list = []
-
-    # hadoop-lzo package is installed only if LZO compression is enabled
-    lzo_packages = ['hadoop-lzo', 'lzo', 'hadoop-lzo-native', 'liblzo2-2', 'hadooplzo']
-    has_lzo = False
-    io_compression_codecs = default("/configurations/core-site/io.compression.codecs", None)
-    if io_compression_codecs:
-      has_lzo = "com.hadoop.compression.lzo" in io_compression_codecs.lower()
-
-    for package in package_list:
-      skip_package = False
-      # mysql* package logic is managed at HIVE scripts
-      if package['name'].startswith('mysql'):
-        skip_package = True
-      # Ambari metrics packages should not be upgraded during RU
-      if package['name'].startswith('ambari-metrics'):
-        skip_package = True
-
-      if not has_lzo:
-        for lzo_package in lzo_packages:
-          if package['name'].startswith(lzo_package):
-            skip_package = True
-            break
-
-      if not skip_package:
-        filtered_package_list.append(package)
-    return filtered_package_list
-
 if __name__ == "__main__":
 if __name__ == "__main__":
   InstallPackages().execute()
   InstallPackages().execute()

+ 4 - 0
ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HDFS/metainfo.xml

@@ -149,6 +149,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>hadoop-lzo</name>
               <name>hadoop-lzo</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -164,9 +165,11 @@
             </package>
             </package>
             <package>
             <package>
               <name>lzo</name>
               <name>lzo</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>hadoop-lzo-native</name>
               <name>hadoop-lzo-native</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>hadoop-libhdfs</name>
               <name>hadoop-libhdfs</name>
@@ -188,6 +191,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>liblzo2-2</name>
               <name>liblzo2-2</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>hadoop-hdfs</name>
               <name>hadoop-hdfs</name>

+ 4 - 0
ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/metainfo.xml

@@ -223,6 +223,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -231,6 +232,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql</name>
               <name>mysql</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -239,6 +241,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-server</name>
               <name>mysql-server</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -247,6 +250,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-client</name>
               <name>mysql-client</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

+ 1 - 0
ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/OOZIE/metainfo.xml

@@ -117,6 +117,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

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

@@ -59,6 +59,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -67,6 +68,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql</name>
               <name>mysql</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -75,6 +77,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-server</name>
               <name>mysql-server</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -83,6 +86,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-client</name>
               <name>mysql-client</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

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

@@ -42,6 +42,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

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

@@ -59,6 +59,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -67,6 +68,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql</name>
               <name>mysql</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -75,6 +77,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-server</name>
               <name>mysql-server</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -83,6 +86,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-client</name>
               <name>mysql-client</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

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

@@ -42,6 +42,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

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

@@ -57,6 +57,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -65,6 +66,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql</name>
               <name>mysql</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -73,6 +75,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-server</name>
               <name>mysql-server</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -81,6 +84,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-client</name>
               <name>mysql-client</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

+ 4 - 0
ambari-server/src/main/resources/stacks/HDP/2.2/services/HDFS/metainfo.xml

@@ -38,9 +38,11 @@
             </package>
             </package>
             <package>
             <package>
               <name>lzo</name>
               <name>lzo</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>hadooplzo_2_2_*</name>
               <name>hadooplzo_2_2_*</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>hadoop_2_2_*-libhdfs</name>
               <name>hadoop_2_2_*-libhdfs</name>
@@ -80,9 +82,11 @@
             </package>
             </package>
             <package>
             <package>
               <name>hadooplzo-2-2-.*</name>
               <name>hadooplzo-2-2-.*</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>liblzo2-2</name>
               <name>liblzo2-2</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>libhdfs0-2-2-.*</name>
               <name>libhdfs0-2-2-.*</name>

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

@@ -63,6 +63,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -80,6 +81,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>mysql</name>
               <name>mysql</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -102,6 +104,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-server</name>
               <name>mysql-server</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -110,6 +113,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-client</name>
               <name>mysql-client</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

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

@@ -27,6 +27,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

+ 3 - 0
ambari-server/src/main/resources/stacks/HDP/2.3.GlusterFS/services/HDFS/metainfo.xml

@@ -37,9 +37,11 @@
             </package>
             </package>
             <package>
             <package>
               <name>lzo</name>
               <name>lzo</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>hadooplzo_2_3_*</name>
               <name>hadooplzo_2_3_*</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>hadoop_2_3_*-libhdfs</name>
               <name>hadoop_2_3_*-libhdfs</name>
@@ -79,6 +81,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>hadooplzo-2-3-.*</name>
               <name>hadooplzo-2-3-.*</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>libhdfs0-2-3-.*</name>
               <name>libhdfs0-2-3-.*</name>

+ 4 - 0
ambari-server/src/main/resources/stacks/HDP/2.3.GlusterFS/services/HIVE/metainfo.xml

@@ -28,6 +28,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -45,6 +46,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>mysql</name>
               <name>mysql</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -67,6 +69,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-server</name>
               <name>mysql-server</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -75,6 +78,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-client</name>
               <name>mysql-client</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

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

@@ -27,6 +27,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

+ 3 - 0
ambari-server/src/main/resources/stacks/HDP/2.3/services/HDFS/metainfo.xml

@@ -70,9 +70,11 @@
             </package>
             </package>
             <package>
             <package>
               <name>lzo</name>
               <name>lzo</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>hadooplzo_2_3_*</name>
               <name>hadooplzo_2_3_*</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>hadoop_2_3_*-libhdfs</name>
               <name>hadoop_2_3_*-libhdfs</name>
@@ -112,6 +114,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>hadooplzo-2-3-.*</name>
               <name>hadooplzo-2-3-.*</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>libhdfs0-2-3-.*</name>
               <name>libhdfs0-2-3-.*</name>

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

@@ -28,6 +28,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>atlas-metadata*-hive-plugin</name>
               <name>atlas-metadata*-hive-plugin</name>
@@ -48,6 +49,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>mysql</name>
               <name>mysql</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -70,6 +72,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-server</name>
               <name>mysql-server</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -78,6 +81,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-client</name>
               <name>mysql-client</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

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

@@ -27,6 +27,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

+ 4 - 0
ambari-server/src/main/resources/stacks/PHD/3.0.0.0/services/HDFS/metainfo.xml

@@ -149,6 +149,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>hadoop-lzo</name>
               <name>hadoop-lzo</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -164,9 +165,11 @@
             </package>
             </package>
             <package>
             <package>
               <name>lzo</name>
               <name>lzo</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>hadoop-lzo-native</name>
               <name>hadoop-lzo-native</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>hadoop-libhdfs</name>
               <name>hadoop-libhdfs</name>
@@ -188,6 +191,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>liblzo2-2</name>
               <name>liblzo2-2</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
             <package>
             <package>
               <name>hadoop-hdfs</name>
               <name>hadoop-hdfs</name>

+ 4 - 0
ambari-server/src/main/resources/stacks/PHD/3.0.0.0/services/HIVE/metainfo.xml

@@ -223,6 +223,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -231,6 +232,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql</name>
               <name>mysql</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -239,6 +241,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-server</name>
               <name>mysql-server</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
@@ -247,6 +250,7 @@
           <packages>
           <packages>
             <package>
             <package>
               <name>mysql-client</name>
               <name>mysql-client</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

+ 1 - 0
ambari-server/src/main/resources/stacks/PHD/3.0.0.0/services/OOZIE/metainfo.xml

@@ -117,6 +117,7 @@
             </package>
             </package>
             <package>
             <package>
               <name>mysql-connector-java</name>
               <name>mysql-connector-java</name>
+              <skipUpgrade>true</skipUpgrade>
             </package>
             </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>

+ 8 - 2
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProviderTest.java

@@ -341,9 +341,15 @@ public class ClusterStackVersionResourceProviderTest {
     RepositoryVersionEntity repoVersion = new RepositoryVersionEntity();
     RepositoryVersionEntity repoVersion = new RepositoryVersionEntity();
     repoVersion.setOperatingSystems(operatingSystemsJson);
     repoVersion.setOperatingSystems(operatingSystemsJson);
 
 
-    ServiceOsSpecific.Package hivePackage = new ServiceOsSpecific.Package();
+    final ServiceOsSpecific.Package hivePackage = new ServiceOsSpecific.Package();
     hivePackage.setName("hive");
     hivePackage.setName("hive");
-    List<ServiceOsSpecific.Package> packages = Collections.singletonList(hivePackage);
+    final ServiceOsSpecific.Package mysqlPackage = new ServiceOsSpecific.Package();
+    mysqlPackage.setName("mysql");
+    mysqlPackage.setSkipUpgrade(Boolean.TRUE);
+    List<ServiceOsSpecific.Package> packages = new ArrayList<ServiceOsSpecific.Package>() {{
+      add(hivePackage);
+      add(mysqlPackage);
+    }};
 
 
     ActionManager actionManager = createNiceMock(ActionManager.class);
     ActionManager actionManager = createNiceMock(ActionManager.class);
 
 

+ 10 - 2
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProviderTest.java

@@ -27,6 +27,7 @@ import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.replay;
 import static org.easymock.EasyMock.replay;
 import static org.easymock.EasyMock.verify;
 import static org.easymock.EasyMock.verify;
 
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashMap;
@@ -146,9 +147,16 @@ public class HostStackVersionResourceProviderTest {
     RepositoryVersionEntity repoVersion = new RepositoryVersionEntity();
     RepositoryVersionEntity repoVersion = new RepositoryVersionEntity();
     repoVersion.setOperatingSystems(operatingSystemsJson);
     repoVersion.setOperatingSystems(operatingSystemsJson);
 
 
-    ServiceOsSpecific.Package hivePackage = new ServiceOsSpecific.Package();
+    final ServiceOsSpecific.Package hivePackage = new ServiceOsSpecific.Package();
     hivePackage.setName("hive");
     hivePackage.setName("hive");
-    List<ServiceOsSpecific.Package> packages = Collections.singletonList(hivePackage);
+    final ServiceOsSpecific.Package mysqlPackage = new ServiceOsSpecific.Package();
+    mysqlPackage.setName("mysql");
+    mysqlPackage.setSkipUpgrade(Boolean.TRUE);
+    List<ServiceOsSpecific.Package> packages = new ArrayList<ServiceOsSpecific.Package>() {{
+      add(hivePackage);
+      add(mysqlPackage);
+    }};
+
 
 
     ActionManager actionManager = createNiceMock(ActionManager.class);
     ActionManager actionManager = createNiceMock(ActionManager.class);
 
 

+ 8 - 2
ambari-server/src/test/java/org/apache/ambari/server/stack/StackManagerCommonServicesTest.java

@@ -22,6 +22,7 @@ import static org.easymock.EasyMock.createNiceMock;
 import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.replay;
 import static org.easymock.EasyMock.replay;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.assertTrue;
@@ -172,7 +173,7 @@ public class StackManagerCommonServicesTest {
     assertEquals(1, configDependencies.size());
     assertEquals(1, configDependencies.size());
     assertEquals("global", configDependencies.get(0));
     assertEquals("global", configDependencies.get(0));
     assertEquals("global",
     assertEquals("global",
-        pigService.getConfigDependenciesWithComponents().get(0));
+            pigService.getConfigDependenciesWithComponents().get(0));
     ComponentInfo client = pigService.getClientComponent();
     ComponentInfo client = pigService.getClientComponent();
     assertNotNull(client);
     assertNotNull(client);
     assertEquals("PIG", client.getName());
     assertEquals("PIG", client.getName());
@@ -187,9 +188,14 @@ public class StackManagerCommonServicesTest {
     assertEquals("centos6", osSpecific.getOsFamily());
     assertEquals("centos6", osSpecific.getOsFamily());
     assertNull(osSpecific.getRepo());
     assertNull(osSpecific.getRepo());
     List<ServiceOsSpecific.Package> packages = osSpecific.getPackages();
     List<ServiceOsSpecific.Package> packages = osSpecific.getPackages();
-    assertEquals(1, packages.size());
+    assertEquals(2, packages.size());
     ServiceOsSpecific.Package pkg = packages.get(0);
     ServiceOsSpecific.Package pkg = packages.get(0);
     assertEquals("pig", pkg.getName());
     assertEquals("pig", pkg.getName());
+    assertFalse(pkg.getSkipUpgrade());
+
+    ServiceOsSpecific.Package lzoPackage = packages.get(1);
+    assertEquals("lzo", lzoPackage.getName());
+    assertTrue(lzoPackage.getSkipUpgrade());
 
 
     assertEquals(pigService.getParent(), "common-services/PIG/1.0");
     assertEquals(pigService.getParent(), "common-services/PIG/1.0");
   }
   }

+ 7 - 128
ambari-server/src/test/python/custom_actions/TestInstallPackages.py

@@ -83,6 +83,8 @@ class TestInstallPackages(RMFTestCase):
     self.assertResourceCalled('Package', 'hadoop_2_2_*', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'hadoop_2_2_*', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'snappy', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'snappy', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'snappy-devel', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'snappy-devel', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+    self.assertResourceCalled('Package', 'lzo', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+    self.assertResourceCalled('Package', 'hadooplzo_2_2_*', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'hadoop_2_2_*-libhdfs', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'hadoop_2_2_*-libhdfs', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'ambari-log4j', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'ambari-log4j', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertNoMoreResources()
     self.assertNoMoreResources()
@@ -131,6 +133,8 @@ class TestInstallPackages(RMFTestCase):
     self.assertResourceCalled('Package', 'hadoop_2_2_*', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'hadoop_2_2_*', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'snappy', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'snappy', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'snappy-devel', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'snappy-devel', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+    self.assertResourceCalled('Package', 'lzo', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+    self.assertResourceCalled('Package', 'hadooplzo_2_2_*', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'hadoop_2_2_*-libhdfs', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'hadoop_2_2_*-libhdfs', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'ambari-log4j', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'ambari-log4j', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertNoMoreResources()
     self.assertNoMoreResources()
@@ -246,133 +250,8 @@ class TestInstallPackages(RMFTestCase):
     self.assertResourceCalled('Package', 'hadoop_2_2_0_1_885*', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'hadoop_2_2_0_1_885*', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'snappy', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'snappy', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'snappy-devel', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'snappy-devel', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+    self.assertResourceCalled('Package', 'lzo', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+    self.assertResourceCalled('Package', 'hadooplzo_2_2_0_1_885*', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'hadoop_2_2_0_1_885*-libhdfs', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'hadoop_2_2_0_1_885*-libhdfs', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'ambari-log4j', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
     self.assertResourceCalled('Package', 'ambari-log4j', use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
-    self.assertNoMoreResources()
-
-
-  @patch("ambari_commons.os_check.OSCheck.is_suse_family")
-  @patch("resource_management.core.resources.packaging.Package")
-  @patch("resource_management.libraries.script.Script.put_structured_out")
-  @patch("resource_management.libraries.functions.packages_analyzer.allInstalledPackages")
-  def test_exclude_packages(self,allInstalledPackages_mock, put_structured_out_mock,
-                               package_mock, is_suse_family_mock):
-    allInstalledPackages_mock = MagicMock(side_effect = TestInstallPackages._add_packages)
-    is_suse_family_mock.return_value = True
-
-    config_file = self.get_src_folder()+"/test/python/custom_actions/configs/install_packages_config.json"
-    with open(config_file, "r") as f:
-      config_dict = json.load(f)
-
-    config_dict['roleParams']['package_list'] = '[{\"name\":\"mysql-connector-java\"},{\"name\":\"hive_2_2_*\"},' \
-                                                     '{\"name\":\"hive_2_2_*-hcatalog\"},{\"name\":\"hive_2_2_*-webhcat\"},' \
-                                                     '{\"name\":\"mysql\"},{\"name\":\"mysql-client\"}, {\"name\":\"ambari-metrics-collector\"},' \
-                                                     ' {\"name\":\"hadooplzo_2_2_2_0_2538-native\"}]'
-
-    self.executeScript("scripts/install_packages.py",
-                       classname="InstallPackages",
-                       command="actionexecute",
-                       config_dict=config_dict,
-                       target=RMFTestCase.TARGET_CUSTOM_ACTIONS,
-                       os_type=('Suse', '11', 'Final'),
-                       )
-    self.assertTrue(put_structured_out_mock.called)
-    self.assertEquals(put_structured_out_mock.call_args[0][0],
-                      {'package_installation_result': 'SUCCESS',
-                       'installed_repository_version': u'2.2.0.1-885',
-                       'stack_id': 'HDP-2.2',
-                       'ambari_repositories': []})
-    self.assertResourceCalled('Repository', 'HDP-UTILS-2.2.0.1-885',
-                              base_url=u'http://repo1/HDP/centos5/2.x/updates/2.2.0.0',
-                              action=['create'],
-                              components=[u'HDP-UTILS', 'main'],
-                              repo_template='repo_suse_rhel.j2',
-                              repo_file_name=u'HDP-2.2.0.1-885',
-                              mirror_list=None,
-                              append_to_file=False,
-                              )
-    self.assertResourceCalled('Repository', 'HDP-2.2.0.1-885',
-                              base_url=u'http://repo1/HDP/centos5/2.x/updates/2.2.0.0',
-                              action=['create'],
-                              components=[u'HDP', 'main'],
-                              repo_template='repo_suse_rhel.j2',
-                              repo_file_name=u'HDP-2.2.0.1-885',
-                              mirror_list=None,
-                              append_to_file=True,
-                              )
-    self.assertResourceCalled('Package', 'hive_2_2_0_1_885*',
-                              use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885',
-                                         'HDP-2.2.0.1-885'],
-    )
-    self.assertResourceCalled('Package', 'hive_2_2_0_1_885*-hcatalog',
-                              use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885',
-                                         'HDP-2.2.0.1-885'],
-    )
-    self.assertResourceCalled('Package', 'hive_2_2_0_1_885*-webhcat',
-                              use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885',
-                                         'HDP-2.2.0.1-885'],
-    )
-    self.assertNoMoreResources()
-
-    # Check case when LZO is enabled
-    config_file = self.get_src_folder()+"/test/python/custom_actions/configs/install_packages_config.json"
-    with open(config_file, "r") as f:
-      config_dict = json.load(f)
-    config_dict['configurations']['core-site'] = {
-      'io.compression.codecs': "org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,"
-                               "org.apache.hadoop.io.compress.SnappyCodec,com.hadoop.compression.lzo"
-    }
-    config_dict['roleParams']['package_list'] = '[{\"name\":\"mysql-connector-java\"},{\"name\":\"hive_2_2_*\"},' \
-                                                '{\"name\":\"hive_2_2_*-hcatalog\"},{\"name\":\"hive_2_2_*-webhcat\"},' \
-                                                '{\"name\":\"mysql\"},{\"name\":\"mysql-client\"}, {\"name\":\"ambari-metrics-collector\"},' \
-                                                ' {\"name\":\"hadooplzo_2_2_2_0_2538-native\"}]'
-
-    self.executeScript("scripts/install_packages.py",
-                       classname="InstallPackages",
-                       command="actionexecute",
-                       config_dict=config_dict,
-                       target=RMFTestCase.TARGET_CUSTOM_ACTIONS,
-                       os_type=('Suse', '11', 'Final'),
-                       )
-    self.assertTrue(put_structured_out_mock.called)
-    self.assertEquals(put_structured_out_mock.call_args[0][0],
-                      {'package_installation_result': 'SUCCESS',
-                       'installed_repository_version': u'2.2.0.1-885',
-                       'stack_id': 'HDP-2.2',
-                       'ambari_repositories': []})
-    self.assertResourceCalled('Repository', 'HDP-UTILS-2.2.0.1-885',
-                              base_url=u'http://repo1/HDP/centos5/2.x/updates/2.2.0.0',
-                              action=['create'],
-                              components=[u'HDP-UTILS', 'main'],
-                              repo_template='repo_suse_rhel.j2',
-                              repo_file_name=u'HDP-2.2.0.1-885',
-                              mirror_list=None,
-                              append_to_file=False,
-                              )
-    self.assertResourceCalled('Repository', 'HDP-2.2.0.1-885',
-                              base_url=u'http://repo1/HDP/centos5/2.x/updates/2.2.0.0',
-                              action=['create'],
-                              components=[u'HDP', 'main'],
-                              repo_template='repo_suse_rhel.j2',
-                              repo_file_name=u'HDP-2.2.0.1-885',
-                              mirror_list=None,
-                              append_to_file=True,
-                              )
-    self.assertResourceCalled('Package', 'hive_2_2_0_1_885*',
-                              use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885',
-                                         'HDP-2.2.0.1-885'],
-                              )
-    self.assertResourceCalled('Package', 'hive_2_2_0_1_885*-hcatalog',
-                              use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885',
-                                         'HDP-2.2.0.1-885'],
-                              )
-    self.assertResourceCalled('Package', 'hive_2_2_0_1_885*-webhcat',
-                              use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885',
-                                         'HDP-2.2.0.1-885'],
-                              )
-    self.assertResourceCalled('Package', 'hadooplzo_2_2_2_0_2538-native',
-                              use_repos=['rhui*', 'base', 'HDP-UTILS-2.2.0.1-885',
-                                         'HDP-2.2.0.1-885'],
-                              )
-    self.assertNoMoreResources()
-
+    self.assertNoMoreResources()

+ 5 - 0
ambari-server/src/test/resources/common-services/PIG/1.0/metainfo.xml

@@ -42,6 +42,11 @@
             <package>
             <package>
               <name>pig</name>
               <name>pig</name>
             </package>
             </package>
+
+            <package>
+              <name>lzo</name>
+              <skipUpgrade>true</skipUpgrade>
+            </package>
           </packages>
           </packages>
         </osSpecific>
         </osSpecific>
       </osSpecifics>
       </osSpecifics>