diff options
author | shangxdy <shang.xiaodong@zte.com.cn> | 2016-09-09 17:41:48 +0800 |
---|---|---|
committer | shangxdy <shang.xiaodong@zte.com.cn> | 2016-09-09 17:54:30 +0800 |
commit | 44540b6c2b16637659099c65e31309fc7573ba7d (patch) | |
tree | 053fde2c7387644bb2841fe7ae59ed5d008b1949 /tosca2heat/tosca-parser/toscaparser/substitution_mappings.py | |
parent | 23f466831a8284433609e9f770737830d0b448bf (diff) |
Add keys validation testcase in substitution_mapping class
Add keys validation in class of substitution_mapping according to
specification of
http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/TOSCA-Simple-Profile-YAML-v1.0.html:
1) Substitution mapping only supports keys of node_type, capabilities
and requirements;
2) The key of node_type is required, the others are optional.
JIRA:PARSER-80
Change-Id: Icd3284349175429e5ba5e52814819a6790f0e831
Signed-off-by: shangxdy <shang.xiaodong@zte.com.cn>
Diffstat (limited to 'tosca2heat/tosca-parser/toscaparser/substitution_mappings.py')
-rw-r--r-- | tosca2heat/tosca-parser/toscaparser/substitution_mappings.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/tosca2heat/tosca-parser/toscaparser/substitution_mappings.py b/tosca2heat/tosca-parser/toscaparser/substitution_mappings.py index fe47ae4..35ffdf3 100644 --- a/tosca2heat/tosca-parser/toscaparser/substitution_mappings.py +++ b/tosca2heat/tosca-parser/toscaparser/substitution_mappings.py @@ -19,7 +19,7 @@ from toscaparser.common.exception import MissingRequiredInputError from toscaparser.common.exception import MissingRequiredParameterError from toscaparser.common.exception import UnknownFieldError from toscaparser.elements.nodetype import NodeType - +from toscaparser.utils.gettextutils import _ log = logging.getLogger('tosca') @@ -47,6 +47,11 @@ class SubstitutionMappings(object): self._capabilities = None self._requirements = None + @property + def type(self): + if self.sub_mapping_def: + return self.sub_mapping_def.get(self.NODE_TYPE) + @classmethod def get_node_type(cls, sub_mapping_def): if isinstance(sub_mapping_def, dict): @@ -84,7 +89,7 @@ class SubstitutionMappings(object): for key in self.sub_mapping_def.keys(): if key not in self.SECTIONS: ExceptionCollector.appendException( - UnknownFieldError(what='SubstitutionMappings', + UnknownFieldError(what=_('SubstitutionMappings'), field=key)) def _validate_type(self): @@ -119,7 +124,7 @@ class SubstitutionMappings(object): propery.name not in [input.name for input in self.inputs]: ExceptionCollector.appendException( MissingRequiredInputError( - what='SubstitutionMappings with node_type:' + what=_('SubstitutionMappings with node_type:') + self.node_type, input_name=propery.name)) @@ -140,7 +145,7 @@ class SubstitutionMappings(object): if input.name not in property_names and input.default is None: ExceptionCollector.appendException( MissingRequiredParameterError( - what='SubstitutionMappings with node_type:' + what=_('SubstitutionMappings with node_type:') + self.node_type, input_name=input.name)) |