Add FileInclude special type.
authorClint Byrum <clint@fewbar.com>
Wed, 10 Jul 2013 17:44:36 +0000 (10:44 -0700)
committerClint Byrum <clint@fewbar.com>
Wed, 10 Jul 2013 21:11:40 +0000 (14:11 -0700)
We need to be able to combine pieces without uploading bits to an
accessible URL.

Change-Id: If0cec8ce7c77fed786d54dd0af2eb7823c088920

merge.py

index afb6b22..64cb00a 100644 (file)
--- a/merge.py
+++ b/merge.py
@@ -87,6 +87,13 @@ for template_path in templates:
             ikey = '%sImage' % (role)
             end_template['Resources'][role]['Properties']['ImageId'] = {'Ref': ikey}
             end_template['Parameters'][ikey] = {'Type': 'String'}
+        elif rbody['Type'] == 'FileInclude':
+            with open(rbody['Path']) as rfile:
+                include_content = yaml.safe_load(rfile.read())
+                subkeys = rbody.get('SubKey','').split('.')
+                while len(subkeys) and subkeys[0]:
+                    include_content = include_content[subkeys.pop(0)]
+                end_template['Resources'][r] = include_content
         else:
             if r in end_template.get('Resources', {}):
                 if rbody != end_template['Resources'][r]: