AMBARI-14811. RU/EU 'Install packages' fail on centos and suse on non-root (Andrew Onischuk via alejandro)
diff --git a/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py b/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py
index f68e3b1..821df77 100644
--- a/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py
+++ b/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py
@@ -170,16 +170,16 @@
package_manager_cmd = ""
if OSCheck.is_redhat_family():
- package_manager_cmd = "/usr/bin/yum -q clean metadata"
+ package_manager_cmd = ("/usr/bin/yum", "clean", "metadata")
if OSCheck.is_suse_family():
- package_manager_cmd = "/usr/bin/zypper -q -n clean"
+ package_manager_cmd = ("/usr/bin/zypper", "-q", "-n", "clean")
if OSCheck.is_ubuntu_family():
return
Logger.debug("Clearing repo manager metadata")
- Execute(package_manager_cmd, logoutput=False)
+ Execute(package_manager_cmd, logoutput=False, sudo=True)
def _create_config_links_if_necessary(self, stack_id, stack_version):
"""
diff --git a/ambari-server/src/test/python/custom_actions/TestInstallPackages.py b/ambari-server/src/test/python/custom_actions/TestInstallPackages.py
index 59aab44..423ae9e 100644
--- a/ambari-server/src/test/python/custom_actions/TestInstallPackages.py
+++ b/ambari-server/src/test/python/custom_actions/TestInstallPackages.py
@@ -104,9 +104,10 @@
mirror_list=None,
append_to_file=True,
)
- self.assertResourceCalled('Execute', '/usr/bin/yum -q clean metadata',
- logoutput = False,
- )
+ self.assertResourceCalled('Execute', ('/usr/bin/yum', 'clean', 'metadata'),
+ logoutput = False,
+ sudo = True,
+ )
self.assertResourceCalled('Package', 'fuse')
self.assertResourceCalled('Package', 'fuse-libs')
self.assertResourceCalled('Package', 'hadoop_2_2_*', use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'], skip_repos=['HDP-*'])
@@ -167,9 +168,10 @@
mirror_list=None,
append_to_file=True,
)
- self.assertResourceCalled('Execute', '/usr/bin/zypper -q -n clean',
- logoutput = False,
- )
+ self.assertResourceCalled('Execute', ('/usr/bin/zypper', '-q', '-n', 'clean'),
+ logoutput = False,
+ sudo = True,
+ )
self.assertResourceCalled('Package', 'fuse')
self.assertResourceCalled('Package', 'libfuse2')
self.assertResourceCalled('Package', 'hadoop_2_2_0_1_885*', use_repos=['base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'], skip_repos=[])
@@ -233,9 +235,10 @@
mirror_list=None,
append_to_file=True,
)
- self.assertResourceCalled('Execute', '/usr/bin/yum -q clean metadata',
- logoutput = False,
- )
+ self.assertResourceCalled('Execute', ('/usr/bin/yum', 'clean', 'metadata'),
+ logoutput = False,
+ sudo = True,
+ )
self.assertResourceCalled('Package', 'fuse')
self.assertResourceCalled('Package', 'fuse-libs')
self.assertResourceCalled('Package', 'hadoop_2_2_*', use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'], skip_repos=['HDP-*'])
@@ -314,9 +317,10 @@
mirror_list=None,
append_to_file=True,
)
- self.assertResourceCalled('Execute', '/usr/bin/yum -q clean metadata',
- logoutput = False,
- )
+ self.assertResourceCalled('Execute', ('/usr/bin/yum', 'clean', 'metadata'),
+ logoutput = False,
+ sudo = True,
+ )
self.assertNoMoreResources()
TestInstallPackages._install_failed = False
@@ -373,9 +377,10 @@
mirror_list=None,
append_to_file=True,
)
- self.assertResourceCalled('Execute', '/usr/bin/zypper -q -n clean',
- logoutput = False,
- )
+ self.assertResourceCalled('Execute', ('/usr/bin/zypper', '-q', '-n', 'clean'),
+ logoutput = False,
+ sudo = True,
+ )
self.assertResourceCalled('Package', 'fuse')
self.assertResourceCalled('Package', 'libfuse2')
self.assertResourceCalled('Package', 'hadoop_2_2_0_1_885*', use_repos=['base', 'HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'], skip_repos=[])