浏览代码

AMBARI-5460. Use appropriate packages for components on ubuntu (aonishuk)

Andrew Onishuk 11 年之前
父节点
当前提交
21b1b61fe6

+ 1 - 1
ambari-agent/src/main/python/resource_management/core/providers/package/apt.py

@@ -23,7 +23,7 @@ from resource_management.core.providers.package import PackageProvider
 from resource_management.core import shell
 from resource_management.core.logger import Logger
 
-INSTALL_CMD = "/usr/bin/apt-get --assume-yes install %s"
+INSTALL_CMD = "/usr/bin/apt-get --force-yes --assume-yes install %s"
 REMOVE_CMD = "/usr/bin/apt-get -y -q remove %s"
 CHECK_CMD = "dpkg --get-selections %s | grep -v deinstall"
 

+ 3 - 3
ambari-agent/src/main/python/resource_management/libraries/providers/repository.py

@@ -65,8 +65,8 @@ class DebianRepositoryProvider(Provider):
     with Environment.get_instance_copy() as env:
       with tempfile.NamedTemporaryFile() as tmpf:
         File(tmpf.name,
-          content = InlineTemplate("{{package_type}} {{base_url}} {{relase_name}} {{components}}", 
-              package_type=self.package_type, base_url=self.resource.base_url, relase_name=env.system.os_release_name, components=' '.join(self.resource.components))
+          content = InlineTemplate("{{package_type}} {{base_url}} {{components}}", 
+              package_type=self.package_type, base_url=self.resource.base_url, components=' '.join(self.resource.components))
         )
         
         repo_file_name = format("{repo_file_name}.list",repo_file_name = self.resource.repo_file_name)
@@ -90,4 +90,4 @@ class DebianRepositoryProvider(Provider):
              action = "delete")
         
         # this is time expensive
-        Execute(format(self.update_cmd))
+        Execute(format(self.update_cmd))

+ 1 - 1
ambari-agent/src/test/python/resource_management/TestPackageResource.py

@@ -36,7 +36,7 @@ class TestPackageResource(TestCase):
       Package("some_package",
       )
     call_mock.assert_called_with('dpkg --get-selections some_package | grep -v deinstall')    
-    shell_mock.assert_called_with("/usr/bin/apt-get --assume-yes install some_package")
+    shell_mock.assert_called_with("/usr/bin/apt-get --force-yes --assume-yes install some_package")
 
 
   @patch.object(shell, "call")

+ 6 - 4
ambari-server/src/main/resources/stacks/HDP/1.3.2/hooks/before-INSTALL/scripts/shared_initialization.py

@@ -102,8 +102,10 @@ def set_uid(user, user_dirs):
           not_if = format("test $(id -u {user}) -gt 1000"))
 
 def install_packages():
-  Package("unzip")
-  Package("net-snmp")
+  packages = {"redhat": ["net-snmp-utils", "net-snmp"],
+              "suse": ["net-snmp"],
+              "all": ["unzip"]
+              }
   
-  if System.get_instance().os_family != "suse":
-    Package("net-snmp-utils")
+  Package(packages['all'])
+  Package(packages[System.get_instance().os_family])

+ 7 - 4
ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-INSTALL/scripts/shared_initialization.py

@@ -120,8 +120,11 @@ def set_uid(user, user_dirs):
           not_if = format("test $(id -u {user}) -gt 1000"))
 
 def install_packages():
-  Package("unzip")
-  Package("net-snmp")
+  packages = {"redhat": ["net-snmp-utils", "net-snmp"],
+              "suse": ["net-snmp"],
+              "debian": ["snmp", "snmpd"],
+              "all": ["unzip", "curl"]
+              }
   
-  if System.get_instance().os_family != "suse":
-    Package("net-snmp-utils")
+  Package(packages['all'])
+  Package(packages[System.get_instance().os_family])

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

@@ -99,13 +99,35 @@
         <osSpecific>
           <osFamily>any</osFamily>
           <packages>
+            <package>
+              <type>rpm</type>
+              <name>hadoop</name>
+            </package>
+            <package>
+              <type>rpm</type>
+              <name>hadoop-lzo</name>
+            </package>
+          </packages>
+        </osSpecific>
+        
+        <osSpecific>
+          <osFamily>redhat5,redhat6,suse11</osFamily>
+          <packages>
+            <package>
+              <type>rpm</type>
+              <name>snappy</name>
+            </package>
+            <package>
+              <type>rpm</type>
+              <name>snappy-devel</name>
+            </package>
             <package>
               <type>rpm</type>
               <name>lzo</name>
             </package>
             <package>
               <type>rpm</type>
