Fix kwargs going into ResourceDefinition

Don't use positional args for kwargs as the ordering can create bugs.

part of blueprint external-resources
Change-Id: I2a494d34d7eab3df6bf5daa9da15a65ea45bf56c
This commit is contained in:
Angus Salkeld 2014-11-20 12:48:51 +10:00
parent 3bc511f354
commit c4026e942a
4 changed files with 32 additions and 26 deletions

View File

@ -133,12 +133,14 @@ class CfnTemplate(template.Template):
'string',
default='')
defn = rsrc_defn.ResourceDefinition(name, resource_type,
properties, metadata,
depends,
deletion_policy,
update_policy,
description=description)
defn = rsrc_defn.ResourceDefinition(
name, resource_type,
properties=properties,
metadata=metadata,
depends=depends,
deletion_policy=deletion_policy,
update_policy=update_policy,
description=description)
return name, defn
resources = self.t.get(self.RESOURCES) or {}

View File

@ -234,11 +234,14 @@ class HOTemplate20130523(template.Template):
raise ValueError(_('"%s" is not a valid keyword '
'inside a resource definition') % key)
defn = rsrc_defn.ResourceDefinition(name, resource_type,
properties, metadata,
depends,
deletion_policy,
update_policy)
defn = rsrc_defn.ResourceDefinition(
name, resource_type,
properties=properties,
metadata=metadata,
depends=depends,
deletion_policy=deletion_policy,
update_policy=update_policy,
description=None)
return name, defn
resources = self.t.get(self.RESOURCES) or {}

View File

@ -441,8 +441,8 @@ class InstanceGroup(stack_resource.StackResource):
lb_defn = rsrc_defn.ResourceDefinition(
lb_resource.name,
lb_resource.type(),
props,
lb_resource.t.get('Metadata'),
properties=props,
metadata=lb_resource.t.get('Metadata'),
deletion_policy=lb_resource.t.get('DeletionPolicy'))
scheduler.TaskRunner(lb_resource.update, lb_defn)()
@ -843,10 +843,10 @@ class AutoScalingResourceGroup(AutoScalingGroup):
def _get_instance_definition(self):
rsrc = self.properties[self.RESOURCE]
return rsrc_defn.ResourceDefinition(None,
rsrc['type'],
rsrc.get('properties'),
rsrc.get('metadata'))
return rsrc_defn.ResourceDefinition(
None, rsrc['type'],
properties=rsrc.get('properties'),
metadata=rsrc.get('metadata'))
def _lb_reload(self, exclude=None):
"""AutoScalingResourceGroup does not maintain load balancer

View File

@ -38,7 +38,7 @@ class ResourceDefinitionCore(object):
def __init__(self, name, resource_type, properties=None, metadata=None,
depends=None, deletion_policy=None, update_policy=None,
description=''):
description=None):
"""
Initialise with the parsed definition of a resource.
@ -57,7 +57,7 @@ class ResourceDefinitionCore(object):
depends = depends or []
self.name = name
self.resource_type = resource_type
self.description = description
self.description = description or ''
self._properties = properties
self._metadata = metadata
self._depends = depends
@ -67,7 +67,7 @@ class ResourceDefinitionCore(object):
self._hash = hash(self.resource_type)
self._rendering = None
assert isinstance(description, six.string_types)
assert isinstance(self.description, six.string_types)
if properties is not None:
assert isinstance(properties, (collections.Mapping,
@ -133,12 +133,13 @@ class ResourceDefinitionCore(object):
def reparse_snippet(snippet):
return template.parse(stack, copy.deepcopy(snippet))
return type(self)(self.name, self.resource_type,
reparse_snippet(self._properties),
reparse_snippet(self._metadata),
reparse_snippet(self._depends),
reparse_snippet(self._deletion_policy),
reparse_snippet(self._update_policy))
return type(self)(
self.name, self.resource_type,
properties=reparse_snippet(self._properties),
metadata=reparse_snippet(self._metadata),
depends=reparse_snippet(self._depends),
deletion_policy=reparse_snippet(self._deletion_policy),
update_policy=reparse_snippet(self._update_policy))
def dependencies(self, stack):
"""