diff options
Diffstat (limited to 'cloudinit/distros/__init__.py')
-rw-r--r-- | cloudinit/distros/__init__.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py index 46b67fa3..8fc0da9f 100644 --- a/cloudinit/distros/__init__.py +++ b/cloudinit/distros/__init__.py @@ -39,8 +39,10 @@ from cloudinit.distros.parsers import hosts OSFAMILIES = { 'debian': ['debian', 'ubuntu'], 'redhat': ['fedora', 'rhel'], + 'gentoo': ['gentoo'], 'freebsd': ['freebsd'], - 'suse': ['sles'] + 'suse': ['sles'], + 'arch': ['arch'], } LOG = logging.getLogger(__name__) @@ -53,12 +55,21 @@ class Distro(object): ci_sudoers_fn = "/etc/sudoers.d/90-cloud-init-users" hostname_conf_fn = "/etc/hostname" tz_zone_dir = "/usr/share/zoneinfo" + init_cmd = ['service'] # systemctl, service etc + exclude_modules = [] def __init__(self, name, cfg, paths): self._paths = paths self._cfg = cfg self.name = name + def is_excluded(self, name): + if name in self.exclude_modules: + distro = getattr(self, name, None) or getattr(self, 'osfamily') + LOG.debug(("Skipping module named %s, distro %s excluded"), name, + distro) + return True + @abc.abstractmethod def install_packages(self, pkglist): raise NotImplementedError() |