-              <name>hadoop</name>
+              <name>hadoop-lzo-native</name>
             </package>
             <package>
               <type>rpm</type>
@@ -113,26 +135,41 @@
             </package>
             <package>
               <type>rpm</type>
-              <name>hadoop-lzo</name>
+              <name>ambari-log4j</name>
             </package>
+          </packages>
+        </osSpecific>
+        
+        <osSpecific>
+          <osFamily>debian12</osFamily>
+          <packages>
             <package>
               <type>rpm</type>
-              <name>hadoop-lzo-native</name>
+              <name>libsnappy1</name>
             </package>
             <package>
               <type>rpm</type>
-              <name>snappy</name>
+              <name>libsnappy-dev</name>
             </package>
             <package>
               <type>rpm</type>
-              <name>snappy-devel</name>
+              <name>liblzo2-2</name>
             </package>
             <package>
               <type>rpm</type>
-              <name>ambari-log4j</name>
+              <name>hadoop-hdfs</name>
+            </package>
+            <package>
+              <type>rpm</type>
+              <name>libhdfs0</name>
+            </package>
+            <package>
+              <type>rpm</type>
+              <name>libhdfs0-dev</name>
             </package>
           </packages>
         </osSpecific>
+            
       </osSpecifics>
 
       <commandScript>

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

@@ -50,22 +50,39 @@
           <packages>
             <package>
               <type>rpm</type>
-              <name>oozie.noarch</name>
+              <name>oozie</name>
             </package>
             <package>
               <type>rpm</type>
-              <name>oozie-client.noarch</name>
+              <name>oozie-client</name>
             </package>
+            <package>
+              <type>rpm</type>
+              <name>mysql-connector-java</name>
+            </package>
+          </packages>
+        </osSpecific>
+        
+       <osSpecific>
+          <osFamily>redhat5,redhat6,suse11</osFamily>
+          <packages>
             <package>
               <type>rpm</type>
               <name>extjs-2.2-1</name>
             </package>
+          </packages>
+        </osSpecific>
+        
+        <osSpecific>
+          <osFamily>debian12</osFamily>
+          <packages>
             <package>
               <type>rpm</type>
-              <name>mysql-connector-java</name>
+              <name>extjs</name>
             </package>
           </packages>
         </osSpecific>
+        
       </osSpecifics>
 
       <commandScript>

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

@@ -30,15 +30,11 @@
           <packages>
             <package>
               <type>rpm</type>
-              <name>oozie.noarch</name>
+              <name>oozie</name>
             </package>
             <package>
               <type>rpm</type>
-              <name>oozie-client.noarch</name>
-            </package>
-            <package>
-              <type>rpm</type>
-              <name>extjs-2.2-1</name>
+              <name>oozie-client</name>
             </package>
             <package>
               <type>rpm</type>
@@ -54,6 +50,27 @@
             </package>
           </packages>
         </osSpecific>
+        
+        <osSpecific>
+          <osFamily>redhat5,redhat6,suse11</osFamily>
+          <packages>
+            <package>
+              <type>rpm</type>
+              <name>extjs-2.2-1</name>
+            </package>
+          </packages>
+        </osSpecific>
+        
+        <osSpecific>
+          <osFamily>debian12</osFamily>
+          <packages>
+            <package>
+              <type>rpm</type>
+              <name>extjs</name>
+            </package>
+          </packages>
+        </osSpecific>
+        
       </osSpecifics>
       <configuration-dependencies>
         <config-type>global</config-type>
@@ -62,4 +79,4 @@
       </configuration-dependencies>
     </service>
   </services>
-</metainfo>
+</metainfo>

+ 1 - 0
ambari-server/src/test/python/stacks/2.0.6/hooks/before-INSTALL/test_before_install.py

@@ -88,5 +88,6 @@ class TestHookBeforeInstall(RMFTestCase):
                               gid='hadoop',
                               groups=['users'], )
     self.assertResourceCalled('Package', 'unzip', )
+    self.assertResourceCalled('Package', 'curl', )
     self.assertResourceCalled('Package', 'net-snmp', )
     self.assertNoMoreResources()