Esempio n. 1
0
class DateTimeExpression(Element):
    schema = Leaf(type=text_type)
Esempio n. 2
0
class OperationTimeoutRecoverable(Element):
    schema = Leaf(type=bool)
Esempio n. 3
0
class ImportLoader(Element):

    schema = Leaf(type=str)
Esempio n. 4
0
class Metadata(Element):

    schema = Leaf(type=dict)
Esempio n. 5
0
class WorkflowMapping(Element):

    required = True
    schema = Leaf(type=str)
Esempio n. 6
0
class PluginSource(Element):

    schema = Leaf(type=str)
Esempio n. 7
0
class OutputDescription(Element):

    schema = Leaf(type=str)
Esempio n. 8
0
class ScheduledWorkflowWaitAfterFail(Element):
    schema = Leaf(type=int)
Esempio n. 9
0
class ScheduledWorkflowAllowCustomParameters(Element):
    schema = Leaf(type=bool)
Esempio n. 10
0
class ScheduledWorkflowForce(Element):
    schema = Leaf(type=bool)
Esempio n. 11
0
class ScheduledWorkflowDryRun(Element):
    schema = Leaf(type=bool)
Esempio n. 12
0
class ScheduledWorkflowId(Element):
    required = True
    schema = Leaf(type=text_type)
Esempio n. 13
0
class TimeZoneExpression(Element):
    schema = Leaf(type=text_type)
Esempio n. 14
0
class TimeDelta(Element):
    schema = Leaf(type=text_type)

    def validate(self):
        if self.initial_value:
            unpack_timedelta_string(self.initial_value)
Esempio n. 15
0
class Imported(Element):

    schema = Leaf(type=basestring)
Esempio n. 16
0
class PolicyTypeSource(Element):

    required = True
    schema = Leaf(type=str)
Esempio n. 17
0
class WorkflowAvailable(Element):
    schema = Leaf(type=bool)
    add_namespace_to_schema_elements = False
Esempio n. 18
0
class NodeTemplateOperationInputs(Element):

    schema = Leaf(type=dict)

    def parse(self):
        return self.initial_value if self.initial_value is not None else {}
Esempio n. 19
0
class PolicyTypeSource(Element):

    required = True
    schema = Leaf(type=basestring)
    add_namespace_to_schema_elements = False
Esempio n. 20
0
class NodeTemplateRelationshipProperties(Element):

    schema = Leaf(type=dict)
    requires = {
        NodeTemplateRelationshipType: [],
        NodeTemplateRelationshipTarget: [],
        _relationships.Relationships: [Value('relationships')],
        _data_types.DataTypes: [Value('data_types')]
    }

    def parse(self, relationships, data_types):
        relationship_type_name = self.sibling(
            NodeTemplateRelationshipType).value
        properties = self.initial_value or {}
        return utils.merge_schema_and_instance_properties(
            instance_properties=properties,
            schema_properties=relationships[relationship_type_name][
                'properties'],
            data_types=data_types,
            undefined_property_error_message=(
                "'{0}' node relationship '{1}' property is not part of "
                "the derived relationship type properties schema"),
            missing_property_error_message=(
                "'{0}' node relationship does not provide a "
                "value for mandatory "
                "'{1}' property which is "
                'part of its relationship type schema'),
            node_name=self.ancestor(NodeTemplate).name)

    def validate(self, relationships, **kwargs):
        relationship_type = self.sibling(NodeTemplateRelationshipType).value
        node_name = self.ancestor(NodeTemplate).name

        if (relationship_type ==
                'cloudify.relationships.depends_on_lifecycle_operation'):
            target_node = self.sibling(
                NodeTemplateRelationshipTarget).value
            properties = self.initial_value or {}
            node_templates = self.ancestor(NodeTemplates).initial_value_holder

            operation_input = properties.get('operation', None)
            if not operation_input:
                raise exceptions.DSLParsingLogicException(
                    215,
                    'For "{1}" node, please supply "{0}" with a defined '
                    'lifecycle operation target '.format(relationship_type,
                                                         node_name))

            _, target_node_interfaces = node_templates[target_node].get_item(
                'interfaces')
            if (not target_node_interfaces or
                    operation_input not in
                    target_node_interfaces['cloudify.interfaces.lifecycle']):
                raise exceptions.DSLParsingLogicException(
                    216,
                    'Please define "{0}" operation in the target node "{1}" '
                    'for "{3}" node\'s "{2}" relationship'.format(
                        operation_input,
                        target_node,
                        relationship_type,
                        node_name))
Esempio n. 21
0
class OutputValue(Element):

    required = True
    schema = Leaf(type=elements.PRIMITIVE_TYPES)
Esempio n. 22
0
class NamespaceMapping(Element):

    schema = Leaf(type=basestring)
    add_namespace_to_schema_elements = False
Esempio n. 23
0
class ImportLoader(Element):

    schema = Leaf(type=text_type)
Esempio n. 24
0
class OutputDescription(Element):

    schema = Leaf(type=str)
    add_namespace_to_schema_elements = False
Esempio n. 25
0
class WorkflowIsCascading(Element):

    schema = Leaf(type=bool)
    add_namespace_to_schema_elements = False
Esempio n. 26
0
class CapabilityDescription(Element):

    schema = Leaf(type=str)
    add_namespace_to_schema_elements = False
Esempio n. 27
0
class OperationImplementation(Element):

    schema = Leaf(type=text_type)

    def parse(self):
        return self.initial_value if self.initial_value is not None else ''
Esempio n. 28
0
class CapabilityValue(Element):

    required = True
    schema = Leaf(type=elements.PRIMITIVE_TYPES)
Esempio n. 29
0
class Import(Element):

    schema = Leaf(type=str)
Esempio n. 30
0
class ScheduleName(Element):
    required = True
    schema = Leaf(type=text_type)