summaryrefslogtreecommitdiffstats
path: root/tosca2heat/tosca-parser/toscaparser/substitution_mappings.py
diff options
context:
space:
mode:
authorshangxdy <shang.xiaodong@zte.com.cn>2016-09-09 17:41:48 +0800
committershangxdy <shang.xiaodong@zte.com.cn>2016-09-09 17:54:30 +0800
commit44540b6c2b16637659099c65e31309fc7573ba7d (patch)
tree053fde2c7387644bb2841fe7ae59ed5d008b1949 /tosca2heat/tosca-parser/toscaparser/substitution_mappings.py
parent23f466831a8284433609e9f770737830d0b448bf (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.py13
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))