From d1d829e6aceba61532041d8499dc4ffd8055fbc2 Mon Sep 17 00:00:00 2001 From: Steve Baker Date: Tue, 8 Jul 2014 12:14:28 +1200 Subject: merge.py --hot to process and generate HOT This adds a --hot flag to merge.py which will assume source templates are in the HOT format, and generate a HOT template artifact. Tests have also been ported to HOT, along with some minor corrections to the existing tests to make the source and result templates valid heat templates. Partial-Blueprint: tripleo-juno-remove-mergepy Change-Id: If18ff79f89456123c884a1ab2f910ce4cc9a6e0b --- examples/launchconfig1.yaml | 1 + examples/launchconfig1_hot.yaml | 24 ++ examples/launchconfig2.yaml | 1 + examples/launchconfig2_hot.yaml | 20 ++ examples/launchconfig_result_hot.yaml | 43 +++ examples/lib_hot.yaml | 13 + examples/scale1.yaml | 1 + examples/scale1_hot.yaml | 32 +++ examples/scale2_hot.yaml | 69 +++++ examples/scale_map.yaml | 1 + examples/scale_map2_hot.yaml | 54 ++++ examples/scale_map_hot.yaml | 56 ++++ examples/scale_map_result_hot.yaml | 367 +++++++++++++++++++++++++ examples/scale_result_hot.yaml | 193 +++++++++++++ examples/source.yaml | 5 +- examples/source2_hot.yaml | 4 + examples/source2_lib_result_hot.yaml | 16 ++ examples/source_hot.yaml | 16 ++ examples/source_include_subkey.yaml | 1 + examples/source_include_subkey_hot.yaml | 11 + examples/source_include_subkey_result_hot.yaml | 14 + examples/source_lib_result.yaml | 6 +- examples/source_lib_result_hot.yaml | 24 ++ 23 files changed, 967 insertions(+), 5 deletions(-) create mode 100644 examples/launchconfig1_hot.yaml create mode 100644 examples/launchconfig2_hot.yaml create mode 100644 examples/launchconfig_result_hot.yaml create mode 100644 examples/lib_hot.yaml create mode 100644 examples/scale1_hot.yaml create mode 100644 examples/scale2_hot.yaml create mode 100644 examples/scale_map2_hot.yaml create mode 100644 examples/scale_map_hot.yaml create mode 100644 examples/scale_map_result_hot.yaml create mode 100644 examples/scale_result_hot.yaml create mode 100644 examples/source2_hot.yaml create mode 100644 examples/source2_lib_result_hot.yaml create mode 100644 examples/source_hot.yaml create mode 100644 examples/source_include_subkey_hot.yaml create mode 100644 examples/source_include_subkey_result_hot.yaml create mode 100644 examples/source_lib_result_hot.yaml (limited to 'examples') diff --git a/examples/launchconfig1.yaml b/examples/launchconfig1.yaml index 9127eab9..70ea2463 100644 --- a/examples/launchconfig1.yaml +++ b/examples/launchconfig1.yaml @@ -1,3 +1,4 @@ +HeatTemplateFormatVersion: '2012-12-12' Parameters: A: Type: String diff --git a/examples/launchconfig1_hot.yaml b/examples/launchconfig1_hot.yaml new file mode 100644 index 00000000..1354f469 --- /dev/null +++ b/examples/launchconfig1_hot.yaml @@ -0,0 +1,24 @@ +heat_template_version: 2013-05-23 +parameters: + A: + type: string + default: test1 + B: + type: string + default: test2 + resource1Image: + type: string + default: resource1 +resources: + notcomputeConfigBase: + type: AWS::AutoScaling::LaunchConfiguration + metadata: + OpenStack::Role: notcomputeConfig + a: {get_param: A} + b: {get_param: B} + resource1: + type: OS::Nova::Server + properties: + flavor: test_flavor + image: {get_param: resource1Image} + key_name: test_key diff --git a/examples/launchconfig2.yaml b/examples/launchconfig2.yaml index 1681637b..3ced0cc4 100644 --- a/examples/launchconfig2.yaml +++ b/examples/launchconfig2.yaml @@ -1,3 +1,4 @@ +HeatTemplateFormatVersion: '2012-12-12' Parameters: C: Type: String diff --git a/examples/launchconfig2_hot.yaml b/examples/launchconfig2_hot.yaml new file mode 100644 index 00000000..3bd5549d --- /dev/null +++ b/examples/launchconfig2_hot.yaml @@ -0,0 +1,20 @@ +heat_template_version: 2013-05-23 +parameters: + C: + type: string + default: test3 + resource2Image: + type: string + default: resource2 +resources: + notcomputeConfigMixin: + type: AWS::AutoScaling::LaunchConfiguration + metadata: + OpenStack::Role: notcomputeConfig + c: {get_param: C} + resource2: + type: OS::Nova::Server + properties: + flavor: test_flavor + image: {get_param: resource2Image} + key_name: test_key diff --git a/examples/launchconfig_result_hot.yaml b/examples/launchconfig_result_hot.yaml new file mode 100644 index 00000000..e3019f20 --- /dev/null +++ b/examples/launchconfig_result_hot.yaml @@ -0,0 +1,43 @@ +description: examples/launchconfig1_hot.yaml,examples/launchconfig2_hot.yaml +heat_template_version: '2013-05-23' +parameters: + A: + default: test1 + type: string + B: + default: test2 + type: string + C: + default: test3 + type: string + resource1Image: + default: resource1 + type: string + resource2Image: + default: resource2 + type: string +resources: + notcomputeConfig: + metadata: + OpenStack::Role: notcomputeConfig + a: + get_param: A + b: + get_param: B + c: + get_param: C + type: AWS::AutoScaling::LaunchConfiguration + resource1: + properties: + flavor: test_flavor + image: + get_param: resource1Image + key_name: test_key + type: OS::Nova::Server + resource2: + properties: + flavor: test_flavor + image: + get_param: resource2Image + key_name: test_key + type: OS::Nova::Server diff --git a/examples/lib_hot.yaml b/examples/lib_hot.yaml new file mode 100644 index 00000000..b5af05e4 --- /dev/null +++ b/examples/lib_hot.yaml @@ -0,0 +1,13 @@ +parameters: + ImportantValue: + default: a_default + type: string + BImage: + type: string +resources: + GenericB: + type: OS::Nova::Server + properties: + image: {get_param: BImage} + metadata: + my_meta: {get_param: ImportantValue} diff --git a/examples/scale1.yaml b/examples/scale1.yaml index bbe618da..6acb6049 100644 --- a/examples/scale1.yaml +++ b/examples/scale1.yaml @@ -1,3 +1,4 @@ +HeatTemplateFormatVersion: '2012-12-12' Resources: ComputeUser: Type: AWS::IAM::User diff --git a/examples/scale1_hot.yaml b/examples/scale1_hot.yaml new file mode 100644 index 00000000..5597bbbf --- /dev/null +++ b/examples/scale1_hot.yaml @@ -0,0 +1,32 @@ +heat_template_version: 2013-05-23 +resources: + ComputeUser: + type: AWS::IAM::User + properties: + Policies: [ { get_param: ComputeAccessPolicy } ] + GlobalAccessPolicy: + type: OS::Heat::AccessPolicy + NovaCompute0Key: + type: FileInclude + Path: examples/scale2_hot.yaml + SubKey: resources.NovaCompute0Key + NovaCompute0CompletionCondition: + type: FileInclude + Path: examples/scale2_hot.yaml + SubKey: resources.NovaCompute0CompletionCondition + NovaCompute0CompletionHandle: + type: FileInclude + Path: examples/scale2_hot.yaml + SubKey: resources.NovaCompute0CompletionHandle + NovaCompute0Config: + type: FileInclude + Path: examples/scale2_hot.yaml + SubKey: resources.NovaCompute0Config + parameters: + ComputeImage: "123" + RabbitUserName: "guest" + RabbitPassword: "guest" + NovaCompute0: + type: FileInclude + Path: examples/scale2_hot.yaml + SubKey: resources.NovaCompute0 diff --git a/examples/scale2_hot.yaml b/examples/scale2_hot.yaml new file mode 100644 index 00000000..8800a6c8 --- /dev/null +++ b/examples/scale2_hot.yaml @@ -0,0 +1,69 @@ +heat_template_version: 2013-05-23 +parameters: + ComputeImage: + type: string + RabbitUserName: + type: string + RabbitPassword: + type: string + hidden: true +resources: + ComputeAccessPolicy: + type: OS::Heat::AccessPolicy + properties: + AllowedResources: [ NovaCompute0 ] + NovaCompute0Key: + type: AWS::IAM::AccessKey + properties: + UserName: + get_param: ComputeUser + NovaCompute0CompletionCondition: + type: AWS::CloudFormation::WaitCondition + depends_on: notcompute + properties: + Handle: {get_resource: NovaCompute0CompletionHandle} + Count: '1' + Timeout: '1800' + NovaCompute0CompletionHandle: + type: AWS::CloudFormation::WaitConditionHandle + NovaCompute0: + type: OS::Nova::Server + properties: + image: + get_param: ComputeImage + metadata: + os-collect-config: + cfn: + access_key_id: + get_resource: NovaCompute0Key + secret_access_key: + get_attr: [ NovaCompute0Key, SecretAccessKey ] + stack_name: {get_param: 'AWS::StackName'} + path: NovaCompute0Config.Metadata + NovaCompute0Config: + type: AWS::AutoScaling::LaunchConfiguration + metadata: + completion-handle: + get_resource: NovaCompute0CompletionHandle + os-collect-config: + cfn: + access_key_id: + get_resource: NovaCompute0Key + secret_access_key: + get_attr: [ NovaCompute0Key, SecretAccessKey ] + stack_name: {get_param: 'AWS::StackName'} + path: NovaCompute0Config.Metadata + neutron: + ovs: + local_ip: + Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - get_attr: + - NovaCompute0 + - networks + rabbit: + username: {get_param: RabbitUserName} + password: {get_param: RabbitPassword} + diff --git a/examples/scale_map.yaml b/examples/scale_map.yaml index 7c79ad57..08bcbf7c 100644 --- a/examples/scale_map.yaml +++ b/examples/scale_map.yaml @@ -1,3 +1,4 @@ +HeatTemplateFormatVersion: '2012-12-12' Resources: ComputeUser: Type: AWS::IAM::User diff --git a/examples/scale_map2_hot.yaml b/examples/scale_map2_hot.yaml new file mode 100644 index 00000000..b2b6dfbb --- /dev/null +++ b/examples/scale_map2_hot.yaml @@ -0,0 +1,54 @@ +heat_template_version: 2013-05-23 +parameters: + AllHosts: + type: string + ComputeImage: + type: string +resources: + ComputeAccessPolicy: + type: OS::Heat::AccessPolicy + properties: + AllowedResources: [ NovaCompute0 ] + NovaCompute0Key: + type: AWS::IAM::AccessKey + properties: + UserName: + get_param: ComputeUser + NovaCompute0CompletionCondition: + type: AWS::CloudFormation::WaitCondition + depends_on: notcompute + properties: + Handle: {get_resource: NovaCompute0CompletionHandle} + Count: '1' + Timeout: '1800' + NovaCompute0CompletionHandle: + type: AWS::CloudFormation::WaitConditionHandle + NovaCompute0: + type: OS::Nova::Server + properties: + image: + get_param: ComputeImage + metadata: + os-collect-config: + cfn: + access_key_id: + get_resource: NovaCompute0Key + secret_access_key: + get_attr: [ NovaCompute0Key, SecretAccessKey ] + stack_name: {get_param: 'AWS::StackName'} + path: NovaCompute0Config.Metadata + NovaCompute0Config: + type: AWS::AutoScaling::LaunchConfiguration + metadata: + completion-handle: + get_resource: NovaCompute0CompletionHandle + os-collect-config: + cfn: + access_key_id: + get_resource: NovaCompute0Key + secret_access_key: + get_attr: [ NovaCompute0Key, SecretAccessKey ] + stack_name: {get_param: 'AWS::StackName'} + path: NovaCompute0Config.Metadata + hosts: + get_param: AllHosts diff --git a/examples/scale_map_hot.yaml b/examples/scale_map_hot.yaml new file mode 100644 index 00000000..282d49bb --- /dev/null +++ b/examples/scale_map_hot.yaml @@ -0,0 +1,56 @@ +heat_template_version: 2013-05-23 +resources: + ComputeUser: + type: AWS::IAM::User + properties: + Policies: [ { get_param: ComputeAccessPolicy } ] + GlobalAccessPolicy: + type: OS::Heat::AccessPolicy + NovaCompute0Key: + type: FileInclude + Path: examples/scale_map2_hot.yaml + SubKey: resources.NovaCompute0Key + NovaCompute0CompletionCondition: + type: FileInclude + Path: examples/scale_map2_hot.yaml + SubKey: resources.NovaCompute0CompletionCondition + NovaCompute0CompletionHandle: + type: FileInclude + Path: examples/scale_map2_hot.yaml + SubKey: resources.NovaCompute0CompletionHandle + NovaCompute0Config: + type: FileInclude + Path: examples/scale_map2_hot.yaml + SubKey: resources.NovaCompute0Config + parameters: + AllHosts: + list_join: + - "\n" + - Merge::Map: + NovaCompute0: + list_join: + - ' ' + - - Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - get_attr: + - NovaCompute0 + - networks + - Fn::Select: + - name + - get_attr: + - NovaCompute0 + - show + - list_join: + - '.' + - - Fn::Select: + - name + - get_attr: + - NovaCompute0 + - show + - 'local' + NovaCompute0: + type: FileInclude + Path: examples/scale_map2_hot.yaml + SubKey: resources.NovaCompute0 diff --git a/examples/scale_map_result_hot.yaml b/examples/scale_map_result_hot.yaml new file mode 100644 index 00000000..5976e54e --- /dev/null +++ b/examples/scale_map_result_hot.yaml @@ -0,0 +1,367 @@ +description: examples/scale_map_hot.yaml +heat_template_version: '2013-05-23' +resources: + ComputeUser: + properties: + Policies: + - get_param: ComputeAccessPolicy + type: AWS::IAM::User + GlobalAccessPolicy: + type: OS::Heat::AccessPolicy + NovaCompute0: + metadata: + os-collect-config: + cfn: + access_key_id: + get_resource: NovaCompute0Key + path: NovaCompute0Config.Metadata + secret_access_key: + get_attr: + - NovaCompute0Key + - SecretAccessKey + stack_name: + get_param: AWS::StackName + properties: + image: + get_param: ComputeImage + type: OS::Nova::Server + NovaCompute0CompletionCondition: + depends_on: notcompute + properties: + Count: '1' + Handle: + get_resource: NovaCompute0CompletionHandle + Timeout: '1800' + type: AWS::CloudFormation::WaitCondition + NovaCompute0CompletionHandle: + type: AWS::CloudFormation::WaitConditionHandle + NovaCompute0Config: + metadata: + completion-handle: + get_resource: NovaCompute0CompletionHandle + hosts: + list_join: + - ' + + ' + - - list_join: + - ' ' + - - Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - get_attr: + - NovaCompute0 + - networks + - Fn::Select: + - name + - get_attr: + - NovaCompute0 + - show + - list_join: + - . + - - Fn::Select: + - name + - get_attr: + - NovaCompute0 + - show + - local + - list_join: + - ' ' + - - Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - get_attr: + - NovaCompute1 + - networks + - Fn::Select: + - name + - get_attr: + - NovaCompute1 + - show + - list_join: + - . + - - Fn::Select: + - name + - get_attr: + - NovaCompute1 + - show + - local + - list_join: + - ' ' + - - Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - get_attr: + - NovaCompute2 + - networks + - Fn::Select: + - name + - get_attr: + - NovaCompute2 + - show + - list_join: + - . + - - Fn::Select: + - name + - get_attr: + - NovaCompute2 + - show + - local + os-collect-config: + cfn: + access_key_id: + get_resource: NovaCompute0Key + path: NovaCompute0Config.Metadata + secret_access_key: + get_attr: + - NovaCompute0Key + - SecretAccessKey + stack_name: + get_param: AWS::StackName + type: AWS::AutoScaling::LaunchConfiguration + NovaCompute0Key: + properties: + UserName: + get_param: ComputeUser + type: AWS::IAM::AccessKey + NovaCompute1: + metadata: + os-collect-config: + cfn: + access_key_id: + get_resource: NovaCompute1Key + path: NovaCompute1Config.Metadata + secret_access_key: + get_attr: + - NovaCompute1Key + - SecretAccessKey + stack_name: + get_param: AWS::StackName + properties: + image: + get_param: ComputeImage + type: OS::Nova::Server + NovaCompute1CompletionCondition: + depends_on: notcompute + properties: + Count: '1' + Handle: + get_resource: NovaCompute1CompletionHandle + Timeout: '1800' + type: AWS::CloudFormation::WaitCondition + NovaCompute1CompletionHandle: + type: AWS::CloudFormation::WaitConditionHandle + NovaCompute1Config: + metadata: + completion-handle: + get_resource: NovaCompute1CompletionHandle + hosts: + list_join: + - ' + + ' + - - list_join: + - ' ' + - - Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - get_attr: + - NovaCompute0 + - networks + - Fn::Select: + - name + - get_attr: + - NovaCompute0 + - show + - list_join: + - . + - - Fn::Select: + - name + - get_attr: + - NovaCompute0 + - show + - local + - list_join: + - ' ' + - - Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - get_attr: + - NovaCompute1 + - networks + - Fn::Select: + - name + - get_attr: + - NovaCompute1 + - show + - list_join: + - . + - - Fn::Select: + - name + - get_attr: + - NovaCompute1 + - show + - local + - list_join: + - ' ' + - - Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - get_attr: + - NovaCompute2 + - networks + - Fn::Select: + - name + - get_attr: + - NovaCompute2 + - show + - list_join: + - . + - - Fn::Select: + - name + - get_attr: + - NovaCompute2 + - show + - local + os-collect-config: + cfn: + access_key_id: + get_resource: NovaCompute1Key + path: NovaCompute1Config.Metadata + secret_access_key: + get_attr: + - NovaCompute1Key + - SecretAccessKey + stack_name: + get_param: AWS::StackName + type: AWS::AutoScaling::LaunchConfiguration + NovaCompute1Key: + properties: + UserName: + get_param: ComputeUser + type: AWS::IAM::AccessKey + NovaCompute2: + metadata: + os-collect-config: + cfn: + access_key_id: + get_resource: NovaCompute2Key + path: NovaCompute2Config.Metadata + secret_access_key: + get_attr: + - NovaCompute2Key + - SecretAccessKey + stack_name: + get_param: AWS::StackName + properties: + image: + get_param: ComputeImage + type: OS::Nova::Server + NovaCompute2CompletionCondition: + depends_on: notcompute + properties: + Count: '1' + Handle: + get_resource: NovaCompute2CompletionHandle + Timeout: '1800' + type: AWS::CloudFormation::WaitCondition + NovaCompute2CompletionHandle: + type: AWS::CloudFormation::WaitConditionHandle + NovaCompute2Config: + metadata: + completion-handle: + get_resource: NovaCompute2CompletionHandle + hosts: + list_join: + - ' + + ' + - - list_join: + - ' ' + - - Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - get_attr: + - NovaCompute0 + - networks + - Fn::Select: + - name + - get_attr: + - NovaCompute0 + - show + - list_join: + - . + - - Fn::Select: + - name + - get_attr: + - NovaCompute0 + - show + - local + - list_join: + - ' ' + - - Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - get_attr: + - NovaCompute1 + - networks + - Fn::Select: + - name + - get_attr: + - NovaCompute1 + - show + - list_join: + - . + - - Fn::Select: + - name + - get_attr: + - NovaCompute1 + - show + - local + - list_join: + - ' ' + - - Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - get_attr: + - NovaCompute2 + - networks + - Fn::Select: + - name + - get_attr: + - NovaCompute2 + - show + - list_join: + - . + - - Fn::Select: + - name + - get_attr: + - NovaCompute2 + - show + - local + os-collect-config: + cfn: + access_key_id: + get_resource: NovaCompute2Key + path: NovaCompute2Config.Metadata + secret_access_key: + get_attr: + - NovaCompute2Key + - SecretAccessKey + stack_name: + get_param: AWS::StackName + type: AWS::AutoScaling::LaunchConfiguration + NovaCompute2Key: + properties: + UserName: + get_param: ComputeUser + type: AWS::IAM::AccessKey diff --git a/examples/scale_result_hot.yaml b/examples/scale_result_hot.yaml new file mode 100644 index 00000000..17c05147 --- /dev/null +++ b/examples/scale_result_hot.yaml @@ -0,0 +1,193 @@ +description: examples/scale1_hot.yaml +heat_template_version: '2013-05-23' +resources: + ComputeUser: + properties: + Policies: + - get_param: ComputeAccessPolicy + type: AWS::IAM::User + GlobalAccessPolicy: + type: OS::Heat::AccessPolicy + NovaCompute0: + metadata: + os-collect-config: + cfn: + access_key_id: + get_resource: NovaCompute0Key + path: NovaCompute0Config.Metadata + secret_access_key: + get_attr: + - NovaCompute0Key + - SecretAccessKey + stack_name: + get_param: AWS::StackName + properties: + image: + get_param: ComputeImage + type: OS::Nova::Server + NovaCompute0CompletionCondition: + depends_on: notcompute + properties: + Count: '1' + Handle: + get_resource: NovaCompute0CompletionHandle + Timeout: '1800' + type: AWS::CloudFormation::WaitCondition + NovaCompute0CompletionHandle: + type: AWS::CloudFormation::WaitConditionHandle + NovaCompute0Config: + metadata: + completion-handle: + get_resource: NovaCompute0CompletionHandle + neutron: + ovs: + local_ip: + Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - get_attr: + - NovaCompute0 + - networks + os-collect-config: + cfn: + access_key_id: + get_resource: NovaCompute0Key + path: NovaCompute0Config.Metadata + secret_access_key: + get_attr: + - NovaCompute0Key + - SecretAccessKey + stack_name: + get_param: AWS::StackName + rabbit: + password: guest + username: guest + type: AWS::AutoScaling::LaunchConfiguration + NovaCompute0Key: + properties: + UserName: + get_param: ComputeUser + type: AWS::IAM::AccessKey + NovaCompute1: + metadata: + os-collect-config: + cfn: + access_key_id: + get_resource: NovaCompute1Key + path: NovaCompute1Config.Metadata + secret_access_key: + get_attr: + - NovaCompute1Key + - SecretAccessKey + stack_name: + get_param: AWS::StackName + properties: + image: + get_param: ComputeImage + type: OS::Nova::Server + NovaCompute1CompletionCondition: + depends_on: notcompute + properties: + Count: '1' + Handle: + get_resource: NovaCompute1CompletionHandle + Timeout: '1800' + type: AWS::CloudFormation::WaitCondition + NovaCompute1CompletionHandle: + type: AWS::CloudFormation::WaitConditionHandle + NovaCompute1Config: + metadata: + completion-handle: + get_resource: NovaCompute1CompletionHandle + neutron: + ovs: + local_ip: + Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - get_attr: + - NovaCompute1 + - networks + os-collect-config: + cfn: + access_key_id: + get_resource: NovaCompute1Key + path: NovaCompute1Config.Metadata + secret_access_key: + get_attr: + - NovaCompute1Key + - SecretAccessKey + stack_name: + get_param: AWS::StackName + rabbit: + password: guest + username: guest + type: AWS::AutoScaling::LaunchConfiguration + NovaCompute1Key: + properties: + UserName: + get_param: ComputeUser + type: AWS::IAM::AccessKey + NovaCompute2: + metadata: + os-collect-config: + cfn: + access_key_id: + get_resource: NovaCompute2Key + path: NovaCompute2Config.Metadata + secret_access_key: + get_attr: + - NovaCompute2Key + - SecretAccessKey + stack_name: + get_param: AWS::StackName + properties: + image: + get_param: ComputeImage + type: OS::Nova::Server + NovaCompute2CompletionCondition: + depends_on: notcompute + properties: + Count: '1' + Handle: + get_resource: NovaCompute2CompletionHandle + Timeout: '1800' + type: AWS::CloudFormation::WaitCondition + NovaCompute2CompletionHandle: + type: AWS::CloudFormation::WaitConditionHandle + NovaCompute2Config: + metadata: + completion-handle: + get_resource: NovaCompute2CompletionHandle + neutron: + ovs: + local_ip: + Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - get_attr: + - NovaCompute2 + - networks + os-collect-config: + cfn: + access_key_id: + get_resource: NovaCompute2Key + path: NovaCompute2Config.Metadata + secret_access_key: + get_attr: + - NovaCompute2Key + - SecretAccessKey + stack_name: + get_param: AWS::StackName + rabbit: + password: guest + username: guest + type: AWS::AutoScaling::LaunchConfiguration + NovaCompute2Key: + properties: + UserName: + get_param: ComputeUser + type: AWS::IAM::AccessKey diff --git a/examples/source.yaml b/examples/source.yaml index 89707a7b..88f0bde7 100644 --- a/examples/source.yaml +++ b/examples/source.yaml @@ -1,7 +1,8 @@ +HeatTemplateFormatVersion: '2012-12-12' Parameters: SourceImage: - Type: String - Default: my_image + Type: String + Default: my_image Resources: A: Type: OS::Nova::Server diff --git a/examples/source2_hot.yaml b/examples/source2_hot.yaml new file mode 100644 index 00000000..e3861a6c --- /dev/null +++ b/examples/source2_hot.yaml @@ -0,0 +1,4 @@ +__include__: + path: examples/lib_hot.yaml + params: + ImportantValue: Foo diff --git a/examples/source2_lib_result_hot.yaml b/examples/source2_lib_result_hot.yaml new file mode 100644 index 00000000..3f891e47 --- /dev/null +++ b/examples/source2_lib_result_hot.yaml @@ -0,0 +1,16 @@ +description: examples/source2_hot.yaml +heat_template_version: '2013-05-23' +parameters: + BImage: + type: string + ImportantValue: + default: a_default + type: string +resources: + GenericB: + metadata: + my_meta: Foo + properties: + image: + get_param: BImage + type: OS::Nova::Server diff --git a/examples/source_hot.yaml b/examples/source_hot.yaml new file mode 100644 index 00000000..e8dd59a3 --- /dev/null +++ b/examples/source_hot.yaml @@ -0,0 +1,16 @@ +heat_template_version: 2013-05-23 +parameters: + SourceImage: + type: string + default: my_image +resources: + A: + type: OS::Nova::Server + properties: + image: {get_param: SourceImage} + B: + type: FileInclude + Path: examples/lib_hot.yaml + SubKey: resources.GenericB + parameters: + ImportantValue: {list_join: [ '', ['one', 'two', 'three']]} diff --git a/examples/source_include_subkey.yaml b/examples/source_include_subkey.yaml index be344cd8..37591d80 100644 --- a/examples/source_include_subkey.yaml +++ b/examples/source_include_subkey.yaml @@ -1,3 +1,4 @@ +HeatTemplateFormatVersion: '2012-12-12' Parameters: Foo: Type: String diff --git a/examples/source_include_subkey_hot.yaml b/examples/source_include_subkey_hot.yaml new file mode 100644 index 00000000..b330efe6 --- /dev/null +++ b/examples/source_include_subkey_hot.yaml @@ -0,0 +1,11 @@ +heat_template_version: 2013-05-23 +parameters: + Foo: + type: string +resources: + __include__: + path: examples/lib_hot.yaml + subkey: resources + params: + BImage: + get_param: Foo diff --git a/examples/source_include_subkey_result_hot.yaml b/examples/source_include_subkey_result_hot.yaml new file mode 100644 index 00000000..f8853c23 --- /dev/null +++ b/examples/source_include_subkey_result_hot.yaml @@ -0,0 +1,14 @@ +description: examples/source_include_subkey_hot.yaml +heat_template_version: '2013-05-23' +parameters: + Foo: + type: string +resources: + GenericB: + metadata: + my_meta: + get_param: ImportantValue + properties: + image: + get_param: Foo + type: OS::Nova::Server diff --git a/examples/source_lib_result.yaml b/examples/source_lib_result.yaml index ceb8a321..5844c813 100644 --- a/examples/source_lib_result.yaml +++ b/examples/source_lib_result.yaml @@ -1,9 +1,9 @@ Description: examples/source.yaml HeatTemplateFormatVersion: '2012-12-12' Parameters: - Default: my_image - SourceImage: null - Type: String + SourceImage: + Default: my_image + Type: String Resources: A: Properties: diff --git a/examples/source_lib_result_hot.yaml b/examples/source_lib_result_hot.yaml new file mode 100644 index 00000000..4c07da0c --- /dev/null +++ b/examples/source_lib_result_hot.yaml @@ -0,0 +1,24 @@ +description: examples/source_hot.yaml +heat_template_version: '2013-05-23' +parameters: + SourceImage: + default: my_image + type: string +resources: + A: + properties: + image: + get_param: SourceImage + type: OS::Nova::Server + B: + metadata: + my_meta: + list_join: + - '' + - - one + - two + - three + properties: + image: + get_param: BImage + type: OS::Nova::Server -- cgit 1.2.3-korg