예제 #1
0
 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)
예제 #4
0
 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
예제 #8
0
 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
예제 #9
0
 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
예제 #10
0
    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()))
예제 #11
0
    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()))
예제 #12
0
    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()))
예제 #13
0
    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()))
예제 #14
0
    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
예제 #16
0
 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
예제 #17
0
 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