From: Owen Synge Date: Wed, 18 May 2016 13:10:57 +0000 (+0200) Subject: [RM-16979] ceph_deploy.util.pkg_managers: Fix zypper handling X-Git-Tag: v1.5.35~2^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3375c3ae83bb579af084d5649f59a55a195eb147;p=ceph-deploy.git [RM-16979] ceph_deploy.util.pkg_managers: Fix zypper handling zypper can safely ignore non installed packages, with the --ignore-unknown option. Signed-off-by: Owen Synge --- diff --git a/ceph_deploy/util/pkg_managers.py b/ceph_deploy/util/pkg_managers.py index 8291503..69cabd6 100644 --- a/ceph_deploy/util/pkg_managers.py +++ b/ceph_deploy/util/pkg_managers.py @@ -298,22 +298,22 @@ class Zypper(PackageManager): def remove(self, packages, **kw): if isinstance(packages, str): packages = [packages] - for pkg in packages: - extra_flags = kw.pop('extra_remove_flags', None) - cmd = self.executable + ['remove'] - if extra_flags: - if isinstance(extra_flags, str): - extra_flags = [extra_flags] - cmd.extend(extra_flags) - cmd.append(pkg) - stdout, stderr, exitrc = remoto.process.check( - self.remote_conn, - cmd, - **kw - ) - # exitrc is 104 when package(s) not installed. - if not exitrc in [0, 104]: - raise RuntimeError("Failed to execute command: %s" % " ".join(cmd)) + + extra_flags = kw.pop('extra_remove_flags', None) + cmd = self.executable + ['--ignore-unknown', 'remove'] + if extra_flags: + if isinstance(extra_flags, str): + extra_flags = [extra_flags] + cmd.extend(extra_flags) + cmd.extend(packages) + stdout, stderr, exitrc = remoto.process.check( + self.remote_conn, + cmd, + **kw + ) + # exitrc is 104 when package(s) not installed. + if not exitrc in [0, 104]: + raise RuntimeError("Failed to execute command: %s" % " ".join(cmd)) return def clean(self):