From 39f5e815b82e30058ae96922ce26fc6fa81449b1 Mon Sep 17 00:00:00 2001 From: James Bromberger Date: Wed, 25 Dec 2013 12:47:17 +0000 Subject: [PATCH] Process cloud config tasks only if they are configured. --- plugins/cloud_init/__init__.py | 11 ++++++++++- plugins/cloud_init/tasks.py | 10 +++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/plugins/cloud_init/__init__.py b/plugins/cloud_init/__init__.py index d80033f..df3a11c 100644 --- a/plugins/cloud_init/__init__.py +++ b/plugins/cloud_init/__init__.py @@ -27,7 +27,16 @@ def resolve_tasks(tasklist, manifest): from tasks import DisableModules from providers.ec2.tasks.initd import AddEC2InitScripts from common.tasks import initd - tasklist.add(SetUsername, AutoSetMetadataSource, SetMetadataSource, DisableModules) + + options = manifest.plugins['cloud_init'] + tasklist.add(AutoSetMetadataSource) + if 'username' in options: + tasklist.add(SetUsername) + if 'disable_modules' in options: + tasklist.add(DisableModules) + if 'metadata_sources' in options: + tasklist.add(SetMetadataSource) + tasklist.remove(AddEC2InitScripts, initd.AddExpandRoot, initd.AdjustExpandRootScript, diff --git a/plugins/cloud_init/tasks.py b/plugins/cloud_init/tasks.py index df8f917..5613a56 100644 --- a/plugins/cloud_init/tasks.py +++ b/plugins/cloud_init/tasks.py @@ -68,9 +68,13 @@ class DisableModules(Task): patterns = patterns + ")$" regex = re.compile(patterns) - f = open(info.root + "/etc/cloud/cloud.cfg") - lines = f.readlines() - f.close() + try: + f = open(info.root + "/etc/cloud/cloud.cfg") + lines = f.readlines() + f.close() + except: + print "Cannot read cloud.cfg" + return -1 f = open(info.root + "/etc/cloud/cloud.cfg", "w") for line in lines: