From 995c8aca9037632f8767c880656d74ca9346fec7 Mon Sep 17 00:00:00 2001 From: Travis Rhoden Date: Wed, 5 Aug 2015 10:29:53 -0700 Subject: [PATCH] [RM-12480] Allow kwargs and extra_remove_flags for remove() Signed-off-by: Travis Rhoden --- ceph_deploy/util/pkg_managers.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/ceph_deploy/util/pkg_managers.py b/ceph_deploy/util/pkg_managers.py index 14d6590..8b13677 100644 --- a/ceph_deploy/util/pkg_managers.py +++ b/ceph_deploy/util/pkg_managers.py @@ -203,7 +203,7 @@ class PackageManager(object): """Install packages on remote node""" raise NotImplementedError() - def remove(self, packages): + def remove(self, packages, **kw): """Uninstall packages on remote node""" raise NotImplementedError() @@ -250,16 +250,21 @@ class RPMManagerBase(PackageManager): cmd.extend(packages) return self._run(cmd) - def remove(self, packages): + def remove(self, packages, **kw): if isinstance(packages, str): packages = [packages] + extra_flags = kw.pop('extra_remove_flags', None) cmd = [ self.executable, '-y', '-q', 'remove', ] + if extra_flags: + if isinstance(extra_flags, str): + extra_flags = [extra_flags] + cmd.extend(extra_flags) cmd.extend(packages) return self._run(cmd) @@ -377,15 +382,20 @@ class Apt(PackageManager): cmd.extend(packages) return self._run(cmd) - def remove(self, packages, purge=False): + def remove(self, packages, purge=False, **kw): if isinstance(packages, str): packages = [packages] + extra_flags = kw.pop('extra_remove_flags', None) cmd = self.executable + [ '-f', '--force-yes', 'remove' ] + if extra_flags: + if isinstance(extra_flags, str): + extra_flags = [extra_flags] + cmd.extend(extra_flags) if purge: cmd.append('--purge') @@ -462,11 +472,16 @@ class Zypper(PackageManager): cmd.extend(packages) return self._run(cmd) - def remove(self, packages): + def remove(self, packages, **kw): if isinstance(packages, str): packages = [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.extend(packages) return self._run(cmd) -- 2.47.3