From: Travis Rhoden Date: Wed, 5 Aug 2015 17:39:24 +0000 (-0700) Subject: [RM-12480] Allow kwargs and extra_install_flags for install() X-Git-Tag: v1.5.27~2^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bccbca0a35ce722288dceee066401e2bc7ca0eb7;p=ceph-deploy.git [RM-12480] Allow kwargs and extra_install_flags for install() Refs: #12480 Signed-off-by: Travis Rhoden --- diff --git a/ceph_deploy/util/pkg_managers.py b/ceph_deploy/util/pkg_managers.py index 13fceef..4785065 100644 --- a/ceph_deploy/util/pkg_managers.py +++ b/ceph_deploy/util/pkg_managers.py @@ -199,7 +199,7 @@ class PackageManager(object): **kw ) - def install(self, packages): + def install(self, packages, **kw): """Install packages on remote node""" raise NotImplementedError() @@ -232,15 +232,21 @@ class RPMManagerBase(PackageManager): executable = None name = None - def install(self, packages): + def install(self, packages, **kw): if isinstance(packages, str): packages = [packages] + extra_flags = kw.pop('extra_install_flags', None) cmd = [ self.executable, '-y', 'install', ] + if extra_flags: + if isinstance(extra_flags, str): + extra_flags = [extra_flags] + cmd.extend(extra_flags) + cmd.extend(packages) return self._run(cmd) @@ -344,15 +350,20 @@ class Apt(PackageManager): ] name = 'apt' - def install(self, packages, force_confnew=False): + def install(self, packages, force_confnew=False, **kw): if isinstance(packages, str): packages = [packages] + extra_flags = kw.pop('extra_install_flags', None) cmd = self.executable + [ '--no-install-recommends', 'install' ] + if extra_flags: + if isinstance(extra_flags, str): + extra_flags = [extra_flags] + cmd.extend(extra_flags) if force_confnew: cmd.extend(['-o', 'Dpkg::Options::=--force-confnew']) cmd.extend(packages) @@ -430,11 +441,16 @@ class Zypper(PackageManager): ] name = 'zypper' - def install(self, packages): + def install(self, packages, **kw): if isinstance(packages, str): packages = [packages] + extra_flags = kw.pop('extra_install_flags', None) cmd = self.executable + ['install'] + if extra_flags: + if isinstance(extra_flags, str): + extra_flags = [extra_flags] + cmd.extend(extra_flags) cmd.extend(packages) return self._run(cmd)