Merge "Adding custom datatypes support in properties of capabilities"
This commit is contained in:
commit
e9a796f480
|
@ -16,10 +16,11 @@ from toscaparser.properties import Property
|
|||
class Capability(object):
|
||||
'''TOSCA built-in capabilities type.'''
|
||||
|
||||
def __init__(self, name, properties, definition):
|
||||
def __init__(self, name, properties, definition, custom_def=None):
|
||||
self.name = name
|
||||
self._properties = properties
|
||||
self.definition = definition
|
||||
self.custom_def = custom_def
|
||||
|
||||
def get_properties_objects(self):
|
||||
'''Return a list of property objects.'''
|
||||
|
@ -30,7 +31,8 @@ class Capability(object):
|
|||
props_def = self.definition.get_properties_def()
|
||||
if props_def and name in props_def:
|
||||
properties.append(Property(name, value,
|
||||
props_def[name].schema))
|
||||
props_def[name].schema,
|
||||
self.custom_def))
|
||||
return properties
|
||||
|
||||
def get_properties(self):
|
||||
|
|
|
@ -164,7 +164,7 @@ class EntityTemplate(object):
|
|||
if 'properties' in props and props['properties']:
|
||||
properties.update(props['properties'])
|
||||
|
||||
cap = Capability(name, properties, c)
|
||||
cap = Capability(name, properties, c, self.custom_def)
|
||||
capability.append(cap)
|
||||
return capability
|
||||
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
tosca_definitions_version: tosca_simple_yaml_1_0
|
||||
|
||||
node_types:
|
||||
tosca.nodes.SomeNode:
|
||||
derived_from: tosca.nodes.Root
|
||||
capabilities:
|
||||
cap1:
|
||||
type: tosca.capabilities.SomeCap
|
||||
|
||||
capability_types:
|
||||
tosca.capabilities.SomeCap:
|
||||
derived_from: tosca.capabilities.Root
|
||||
properties:
|
||||
data:
|
||||
type: tosca.datatypes.SomeData
|
||||
|
||||
data_types:
|
||||
tosca.datatypes.SomeData:
|
||||
derived_from: tosca.datatypes.Root
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
required: true
|
||||
value:
|
||||
type: integer
|
||||
required: false
|
||||
default: 100
|
|
@ -0,0 +1,19 @@
|
|||
tosca_definitions_version: tosca_simple_yaml_1_0
|
||||
|
||||
description: TOSCA simple profile to test a custom defined capability with custom datatype
|
||||
|
||||
imports:
|
||||
- custom_types/custom_cap_with_datatype.yaml
|
||||
|
||||
topology_template:
|
||||
|
||||
node_templates:
|
||||
|
||||
TestNode:
|
||||
type: tosca.nodes.SomeNode
|
||||
capabilities:
|
||||
cap1:
|
||||
properties:
|
||||
data:
|
||||
name: test
|
||||
value: 1
|
|
@ -783,6 +783,12 @@ class ToscaTemplateTest(TestCase):
|
|||
"data/test_custom_caps_def.yaml")
|
||||
ToscaTemplate(tosca_tpl)
|
||||
|
||||
def test_custom_caps_with_custom_datatype(self):
|
||||
tosca_tpl = os.path.join(
|
||||
os.path.dirname(os.path.abspath(__file__)),
|
||||
"data/test_custom_caps_with_datatype.yaml")
|
||||
ToscaTemplate(tosca_tpl)
|
||||
|
||||
def test_custom_rel_with_script(self):
|
||||
tosca_tpl = os.path.join(
|
||||
os.path.dirname(os.path.abspath(__file__)),
|
||||
|
|
Loading…
Reference in New Issue