summaryrefslogtreecommitdiff
path: root/cloudinit/stages.py
diff options
context:
space:
mode:
authorJoshua Harlow <harlowja@gmail.com>2013-01-21 19:51:10 -0800
committerJoshua Harlow <harlowja@gmail.com>2013-01-21 19:51:10 -0800
commit079a670b10ba16420dbb87edf2b6846179b552f6 (patch)
tree2ccdba0196f3d2f370cb030c6cbc6c23f9219d36 /cloudinit/stages.py
parente561742aeab1e8090467f0fa304ee06e82e85f2c (diff)
parent5d4f4df6804995d74e7962f60dcd72b26bcac69b (diff)
downloadvyos-cloud-init-079a670b10ba16420dbb87edf2b6846179b552f6.tar.gz
vyos-cloud-init-079a670b10ba16420dbb87edf2b6846179b552f6.zip
Add support for operating system families
Often it is convenient to classify a distro as being part of an operating system family. for instance, file templates may be identical for both debian and ubuntu, but to support this under the current templating code, one would need multiple templates for the same code. Similarly, configuration handlers often fall into the same bucket: the configuraton is known to work/has been tested on a particular family of operating systems. right now this is handled with a declaration like: distros = ['fedora', 'rhel'] This fix seeks to address both of these issues. it allows for the simplification of the above line to: osfamilies = ['redhat'] It also provides a mechanism for operating system family templates.
Diffstat (limited to 'cloudinit/stages.py')
-rw-r--r--cloudinit/stages.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/cloudinit/stages.py b/cloudinit/stages.py
index 8d3213b4..d7d1dea0 100644
--- a/cloudinit/stages.py
+++ b/cloudinit/stages.py
@@ -529,11 +529,16 @@ class Modules(object):
freq = mod.frequency
if not freq in FREQUENCIES:
freq = PER_INSTANCE
- worked_distros = mod.distros
+
+ worked_distros = set(mod.distros)
+ worked_distros.update(
+ distros.Distro.expand_osfamily(mod.osfamilies))
+
if (worked_distros and d_name not in worked_distros):
LOG.warn(("Module %s is verified on %s distros"
" but not on %s distro. It may or may not work"
- " correctly."), name, worked_distros, d_name)
+ " correctly."), name, list(worked_distros),
+ d_name)
# Use the configs logger and not our own
# TODO(harlowja): possibly check the module
# for having a LOG attr and just give it back