Browse Source

AMBARI-5383. Ambari installs lzo RPMs when lzo is not listed in io.compression.codecs. (mpapirkovskyy)

Myroslav Papirkovskyy 11 years ago
parent
commit
82bbd3ea6b

+ 4 - 3
ambari-agent/src/main/python/resource_management/libraries/script/script.py

@@ -143,7 +143,7 @@ class Script(object):
     self.install_packages(env)
     self.install_packages(env)
 
 
 
 
-  def install_packages(self, env):
+  def install_packages(self, env, exclude_packages=[]):
     """
     """
     List of packages that are required by service is received from the server
     List of packages that are required by service is received from the server
     as a command parameter. The method installs all packages
     as a command parameter. The method installs all packages
@@ -157,8 +157,9 @@ class Script(object):
       if isinstance(package_list_str,basestring) and len(package_list_str) > 0:
       if isinstance(package_list_str,basestring) and len(package_list_str) > 0:
         package_list = json.loads(package_list_str)
         package_list = json.loads(package_list_str)
         for package in package_list:
         for package in package_list:
-          name = package['name']
-          Package(name)
+          if not package['name'] in exclude_packages:
+            name = package['name']
+            Package(name)
     except KeyError:
     except KeyError:
       pass # No reason to worry
       pass # No reason to worry
     
     

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/package/scripts/datanode.py

@@ -26,7 +26,7 @@ class DataNode(Script):
   def install(self, env):
   def install(self, env):
     import params
     import params
 
 
-    self.install_packages(env)
+    self.install_packages(env, params.exclude_packages)
     env.set_params(params)
     env.set_params(params)
 
 
   def start(self, env):
   def start(self, env):

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/package/scripts/hdfs_client.py

@@ -26,7 +26,7 @@ class HdfsClient(Script):
   def install(self, env):
   def install(self, env):
     import params
     import params
 
 
-    self.install_packages(env)
+    self.install_packages(env, params.exclude_packages)
     env.set_params(params)
     env.set_params(params)
     self.configure(env)
     self.configure(env)
 
 

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/package/scripts/namenode.py

@@ -26,7 +26,7 @@ class NameNode(Script):
   def install(self, env):
   def install(self, env):
     import params
     import params
 
 
-    self.install_packages(env)
+    self.install_packages(env, params.exclude_packages)
     env.set_params(params)
     env.set_params(params)
 
 
   def start(self, env):
   def start(self, env):

+ 7 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/package/scripts/params.py

@@ -143,4 +143,10 @@ HdfsDirectory = functools.partial(
   keytab = hdfs_user_keytab,
   keytab = hdfs_user_keytab,
   kinit_path_local = kinit_path_local
   kinit_path_local = kinit_path_local
 )
 )
-limits_conf_dir = "/etc/security/limits.d"
+limits_conf_dir = "/etc/security/limits.d"
+
+io_compression_codecs = config['configurations']['core-site']['io.compression.codecs']
+if not "com.hadoop.compression.lzo" in io_compression_codecs:
+  exclude_packages = ["lzo", "hadoop-lzo", "hadoop-lzo-native"]
+else:
+  exclude_packages = []

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/1.3.2/services/HDFS/package/scripts/snamenode.py

@@ -28,7 +28,7 @@ class SNameNode(Script):
 
 
     env.set_params(params)
     env.set_params(params)
 
 
-    self.install_packages(env)
+    self.install_packages(env, params.exclude_packages)
 
 
 
 
   def start(self, env):
   def start(self, env):

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/package/scripts/datanode.py

@@ -26,7 +26,7 @@ class DataNode(Script):
   def install(self, env):
   def install(self, env):
     import params
     import params
 
 
-    self.install_packages(env)
+    self.install_packages(env, params.exclude_packages)
     env.set_params(params)
     env.set_params(params)
 
 
   def start(self, env):
   def start(self, env):

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/package/scripts/hdfs_client.py

@@ -26,7 +26,7 @@ class HdfsClient(Script):
   def install(self, env):
   def install(self, env):
     import params
     import params
 
 
-    self.install_packages(env)
+    self.install_packages(env, params.exclude_packages)
     env.set_params(params)
     env.set_params(params)
     self.config(env)
     self.config(env)
 
 

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/package/scripts/journalnode.py

@@ -26,7 +26,7 @@ class JournalNode(Script):
   def install(self, env):
   def install(self, env):
     import params
     import params
 
 
-    self.install_packages(env)
+    self.install_packages(env, params.exclude_packages)
     env.set_params(params)
     env.set_params(params)
 
 
   def start(self, env):
   def start(self, env):

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/package/scripts/namenode.py

@@ -26,7 +26,7 @@ class NameNode(Script):
   def install(self, env):
   def install(self, env):
     import params
     import params
 
 
-    self.install_packages(env)
+    self.install_packages(env, params.exclude_packages)
     env.set_params(params)
     env.set_params(params)
     #TODO we need this for HA because of manual steps
     #TODO we need this for HA because of manual steps
     self.configure(env)
     self.configure(env)

+ 6 - 0
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/package/scripts/params.py

@@ -162,3 +162,9 @@ HdfsDirectory = functools.partial(
 )
 )
 
 
 limits_conf_dir = "/etc/security/limits.d"
 limits_conf_dir = "/etc/security/limits.d"
+
+io_compression_codecs = config['configurations']['core-site']['io.compression.codecs']
+if not "com.hadoop.compression.lzo" in io_compression_codecs:
+  exclude_packages = ["lzo", "hadoop-lzo", "hadoop-lzo-native", "liblzo2-2"]
+else:
+  exclude_packages = []

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/package/scripts/snamenode.py

@@ -28,7 +28,7 @@ class SNameNode(Script):
 
 
     env.set_params(params)
     env.set_params(params)
 
 
-    self.install_packages(env)
+    self.install_packages(env, params.exclude_packages)
 
 
 
 
   def start(self, env):
   def start(self, env):

+ 1 - 1
ambari-server/src/main/resources/stacks/HDP/2.0.6/services/HDFS/package/scripts/zkfc_slave.py

@@ -26,7 +26,7 @@ class ZkfcSlave(Script):
   def install(self, env):
   def install(self, env):
     import params
     import params
 
 
-    self.install_packages(env)
+    self.install_packages(env, params.exclude_packages)
     env.set_params(params)
     env.set_params(params)
 
 
   def start(self, env):
   def start(self, env):