Merge "Moving translate same logic in different method"
This commit is contained in:
commit
2655e662ac
@ -119,6 +119,35 @@ class HOTemplate20130523(template.Template):
|
|||||||
else:
|
else:
|
||||||
raise ke
|
raise ke
|
||||||
|
|
||||||
|
def _translate_section(self, section, sub_section, data, mapping):
|
||||||
|
cfn_objects = {}
|
||||||
|
obj_name = section[:-1]
|
||||||
|
err_msg = _('"%%s" is not a valid keyword inside a %s '
|
||||||
|
'definition') % obj_name
|
||||||
|
for name, attrs in six.iteritems(data):
|
||||||
|
cfn_object = {}
|
||||||
|
|
||||||
|
if not attrs:
|
||||||
|
args = {'object_name': obj_name, 'sub_section': sub_section}
|
||||||
|
message = _('Each %(object_name)s must contain a '
|
||||||
|
'%(sub_section)s key.') % args
|
||||||
|
raise exception.StackValidationFailed(message=message)
|
||||||
|
try:
|
||||||
|
for attr, attr_value in six.iteritems(attrs):
|
||||||
|
cfn_attr = self._translate(attr, mapping, err_msg)
|
||||||
|
cfn_object[cfn_attr] = attr_value
|
||||||
|
|
||||||
|
cfn_objects[name] = cfn_object
|
||||||
|
except AttributeError:
|
||||||
|
message = _('"%(section)s" must contain a map of '
|
||||||
|
'%(obj_name)s maps. Found a [%(_type)s] '
|
||||||
|
'instead') % {'section': section,
|
||||||
|
'_type': type(attrs),
|
||||||
|
'obj_name': obj_name}
|
||||||
|
raise exception.StackValidationFailed(message=message)
|
||||||
|
|
||||||
|
return cfn_objects
|
||||||
|
|
||||||
def _translate_resources(self, resources):
|
def _translate_resources(self, resources):
|
||||||
"""Get the resources of the template translated into CFN format."""
|
"""Get the resources of the template translated into CFN format."""
|
||||||
HOT_TO_CFN_ATTRS = {'type': 'Type',
|
HOT_TO_CFN_ATTRS = {'type': 'Type',
|
||||||
@ -128,59 +157,16 @@ class HOTemplate20130523(template.Template):
|
|||||||
'deletion_policy': 'DeletionPolicy',
|
'deletion_policy': 'DeletionPolicy',
|
||||||
'update_policy': 'UpdatePolicy'}
|
'update_policy': 'UpdatePolicy'}
|
||||||
|
|
||||||
cfn_resources = {}
|
return self._translate_section('resources', 'type', resources,
|
||||||
for resource_name, attrs in six.iteritems(resources):
|
HOT_TO_CFN_ATTRS)
|
||||||
cfn_resource = {}
|
|
||||||
|
|
||||||
if not attrs:
|
|
||||||
message = _('Each resource must '
|
|
||||||
'contain a type key.')
|
|
||||||
raise exception.StackValidationFailed(message=message)
|
|
||||||
try:
|
|
||||||
for attr, attr_value in six.iteritems(attrs):
|
|
||||||
cfn_attr = self._translate(attr, HOT_TO_CFN_ATTRS,
|
|
||||||
_('"%s" is not a valid '
|
|
||||||
'keyword inside a resource '
|
|
||||||
'definition'))
|
|
||||||
cfn_resource[cfn_attr] = attr_value
|
|
||||||
|
|
||||||
cfn_resources[resource_name] = cfn_resource
|
|
||||||
except AttributeError:
|
|
||||||
message = _('"resources" must contain a map of resource maps. '
|
|
||||||
'Found a [%s] instead') % type(attrs)
|
|
||||||
raise exception.StackValidationFailed(message=message)
|
|
||||||
|
|
||||||
return cfn_resources
|
|
||||||
|
|
||||||
def _translate_outputs(self, outputs):
|
def _translate_outputs(self, outputs):
|
||||||
"""Get the outputs of the template translated into CFN format."""
|
"""Get the outputs of the template translated into CFN format."""
|
||||||
HOT_TO_CFN_ATTRS = {'description': 'Description',
|
HOT_TO_CFN_ATTRS = {'description': 'Description',
|
||||||
'value': 'Value'}
|
'value': 'Value'}
|
||||||
|
|
||||||
cfn_outputs = {}
|
return self._translate_section('outputs', 'value', outputs,
|
||||||
|
HOT_TO_CFN_ATTRS)
|
||||||
for output_name, attrs in six.iteritems(outputs):
|
|
||||||
cfn_output = {}
|
|
||||||
|
|
||||||
if not attrs:
|
|
||||||
message = _('Each output must '
|
|
||||||
'contain a value key.')
|
|
||||||
raise exception.StackValidationFailed(message=message)
|
|
||||||
try:
|
|
||||||
for attr, attr_value in six.iteritems(attrs):
|
|
||||||
cfn_attr = self._translate(attr, HOT_TO_CFN_ATTRS,
|
|
||||||
_('"%s" is not a valid '
|
|
||||||
'keyword inside an output '
|
|
||||||
'definition'))
|
|
||||||
cfn_output[cfn_attr] = attr_value
|
|
||||||
|
|
||||||
cfn_outputs[output_name] = cfn_output
|
|
||||||
except AttributeError:
|
|
||||||
message = _('"outputs" must contain a map of output maps. '
|
|
||||||
'Found a [%s] instead') % type(attrs)
|
|
||||||
raise exception.StackValidationFailed(message=message)
|
|
||||||
|
|
||||||
return cfn_outputs
|
|
||||||
|
|
||||||
def param_schemata(self):
|
def param_schemata(self):
|
||||||
parameter_section = self.t.get(self.PARAMETERS)
|
parameter_section = self.t.get(self.PARAMETERS)
|
||||||
|
Loading…
Reference in New Issue
Block a user