heat_integrationtests.functional.test_template_resource
Module¶heat_integrationtests.functional.test_template_resource.
NestedAttributesTest
(*args, **kwargs)[source]¶Bases: heat_integrationtests.functional.functional_base.FunctionalTestsBase
Prove that we can use the template resource references.
env_templ
= '\nresource_registry:\n "My::NestedSecret": nested.yaml\n'¶main_templ
= '\nheat_template_version: 2014-10-16\nresources:\n secret2:\n type: My::NestedSecret\noutputs:\n old_way:\n value: { get_attr: [secret2, nested_str]}\n test_attr1:\n value: { get_attr: [secret2, resource.secret1, value]}\n test_attr2:\n value: { get_attr: [secret2, resource.secret1.value]}\n test_ref:\n value: { get_resource: secret2 }\n'¶heat_integrationtests.functional.test_template_resource.
TemplateResourceAdoptTest
(*args, **kwargs)[source]¶Bases: heat_integrationtests.functional.functional_base.FunctionalTestsBase
Prove that we can do template resource adopt/abandon.
main_template
= "\nHeatTemplateFormatVersion: '2012-12-12'\nResources:\n the_nested:\n Type: the.yaml\n Properties:\n one: my_name\nOutputs:\n identifier:\n Value: {Ref: the_nested}\n value:\n Value: {'Fn::GetAtt': [the_nested, the_str]}\n"¶nested_templ
= "\nHeatTemplateFormatVersion: '2012-12-12'\nParameters:\n one:\n Default: foo\n Type: String\nResources:\n RealRandom:\n Type: OS::Heat::RandomString\n Properties:\n salt: {Ref: one}\nOutputs:\n the_str:\n Value: {'Fn::GetAtt': [RealRandom, value]}\n"¶heat_integrationtests.functional.test_template_resource.
TemplateResourceCheckTest
(*args, **kwargs)[source]¶Bases: heat_integrationtests.functional.functional_base.FunctionalTestsBase
Prove that we can do template resource check.
main_template
= "\nHeatTemplateFormatVersion: '2012-12-12'\nResources:\n the_nested:\n Type: the.yaml\n Properties:\n one: my_name\nOutputs:\n identifier:\n Value: {Ref: the_nested}\n value:\n Value: {'Fn::GetAtt': [the_nested, the_str]}\n"¶nested_templ
= "\nHeatTemplateFormatVersion: '2012-12-12'\nParameters:\n one:\n Default: foo\n Type: String\nResources:\n RealRandom:\n Type: OS::Heat::RandomString\n Properties:\n salt: {Ref: one}\nOutputs:\n the_str:\n Value: {'Fn::GetAtt': [RealRandom, value]}\n"¶heat_integrationtests.functional.test_template_resource.
TemplateResourceErrorMessageTest
(*args, **kwargs)[source]¶Bases: heat_integrationtests.functional.functional_base.FunctionalTestsBase
Prove that nested stack errors don’t suck.
nested_templ
= "\nHeatTemplateFormatVersion: '2012-12-12'\nResources:\n oops:\n Type: OS::Heat::TestResource\n Properties:\n fail: true\n wait_secs: 2\n"¶template
= "\nHeatTemplateFormatVersion: '2012-12-12'\nResources:\n victim:\n Type: fail.yaml\n"¶heat_integrationtests.functional.test_template_resource.
TemplateResourceFacadeTest
(*args, **kwargs)[source]¶Bases: heat_integrationtests.functional.functional_base.FunctionalTestsBase
Prove that we can use ResourceFacade in a HOT template.
main_template
= '\nheat_template_version: 2013-05-23\nresources:\n the_nested:\n type: the.yaml\n metadata:\n foo: bar\noutputs:\n value:\n value: {get_attr: [the_nested, output]}\n'¶nested_templ
= '\nheat_template_version: 2013-05-23\nresources:\n test:\n type: OS::Heat::TestResource\n properties:\n value: {"Fn::Select": [foo, {resource_facade: metadata}]}\noutputs:\n output:\n value: {get_attr: [test, output]}\n '¶heat_integrationtests.functional.test_template_resource.
TemplateResourceNewParamTest
(*args, **kwargs)[source]¶Bases: heat_integrationtests.functional.functional_base.FunctionalTestsBase
main_template
= '\nheat_template_version: 2013-05-23\nresources:\n my_resource:\n type: resource.yaml\n properties:\n value1: foo\n'¶main_template_update
= '\nheat_template_version: 2013-05-23\nresources:\n my_resource:\n type: resource.yaml\n properties:\n value1: foo\n value2: foo\n'¶nested_templ
= '\nheat_template_version: 2013-05-23\nparameters:\n value1:\n type: string\nresources:\n test:\n type: OS::Heat::TestResource\n properties:\n value: {get_param: value1}\n'¶nested_templ_update
= '\nheat_template_version: 2013-05-23\nparameters:\n value1:\n type: string\n value2:\n type: string\nresources:\n test:\n type: OS::Heat::TestResource\n properties:\n value:\n str_replace:\n template: VAL1-VAL2\n params:\n VAL1: {get_param: value1}\n VAL2: {get_param: value2}\n'¶nested_templ_update_fail
= '\nheat_template_version: 2013-05-23\nparameters:\n value1:\n type: string\n value2:\n type: string\nresources:\n test:\n type: OS::Heat::TestResource\n properties:\n fail: True\n value:\n str_replace:\n template: VAL1-VAL2\n params:\n VAL1: {get_param: value1}\n VAL2: {get_param: value2}\n'¶heat_integrationtests.functional.test_template_resource.
TemplateResourceRemovedParamTest
(*args, **kwargs)[source]¶Bases: heat_integrationtests.functional.functional_base.FunctionalTestsBase
main_template
= '\nheat_template_version: 2013-05-23\nparameters:\n value1:\n type: string\n default: foo\nresources:\n my_resource:\n type: resource.yaml\n properties:\n value1: {get_param: value1}\n'¶main_template_update
= '\nheat_template_version: 2013-05-23\nresources:\n my_resource:\n type: resource.yaml\n'¶nested_templ
= '\nheat_template_version: 2013-05-23\nparameters:\n value1:\n type: string\n default: foo\nresources:\n test:\n type: OS::Heat::TestResource\n properties:\n value: {get_param: value1}\n'¶nested_templ_update
= '\nheat_template_version: 2013-05-23\nparameters:\n value1:\n type: string\n default: foo\n value2:\n type: string\n default: bar\nresources:\n test:\n type: OS::Heat::TestResource\n properties:\n value:\n str_replace:\n template: VAL1-VAL2\n params:\n VAL1: {get_param: value1}\n VAL2: {get_param: value2}\n'¶heat_integrationtests.functional.test_template_resource.
TemplateResourceSuspendResumeTest
(*args, **kwargs)[source]¶Bases: heat_integrationtests.functional.functional_base.FunctionalTestsBase
Prove that we can do template resource suspend/resume.
main_template
= '\nheat_template_version: 2014-10-16\nparameters:\nresources:\n the_nested:\n type: the.yaml\n'¶nested_templ
= '\nheat_template_version: 2014-10-16\nresources:\n test_random_string:\n type: OS::Heat::RandomString\n'¶heat_integrationtests.functional.test_template_resource.
TemplateResourceTest
(*args, **kwargs)[source]¶Bases: heat_integrationtests.functional.functional_base.FunctionalTestsBase
Prove that we can use the registry in a nested provider.
env_templ
= '\nresource_registry:\n "OS::Heat::RandomString": nested.yaml\n'¶nested_templ
= '\nheat_template_version: 2013-05-23\nresources:\n secret2:\n type: OS::Heat::RandomString\noutputs:\n value:\n value: { get_attr: [secret2, value] }\n'¶template
= '\nheat_template_version: 2013-05-23\nresources:\n secret1:\n type: OS::Heat::RandomString\noutputs:\n secret-out:\n value: { get_attr: [secret1, value] }\n'¶heat_integrationtests.functional.test_template_resource.
TemplateResourceUpdateFailedTest
(*args, **kwargs)[source]¶Bases: heat_integrationtests.functional.functional_base.FunctionalTestsBase
Prove that we can do updates on a nested stack to fix a stack.
main_template
= "\nHeatTemplateFormatVersion: '2012-12-12'\nResources:\n keypair:\n Type: OS::Nova::KeyPair\n Properties:\n name: replace-this\n save_private_key: false\n server:\n Type: server_fail.yaml\n DependsOn: keypair\n"¶nested_templ
= "\nHeatTemplateFormatVersion: '2012-12-12'\nResources:\n RealRandom:\n Type: OS::Heat::RandomString\n"¶heat_integrationtests.functional.test_template_resource.
TemplateResourceUpdateTest
(*args, **kwargs)[source]¶Bases: heat_integrationtests.functional.functional_base.FunctionalTestsBase
Prove that we can do template resource updates.
EXPECTED
= ('update', 'nochange')¶NOCHANGE
= 'nochange'¶UPDATE
= 'update'¶attr_change_tmpl
= "\nHeatTemplateFormatVersion: '2012-12-12'\nParameters:\n one:\n Default: foo\n Type: String\n two:\n Default: bar\n Type: String\n\nResources:\n NestedResource:\n Type: OS::Heat::RandomString\n Properties:\n salt: {Ref: one}\nOutputs:\n the_str:\n Value: {'Fn::GetAtt': [NestedResource, value]}\n something_else:\n Value: just_a_string\n"¶content_change_tmpl
= "\nHeatTemplateFormatVersion: '2012-12-12'\nParameters:\n one:\n Default: foo\n Type: String\n two:\n Default: bar\n Type: String\n\nResources:\n NestedResource:\n Type: OS::Heat::RandomString\n Properties:\n salt: yum\nOutputs:\n the_str:\n Value: {'Fn::GetAtt': [NestedResource, value]}\n"¶initial_tmpl
= "\nHeatTemplateFormatVersion: '2012-12-12'\nParameters:\n one:\n Default: foo\n Type: String\n two:\n Default: bar\n Type: String\n\nResources:\n NestedResource:\n Type: OS::Heat::RandomString\n Properties:\n salt: {Ref: one}\nOutputs:\n the_str:\n Value: {'Fn::GetAtt': [NestedResource, value]}\n"¶main_template
= "\nHeatTemplateFormatVersion: '2012-12-12'\nResources:\n the_nested:\n Type: the.yaml\n Properties:\n one: my_name\n two: your_name\nOutputs:\n identifier:\n Value: {Ref: the_nested}\n value:\n Value: {'Fn::GetAtt': [the_nested, the_str]}\n"¶main_template_add_prop
= "\nHeatTemplateFormatVersion: '2012-12-12'\nResources:\n the_nested:\n Type: the.yaml\n Properties:\n one: my_name\n two: your_name\n three: third_name\n\nOutputs:\n identifier:\n Value: {Ref: the_nested}\n value:\n Value: {'Fn::GetAtt': [the_nested, the_str]}\n"¶main_template_change_prop
= "\nHeatTemplateFormatVersion: '2012-12-12'\nResources:\n the_nested:\n Type: the.yaml\n Properties:\n one: updated_name\n two: your_name\n\nOutputs:\n identifier:\n Value: {Ref: the_nested}\n value:\n Value: {'Fn::GetAtt': [the_nested, the_str]}\n"¶main_template_remove_prop
= "\nHeatTemplateFormatVersion: '2012-12-12'\nResources:\n the_nested:\n Type: the.yaml\n Properties:\n one: my_name\n\nOutputs:\n identifier:\n Value: {Ref: the_nested}\n value:\n Value: {'Fn::GetAtt': [the_nested, the_str]}\n"¶prop_add_tmpl
= "\nHeatTemplateFormatVersion: '2012-12-12'\nParameters:\n one:\n Default: yikes\n Type: String\n two:\n Default: foo\n Type: String\n three:\n Default: bar\n Type: String\n\nResources:\n NestedResource:\n Type: OS::Heat::RandomString\n Properties:\n salt: {Ref: three}\nOutputs:\n the_str:\n Value: {'Fn::GetAtt': [NestedResource, value]}\n"¶prop_change_tmpl
= "\nHeatTemplateFormatVersion: '2012-12-12'\nParameters:\n one:\n Default: yikes\n Type: String\n two:\n Default: foo\n Type: String\nResources:\n NestedResource:\n Type: OS::Heat::RandomString\n Properties:\n salt: {Ref: two}\nOutputs:\n the_str:\n Value: {'Fn::GetAtt': [NestedResource, value]}\n"¶prop_remove_tmpl
= "\nHeatTemplateFormatVersion: '2012-12-12'\nParameters:\n one:\n Default: yikes\n Type: String\n\nResources:\n NestedResource:\n Type: OS::Heat::RandomString\n Properties:\n salt: {Ref: one}\nOutputs:\n the_str:\n Value: {'Fn::GetAtt': [NestedResource, value]}\n"¶scenarios
= [('no_changes', {'expect': 'nochange', 'template': "\nHeatTemplateFormatVersion: '2012-12-12'\nResources:\n the_nested:\n Type: the.yaml\n Properties:\n one: my_name\n two: your_name\nOutputs:\n identifier:\n Value: {Ref: the_nested}\n value:\n Value: {'Fn::GetAtt': [the_nested, the_str]}\n", 'provider': "\nHeatTemplateFormatVersion: '2012-12-12'\nParameters:\n one:\n Default: foo\n Type: String\n two:\n Default: bar\n Type: String\n\nResources:\n NestedResource:\n Type: OS::Heat::RandomString\n Properties:\n salt: {Ref: one}\nOutputs:\n the_str:\n Value: {'Fn::GetAtt': [NestedResource, value]}\n"}), ('main_tmpl_change', {'expect': 'update', 'template': "\nHeatTemplateFormatVersion: '2012-12-12'\nResources:\n the_nested:\n Type: the.yaml\n Properties:\n one: updated_name\n two: your_name\n\nOutputs:\n identifier:\n Value: {Ref: the_nested}\n value:\n Value: {'Fn::GetAtt': [the_nested, the_str]}\n", 'provider': "\nHeatTemplateFormatVersion: '2012-12-12'\nParameters:\n one:\n Default: foo\n Type: String\n two:\n Default: bar\n Type: String\n\nResources:\n NestedResource:\n Type: OS::Heat::RandomString\n Properties:\n salt: {Ref: one}\nOutputs:\n the_str:\n Value: {'Fn::GetAtt': [NestedResource, value]}\n"}), ('provider_change', {'expect': 'update', 'template': "\nHeatTemplateFormatVersion: '2012-12-12'\nResources:\n the_nested:\n Type: the.yaml\n Properties:\n one: my_name\n two: your_name\nOutputs:\n identifier:\n Value: {Ref: the_nested}\n value:\n Value: {'Fn::GetAtt': [the_nested, the_str]}\n", 'provider': "\nHeatTemplateFormatVersion: '2012-12-12'\nParameters:\n one:\n Default: foo\n Type: String\n two:\n Default: bar\n Type: String\n\nResources:\n NestedResource:\n Type: OS::Heat::RandomString\n Properties:\n salt: yum\nOutputs:\n the_str:\n Value: {'Fn::GetAtt': [NestedResource, value]}\n"}), ('provider_props_change', {'expect': 'update', 'template': "\nHeatTemplateFormatVersion: '2012-12-12'\nResources:\n the_nested:\n Type: the.yaml\n Properties:\n one: my_name\n two: your_name\nOutputs:\n identifier:\n Value: {Ref: the_nested}\n value:\n Value: {'Fn::GetAtt': [the_nested, the_str]}\n", 'provider': "\nHeatTemplateFormatVersion: '2012-12-12'\nParameters:\n one:\n Default: yikes\n Type: String\n two:\n Default: foo\n Type: String\nResources:\n NestedResource:\n Type: OS::Heat::RandomString\n Properties:\n salt: {Ref: two}\nOutputs:\n the_str:\n Value: {'Fn::GetAtt': [NestedResource, value]}\n"}), ('provider_props_add', {'expect': 'update', 'template': "\nHeatTemplateFormatVersion: '2012-12-12'\nResources:\n the_nested:\n Type: the.yaml\n Properties:\n one: my_name\n two: your_name\n three: third_name\n\nOutputs:\n identifier:\n Value: {Ref: the_nested}\n value:\n Value: {'Fn::GetAtt': [the_nested, the_str]}\n", 'provider': "\nHeatTemplateFormatVersion: '2012-12-12'\nParameters:\n one:\n Default: yikes\n Type: String\n two:\n Default: foo\n Type: String\n three:\n Default: bar\n Type: String\n\nResources:\n NestedResource:\n Type: OS::Heat::RandomString\n Properties:\n salt: {Ref: three}\nOutputs:\n the_str:\n Value: {'Fn::GetAtt': [NestedResource, value]}\n"}), ('provider_props_remove', {'expect': 'nochange', 'template': "\nHeatTemplateFormatVersion: '2012-12-12'\nResources:\n the_nested:\n Type: the.yaml\n Properties:\n one: my_name\n\nOutputs:\n identifier:\n Value: {Ref: the_nested}\n value:\n Value: {'Fn::GetAtt': [the_nested, the_str]}\n", 'provider': "\nHeatTemplateFormatVersion: '2012-12-12'\nParameters:\n one:\n Default: yikes\n Type: String\n\nResources:\n NestedResource:\n Type: OS::Heat::RandomString\n Properties:\n salt: {Ref: one}\nOutputs:\n the_str:\n Value: {'Fn::GetAtt': [NestedResource, value]}\n"}), ('provider_attr_change', {'expect': 'nochange', 'template': "\nHeatTemplateFormatVersion: '2012-12-12'\nResources:\n the_nested:\n Type: the.yaml\n Properties:\n one: my_name\n two: your_name\nOutputs:\n identifier:\n Value: {Ref: the_nested}\n value:\n Value: {'Fn::GetAtt': [the_nested, the_str]}\n", 'provider': "\nHeatTemplateFormatVersion: '2012-12-12'\nParameters:\n one:\n Default: foo\n Type: String\n two:\n Default: bar\n Type: String\n\nResources:\n NestedResource:\n Type: OS::Heat::RandomString\n Properties:\n salt: {Ref: one}\nOutputs:\n the_str:\n Value: {'Fn::GetAtt': [NestedResource, value]}\n something_else:\n Value: just_a_string\n"})]¶heat_integrationtests.functional.test_template_resource.
ValidateFacadeTest
(*args, **kwargs)[source]¶Bases: heat_integrationtests.functional.functional_base.FunctionalTestsBase
Prove that nested stack errors don’t suck.
env
= '\nresource_registry:\n OS::Thingy: facade.yaml\n resources:\n thisone:\n OS::Thingy: concrete.yaml\n'¶templ_facade
= '\nheat_template_version: 2015-04-30\nparameters:\n one:\n type: string\n two:\n type: string\noutputs:\n here-it-is:\n value: noop\n'¶template
= '\nheat_template_version: 2015-10-15\nresources:\n thisone:\n type: OS::Thingy\n properties:\n one: pre\n two: post\noutputs:\n one:\n value: {get_attr: [thisone, here-it-is]}\n'¶Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.