]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-deploy.git/commitdiff
[RM-12480] Allow kwargs and extra_remove_flags for remove()
authorTravis Rhoden <trhoden@redhat.com>
Wed, 5 Aug 2015 17:29:53 +0000 (10:29 -0700)
committerTravis Rhoden <trhoden@redhat.com>
Wed, 5 Aug 2015 18:58:19 +0000 (11:58 -0700)
Signed-off-by: Travis Rhoden <trhoden@redhat.com>
ceph_deploy/util/pkg_managers.py

index 14d65902e05419079072f8beea81f0be8e25cc87..8b13677d4eb3ad534295d935160dc45ab0afd67d 100644 (file)
@@ -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)