From 45fe01534cda5826158a121cb6e15ffd14a041fe Mon Sep 17 00:00:00 2001 From: Travis Rhoden Date: Fri, 31 Jul 2015 16:46:00 -0700 Subject: [PATCH] [RM-12439] Add Apt Class for pkg management Signed-off-by: Travis Rhoden --- ceph_deploy/util/pkg_managers.py | 48 ++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/ceph_deploy/util/pkg_managers.py b/ceph_deploy/util/pkg_managers.py index 20ab161..a367e6d 100644 --- a/ceph_deploy/util/pkg_managers.py +++ b/ceph_deploy/util/pkg_managers.py @@ -276,3 +276,51 @@ class Yum(RPMManagerBase): if self.remote_info.normalized_release.int_major != 6: package_name = 'yum-priorities' self.install(package_name) + + +class Apt(PackageManager): + """ + Apt package management + """ + + executable = [ + 'env', + 'DEBIAN_FRONTEND=noninteractive', + 'DEBIAN_PRIORITY=critical', + 'apt-get', + '--assume-yes', + '-q', + ] + + def install(self, packages, force_confnew=False): + if isinstance(packages, str): + packages = [packages] + + cmd = self.executable + [ + '--no-install-recommends', + 'install' + ] + + if force_confnew: + cmd.extend(['-o', 'Dpkg::Options::=--force-confnew']) + cmd.extend(packages) + return self._run(cmd) + + def remove(self, packages, purge=False): + if isinstance(packages, str): + packages = [packages] + + cmd = self.executable + [ + '-f', + '--force-yes', + 'remove' + ] + + if purge: + cmd.append('--purge') + cmd.extend(packages) + return self._run(cmd) + + def clean(self): + cmd = self.executable + ['update'] + return self._run(cmd) -- 2.47.3