def _single_node_template_content_test(self, tpl_snippet): nodetemplates = (toscaparser.utils.yamlparser.simple_ordered_parse( tpl_snippet))['node_templates'] name = list(nodetemplates.keys())[0] nodetemplate = NodeTemplate(name, nodetemplates, self._custom_types()) nodetemplate.validate() nodetemplate.requirements nodetemplate.get_capabilities_objects() nodetemplate.get_properties_objects() nodetemplate.interfaces
def _tosca_compute_test(self, tpl_snippet, expectedprops): nodetemplates = (toscaparser.utils.yamlparser. simple_parse(tpl_snippet)['node_templates']) name = list(nodetemplates.keys())[0] nodetemplate = NodeTemplate(name, nodetemplates) nodetemplate.validate() toscacompute = ToscaCompute(nodetemplate) toscacompute.handle_properties() self.assertEqual(expectedprops, toscacompute.properties)
def _tosca_compute_test(self, tpl_snippet, expectedprops): nodetemplates = (toscaparser.utils.yamlparser.simple_parse(tpl_snippet) ['node_templates']) name = list(nodetemplates.keys())[0] nodetemplate = NodeTemplate(name, nodetemplates) nodetemplate.validate() toscacompute = ToscaCompute(nodetemplate) toscacompute.handle_properties() self.assertEqual(expectedprops, toscacompute.properties)
def _tosca_floatingip_test(self, tpl_snippet, expectedprops, name=None): nodetemplates = (toscaparser.utils.yamlparser.simple_parse(tpl_snippet) ['node_templates']) if not name: name = list(nodetemplates.keys())[0] nodetemplate = NodeTemplate(name, nodetemplates, custom_def=[]) nodetemplate.validate() tosca_floatingip = ToscaFloatingIP(nodetemplate) tosca_floatingip.handle_properties() self.assertEqual(expectedprops, tosca_floatingip.properties)
def _nodetemplates(self): nodetemplates = [] tpls = self._tpl_nodetemplates() for name in tpls: tpl = NodeTemplate(name, tpls, self.custom_defs, self.relationship_templates, self.rel_types) tpl.validate(self) nodetemplates.append(tpl) return nodetemplates
def _tosca_floatingip_test(self, tpl_snippet, expectedprops, name=None): nodetemplates = (toscaparser.utils.yamlparser. simple_parse(tpl_snippet)['node_templates']) if not name: name = list(nodetemplates.keys())[0] nodetemplate = NodeTemplate(name, nodetemplates, custom_def=[]) nodetemplate.validate() tosca_floatingip = ToscaFloatingIP(nodetemplate) tosca_floatingip.handle_properties() self.assertEqual(expectedprops, tosca_floatingip.properties)
def _single_node_template_content_test(self, tpl_snippet): nodetemplates = (toscaparser.utils.yamlparser. simple_ordered_parse(tpl_snippet))['node_templates'] name = list(nodetemplates.keys())[0] nodetemplate = NodeTemplate(name, nodetemplates, self._custom_types()) nodetemplate.validate() nodetemplate.requirements nodetemplate.get_capabilities_objects() nodetemplate.get_properties_objects() nodetemplate.interfaces
def _nodetemplates(self): nodetemplates = [] tpls = self._tpl_nodetemplates() if tpls: for name in tpls: tpl = NodeTemplate(name, tpls, self.custom_defs, self.relationship_templates, self.rel_types) if (tpl.type_definition and (tpl.type in tpl.type_definition.TOSCA_DEF or (tpl.type not in tpl.type_definition.TOSCA_DEF and bool(tpl.custom_def)))): tpl.validate(self) nodetemplates.append(tpl) return nodetemplates
def _nodetemplates(self): nodetemplates = [] tpls = self._tpl_nodetemplates() if tpls: for name in tpls: tpl = NodeTemplate(name, tpls, self.custom_defs, self.relationship_templates, self.rel_types) if (tpl.type_definition and (tpl.type in tpl.type_definition.TOSCA_DEF or (tpl.type not in tpl.type_definition.TOSCA_DEF and bool(tpl.custom_def)))): tpl.validate(self) nodetemplates.append(tpl) return nodetemplates
def test_explicit_relationship_proprety(self): tosca_node_template = ''' node_templates: client_node: type: tosca.nodes.Compute requirements: - local_storage: node: my_storage relationship: type: AttachesTo properties: location: /mnt/disk my_storage: type: tosca.nodes.BlockStorage properties: size: 1 GB ''' expected_properties = ['location'] nodetemplates = yamlparser.\ simple_parse(tosca_node_template)['node_templates'] tpl = NodeTemplate('client_node', nodetemplates, []) self.assertIsNone(tpl.validate()) rel_tpls = [] for relationship, trgt in tpl.relationships.items(): rel_tpls.extend(trgt.get_relationship_template()) self.assertEqual(expected_properties, sorted(rel_tpls[0].get_properties().keys()))
def test_proprety_inheritance(self): from toscaparser.nodetemplate import NodeTemplate tosca_custom_def = ''' tosca.nodes.SoftwareComponent.MySoftware: derived_from: SoftwareComponent properties: install_path: required: false type: string default: /opt/mysoftware ''' tosca_node_template = ''' node_templates: mysoftware_instance: type: tosca.nodes.SoftwareComponent.MySoftware properties: component_version: 3.1 ''' expected_properties = ['component_version', 'install_path'] nodetemplates = yamlparser.\ simple_parse(tosca_node_template)['node_templates'] custom_def = yamlparser.simple_parse(tosca_custom_def) name = list(nodetemplates.keys())[0] tpl = NodeTemplate(name, nodetemplates, custom_def) self.assertIsNone(tpl.validate()) self.assertEqual(expected_properties, sorted(tpl.get_properties().keys()))
def test_proprety_inheritance(self): from toscaparser.nodetemplate import NodeTemplate tosca_custom_def = ''' tosca.nodes.SoftwareComponent.MySoftware: derived_from: SoftwareComponent properties: install_path: required: false type: string default: /opt/mysoftware ''' tosca_node_template = ''' node_templates: mysoftware_instance: type: tosca.nodes.SoftwareComponent.MySoftware properties: component_version: 3.1 ''' expected_properties = ['component_version', 'install_path'] nodetemplates = yamlparser.\ simple_parse(tosca_node_template)['node_templates'] custom_def = yamlparser.simple_parse(tosca_custom_def) name = list(nodetemplates.keys())[0] tpl = NodeTemplate(name, nodetemplates, custom_def) self.assertIsNone(tpl.validate()) self.assertEqual(expected_properties, sorted(tpl.get_properties().keys()))
def test_explicit_relationship_proprety(self): tosca_node_template = ''' node_templates: client_node: type: tosca.nodes.Compute requirements: - local_storage: node: my_storage relationship: type: AttachesTo properties: location: /mnt/disk my_storage: type: tosca.nodes.BlockStorage properties: size: 1 GB ''' expected_properties = ['location'] nodetemplates = yamlparser.\ simple_parse(tosca_node_template)['node_templates'] tpl = NodeTemplate('client_node', nodetemplates, []) self.assertIsNone(tpl.validate()) rel_tpls = [] for relationship, trgt in tpl.relationships.items(): rel_tpls.extend(trgt.get_relationship_template()) self.assertEqual(expected_properties, sorted(rel_tpls[0].get_properties().keys()))
def add_template(self, name, tpl): # if name in self.node_templates: # exception.ExceptionCollector.appendException( # exception.ValidationError(message= # 'Node template already defined "%s"' % name)) # return None self.tpl.setdefault(NODE_TEMPLATES, {})[name] = tpl node = NodeTemplate( name, self, self.custom_defs, self.relationship_templates) node.validate(self) node.relationships # this will update the relationship_tpl of the target node self.node_templates[name] = node return node
def _tosca_compute_test(self, tpl_snippet, expectedprops): nodetemplates = (toscaparser.utils.yamlparser. simple_parse(tpl_snippet)['node_templates']) name = list(nodetemplates.keys())[0] try: nodetemplate = NodeTemplate(name, nodetemplates) nodetemplate.validate() toscacompute = ToscaCompute(nodetemplate) toscacompute.handle_properties() if not self._compare_properties(toscacompute.properties, expectedprops): raise Exception(_("Hot Properties are not" " same as expected properties")) except Exception: # for time being rethrowing. Will be handled future based # on new development in Glance and Graffiti raise
def _tosca_compute_test(self, tpl_snippet, expectedprops): nodetemplates = (toscaparser.utils.yamlparser. simple_parse(tpl_snippet)['node_templates']) name = list(nodetemplates.keys())[0] try: nodetemplate = NodeTemplate(name, nodetemplates) nodetemplate.validate() toscacompute = ToscaCompute(nodetemplate) toscacompute.handle_properties() if not self._compare_properties(toscacompute.properties, expectedprops): raise Exception(_("Hot Properties are not" " same as expected properties")) except Exception: # for time being rethrowing. Will be handled future based # on new development in Glance and Graffiti raise
def _nodetemplates(self): nodetemplates = {} tpls = self._tpl_nodetemplates() if tpls: for name in tpls: tpl = NodeTemplate( name, self, self.custom_defs, self.relationship_templates ) # why these tests? defeats validation # if (tpl.type_definition and # (tpl.type in tpl.type_definition.TOSCA_DEF or # (tpl.type not in tpl.type_definition.TOSCA_DEF and # bool(tpl.custom_def)))): tpl.validate(self) nodetemplates[name] = tpl return nodetemplates