Exemple #1
0
 def make_me_one_with_everything(self):
     return rsrc_defn.ResourceDefinition(
         'rsrc', 'SomeType',
         properties={'Foo': cfn_funcs.Join(None,
                                           'Fn::Join',
                                           ['a', ['b', 'r']]),
                     'Blarg': 'wibble'},
         metadata={'Baz': cfn_funcs.Join(None,
                                         'Fn::Join',
                                         ['u', ['q', '', 'x']])},
         depends=['other_resource'],
         deletion_policy='Retain',
         update_policy={'SomePolicy': {}})
    def test_resolve_rule_other_with_function(self):
        client_plugin, schema = self._test_resolve_rule()
        join_func = cfn_funcs.Join(None, 'Fn::Join', ['.', ['bar', 'baz']])
        data = {'far': join_func}
        props = properties.Properties(schema, data)
        rule = translation.TranslationRule(props,
                                           translation.TranslationRule.RESOLVE,
                                           ['far'],
                                           client_plugin=client_plugin,
                                           finder='find_name_id')

        rule.execute_rule()
        self.assertEqual(data, props.data)
Exemple #3
0
    def test_resolve_rule_other_with_function(self):
        client_plugin, schema = self._test_resolve_rule()
        join_func = cfn_funcs.Join(None, 'Fn::Join', ['.', ['bar', 'baz']])
        data = {'far': join_func}
        props = properties.Properties(schema, data)
        rule = translation.TranslationRule(props,
                                           translation.TranslationRule.RESOLVE,
                                           ['far'],
                                           client_plugin=client_plugin,
                                           finder='find_name_id')

        tran = translation.Translation(props)
        tran.set_rules([rule])
        self.assertTrue(tran.has_translation('far'))
        result = tran.translate('far', data['far'])
        self.assertEqual('yellow', result)
        self.assertEqual('yellow', tran.resolved_translations['far'])
    def test_resource_facade_function(self):
        deletion_policy_snippet = {'Fn::ResourceFacade': 'DeletionPolicy'}

        parent_resource = DummyClass()
        parent_resource.metadata_set({"foo": "bar"})
        parent_resource.stack = stack.Stack(self.ctx, 'toplevel_stack',
                                            template.Template(empty_template))
        del_policy = cfn_funcs.Join(parent_resource.stack, 'Fn::Join',
                                    ['eta', ['R', 'in']])
        parent_resource.t = rsrc_defn.ResourceDefinition(
            'parent', 'SomeType', deletion_policy=del_policy)

        stk = stack.Stack(self.ctx,
                          'test_stack',
                          template.Template(empty_template),
                          parent_resource='parent')
        stk._parent_stack = dict(parent=parent_resource)
        self.assertEqual('Retain',
                         self.resolve(deletion_policy_snippet, stk.t, stk))
    def test_resolve_rule_list_with_function(self):
        client_plugin, schema = self._test_resolve_rule(is_list=True)
        join_func = cfn_funcs.Join(None,
                                   'Fn::Join', ['.', ['bar', 'baz']])
        data = {
            'far': [{'red': 'blue'},
                    {'red': join_func}],
        }
        props = properties.Properties(schema, data)

        rule = translation.TranslationRule(
            props,
            translation.TranslationRule.RESOLVE,
            ['far', 'red'],
            client_plugin=client_plugin,
            finder='find_name_id'
            )
        rule.execute_rule()
        self.assertEqual([{'red': 'yellow'}, {'red': 'yellow'}],
                         props.get('far'))