heat_integrationtests.functional.test_stack_outputs

Source code for heat_integrationtests.functional.test_stack_outputs

#    Licensed under the Apache License, Version 2.0 (the "License"); you may
#    not use this file except in compliance with the License. You may obtain
#    a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#    License for the specific language governing permissions and limitations
#    under the License.

from heat_integrationtests.functional import functional_base


[docs]class StackOutputsTest(functional_base.FunctionalTestsBase): template = ''' heat_template_version: 2015-10-15 resources: test_resource_a: type: OS::Heat::TestResource properties: value: 'a' test_resource_b: type: OS::Heat::TestResource properties: value: 'b' outputs: resource_output_a: description: 'Output of resource a' value: { get_attr: [test_resource_a, output] } resource_output_b: description: 'Output of resource b' value: { get_attr: [test_resource_b, output] } '''
[docs] def test_outputs(self): stack_identifier = self.stack_create( template=self.template ) expected_list = [{u'output_key': u'resource_output_a', u'description': u'Output of resource a'}, {u'output_key': u'resource_output_b', u'description': u'Output of resource b'}] actual_list = self.client.stacks.output_list( stack_identifier)['outputs'] sorted_actual_list = sorted(actual_list, key=lambda x: x['output_key']) self.assertEqual(expected_list, sorted_actual_list) expected_output_a = { u'output_value': u'a', u'output_key': u'resource_output_a', u'description': u'Output of resource a'} expected_output_b = { u'output_value': u'b', u'output_key': u'resource_output_b', u'description': u'Output of resource b'} actual_output_a = self.client.stacks.output_show( stack_identifier, 'resource_output_a')['output'] actual_output_b = self.client.stacks.output_show( stack_identifier, 'resource_output_b')['output'] self.assertEqual(expected_output_a, actual_output_a) self.assertEqual(expected_output_b, actual_output_b)
before_template = ''' heat_template_version: 2015-10-15 resources: test_resource_a: type: OS::Heat::TestResource properties: value: 'foo' outputs: ''' after_template = ''' heat_template_version: 2015-10-15 resources: test_resource_a: type: OS::Heat::TestResource properties: value: 'foo' test_resource_b: type: OS::Heat::TestResource properties: value: {get_attr: [test_resource_a, output]} outputs: output_value: description: 'Output of resource b' value: {get_attr: [test_resource_b, output]} '''
[docs] def test_outputs_update_new_resource(self): stack_identifier = self.stack_create(template=self.before_template) self.update_stack(stack_identifier, template=self.after_template) expected_output_value = { u'output_value': u'foo', u'output_key': u'output_value', u'description': u'Output of resource b'} actual_output_value = self.client.stacks.output_show( stack_identifier, 'output_value')['output'] self.assertEqual(expected_output_value, actual_output_value)
nested_template = ''' heat_template_version: 2015-10-15 resources: parent: type: 1.yaml outputs: resource_output_a: value: { get_attr: [parent, resource_output_a] } description: 'parent a' resource_output_b: value: { get_attr: [parent, resource_output_b] } description: 'parent b' ''' error_template = ''' heat_template_version: 2015-10-15 resources: test_resource_a: type: OS::Heat::TestResource properties: value: 'a' test_resource_b: type: OS::Heat::TestResource properties: value: 'b' outputs: resource_output_a: description: 'Output of resource a' value: { get_attr: [test_resource_a, output] } resource_output_b: description: 'Output of resource b' value: { get_param: foo } '''
[docs] def test_output_error_nested(self): stack_identifier = self.stack_create( template=self.nested_template, files={'1.yaml': self.error_template} ) self.update_stack(stack_identifier, template=self.nested_template, files={'1.yaml': self.error_template}) expected_list = [{u'output_key': u'resource_output_a', u'output_value': u'a', u'description': u'parent a'}, {u'output_key': u'resource_output_b', u'output_value': None, u'output_error': u'Error in parent output ' u'resource_output_b: The Parameter' u' (foo) was not provided.', u'description': u'parent b'}] actual_list = self.client.stacks.get(stack_identifier).outputs sorted_actual_list = sorted(actual_list, key=lambda x: x['output_key']) self.assertEqual(expected_list, sorted_actual_list)
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.