summaryrefslogtreecommitdiff
path: root/cloudinit/config/cc_puppet.py
diff options
context:
space:
mode:
authorCraig Tracey <craigtracey@gmail.com>2013-01-27 21:48:03 -0500
committerCraig Tracey <craigtracey@gmail.com>2013-01-27 21:48:03 -0500
commitdc3ebfe2416028b78b6a846e939201d894b2c9b6 (patch)
tree2bb3ee3e3ffb6be44a66639934815fe6138c66e0 /cloudinit/config/cc_puppet.py
parentcabd9653546586d2370d9c1d81f14e12dd28b94b (diff)
downloadvyos-cloud-init-dc3ebfe2416028b78b6a846e939201d894b2c9b6.tar.gz
vyos-cloud-init-dc3ebfe2416028b78b6a846e939201d894b2c9b6.zip
Adding package versioning logic to package_command
This change adds the ability to provide specific package versions to Distro.install_packages and subsequently Distro.package_command. In order to effectively use Distro.install_packages, one is now able to pass a variety of formats in order to easily manage package requirements. These are examples of what can be passed: - "package" - ["package1","package2"] - ("package",) - ("package", "version") - [("package1",)("package2",)] - [("package1", "version1"),("package2","version2")] This change also adds the option to install a specific version for the puppet configuration module. This is especially important here as successful puppet deployments are highly reliant on specific puppet versions.
Diffstat (limited to 'cloudinit/config/cc_puppet.py')
-rw-r--r--cloudinit/config/cc_puppet.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/cloudinit/config/cc_puppet.py b/cloudinit/config/cc_puppet.py
index e9a0a0f4..471a1a8a 100644
--- a/cloudinit/config/cc_puppet.py
+++ b/cloudinit/config/cc_puppet.py
@@ -59,8 +59,14 @@ def handle(name, cfg, cloud, log, _args):
# Start by installing the puppet package if necessary...
install = util.get_cfg_option_bool(puppet_cfg, 'install', True)
- if install:
- cloud.distro.install_packages(["puppet"])
+ version = util.get_cfg_option_str(puppet_cfg, 'version', None)
+ if not install and version:
+ log.warn(("Puppet install set false but version supplied,"
+ " doing nothing."))
+ elif install:
+ log.debug(("Attempting to install puppet %s,"),
+ version if version else 'latest')
+ cloud.distro.install_packages(('puppet', version))
# ... and then update the puppet configuration
if 'conf' in puppet_cfg: