summaryrefslogtreecommitdiffstats
path: root/azure/aria/aria-extension-cloudify/src/aria/aria/modeling/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'azure/aria/aria-extension-cloudify/src/aria/aria/modeling/models.py')
-rw-r--r--azure/aria/aria-extension-cloudify/src/aria/aria/modeling/models.py427
1 files changed, 427 insertions, 0 deletions
diff --git a/azure/aria/aria-extension-cloudify/src/aria/aria/modeling/models.py b/azure/aria/aria-extension-cloudify/src/aria/aria/modeling/models.py
new file mode 100644
index 0000000..cf84fdb
--- /dev/null
+++ b/azure/aria/aria-extension-cloudify/src/aria/aria/modeling/models.py
@@ -0,0 +1,427 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""
+Data models.
+
+Service template models
+-----------------------
+
+.. autosummary::
+ :nosignatures:
+
+ aria.modeling.models.ServiceTemplate
+ aria.modeling.models.NodeTemplate
+ aria.modeling.models.GroupTemplate
+ aria.modeling.models.PolicyTemplate
+ aria.modeling.models.SubstitutionTemplate
+ aria.modeling.models.SubstitutionTemplateMapping
+ aria.modeling.models.RequirementTemplate
+ aria.modeling.models.RelationshipTemplate
+ aria.modeling.models.CapabilityTemplate
+ aria.modeling.models.InterfaceTemplate
+ aria.modeling.models.OperationTemplate
+ aria.modeling.models.ArtifactTemplate
+ aria.modeling.models.PluginSpecification
+
+Service instance models
+-----------------------
+
+.. autosummary::
+ :nosignatures:
+
+ aria.modeling.models.Service
+ aria.modeling.models.Node
+ aria.modeling.models.Group
+ aria.modeling.models.Policy
+ aria.modeling.models.Substitution
+ aria.modeling.models.SubstitutionMapping
+ aria.modeling.models.Relationship
+ aria.modeling.models.Capability
+ aria.modeling.models.Interface
+ aria.modeling.models.Operation
+ aria.modeling.models.Artifact
+
+Common models
+-------------
+
+.. autosummary::
+ :nosignatures:
+
+ aria.modeling.models.Output
+ aria.modeling.models.Input
+ aria.modeling.models.Configuration
+ aria.modeling.models.Property
+ aria.modeling.models.Attribute
+ aria.modeling.models.Type
+ aria.modeling.models.Metadata
+
+Orchestration models
+--------------------
+
+.. autosummary::
+ :nosignatures:
+
+ aria.modeling.models.Execution
+ aria.modeling.models.Task
+ aria.modeling.models.Log
+ aria.modeling.models.Plugin
+ aria.modeling.models.Argument
+"""
+
+# pylint: disable=abstract-method
+
+from sqlalchemy.ext.declarative import declarative_base
+from sqlalchemy import (
+ Column,
+ Text
+)
+
+from . import (
+ service_template,
+ service_instance,
+ service_changes,
+ service_common,
+ orchestration,
+ mixins,
+ utils
+)
+
+
+aria_declarative_base = declarative_base(cls=mixins.ModelIDMixin)
+
+
+# See also models_to_register at the bottom of this file
+__all__ = (
+ 'models_to_register',
+
+ # Service template models
+ 'ServiceTemplate',
+ 'NodeTemplate',
+ 'GroupTemplate',
+ 'PolicyTemplate',
+ 'SubstitutionTemplate',
+ 'SubstitutionTemplateMapping',
+ 'RequirementTemplate',
+ 'RelationshipTemplate',
+ 'CapabilityTemplate',
+ 'InterfaceTemplate',
+ 'OperationTemplate',
+ 'ArtifactTemplate',
+ 'PluginSpecification',
+
+ # Service instance models
+ 'Service',
+ 'Node',
+ 'Group',
+ 'Policy',
+ 'Substitution',
+ 'SubstitutionMapping',
+ 'Relationship',
+ 'Capability',
+ 'Interface',
+ 'Operation',
+ 'Artifact',
+
+ # Service changes models
+ 'ServiceUpdate',
+ 'ServiceUpdateStep',
+ 'ServiceModification',
+
+ # Common service models
+ 'Input',
+ 'Configuration',
+ 'Output',
+ 'Property',
+ 'Attribute',
+ 'Type',
+ 'Metadata',
+
+ # Orchestration models
+ 'Execution',
+ 'Plugin',
+ 'Task',
+ 'Log',
+ 'Argument'
+)
+
+
+# region service template models
+
+@utils.fix_doc
+class ServiceTemplate(aria_declarative_base, service_template.ServiceTemplateBase):
+ name = Column(Text, index=True, unique=True)
+
+
+@utils.fix_doc
+class NodeTemplate(aria_declarative_base, service_template.NodeTemplateBase):
+ pass
+
+
+@utils.fix_doc
+class GroupTemplate(aria_declarative_base, service_template.GroupTemplateBase):
+ pass
+
+
+@utils.fix_doc
+class PolicyTemplate(aria_declarative_base, service_template.PolicyTemplateBase):
+ pass
+
+
+@utils.fix_doc
+class SubstitutionTemplate(aria_declarative_base, service_template.SubstitutionTemplateBase):
+ pass
+
+
+@utils.fix_doc
+class SubstitutionTemplateMapping(aria_declarative_base,
+ service_template.SubstitutionTemplateMappingBase):
+ pass
+
+
+@utils.fix_doc
+class RequirementTemplate(aria_declarative_base, service_template.RequirementTemplateBase):
+ pass
+
+
+@utils.fix_doc
+class RelationshipTemplate(aria_declarative_base, service_template.RelationshipTemplateBase):
+ pass
+
+
+@utils.fix_doc
+class CapabilityTemplate(aria_declarative_base, service_template.CapabilityTemplateBase):
+ pass
+
+
+@utils.fix_doc
+class InterfaceTemplate(aria_declarative_base, service_template.InterfaceTemplateBase):
+ pass
+
+
+@utils.fix_doc
+class OperationTemplate(aria_declarative_base, service_template.OperationTemplateBase):
+ pass
+
+
+@utils.fix_doc
+class ArtifactTemplate(aria_declarative_base, service_template.ArtifactTemplateBase):
+ pass
+
+
+@utils.fix_doc
+class PluginSpecification(aria_declarative_base, service_template.PluginSpecificationBase):
+ pass
+
+# endregion
+
+
+# region service instance models
+
+@utils.fix_doc
+class Service(aria_declarative_base, service_instance.ServiceBase):
+ name = Column(Text, index=True, unique=True)
+
+
+@utils.fix_doc
+class Node(aria_declarative_base, service_instance.NodeBase):
+ pass
+
+
+@utils.fix_doc
+class Group(aria_declarative_base, service_instance.GroupBase):
+ pass
+
+
+@utils.fix_doc
+class Policy(aria_declarative_base, service_instance.PolicyBase):
+ pass
+
+
+@utils.fix_doc
+class Substitution(aria_declarative_base, service_instance.SubstitutionBase):
+ pass
+
+
+@utils.fix_doc
+class SubstitutionMapping(aria_declarative_base, service_instance.SubstitutionMappingBase):
+ pass
+
+
+@utils.fix_doc
+class Relationship(aria_declarative_base, service_instance.RelationshipBase):
+ pass
+
+
+@utils.fix_doc
+class Capability(aria_declarative_base, service_instance.CapabilityBase):
+ pass
+
+
+@utils.fix_doc
+class Interface(aria_declarative_base, service_instance.InterfaceBase):
+ pass
+
+
+@utils.fix_doc
+class Operation(aria_declarative_base, service_instance.OperationBase):
+ pass
+
+
+@utils.fix_doc
+class Artifact(aria_declarative_base, service_instance.ArtifactBase):
+ pass
+
+# endregion
+
+
+# region service changes models
+
+@utils.fix_doc
+class ServiceUpdate(aria_declarative_base, service_changes.ServiceUpdateBase):
+ pass
+
+
+@utils.fix_doc
+class ServiceUpdateStep(aria_declarative_base, service_changes.ServiceUpdateStepBase):
+ pass
+
+
+@utils.fix_doc
+class ServiceModification(aria_declarative_base, service_changes.ServiceModificationBase):
+ pass
+
+# endregion
+
+
+# region common service models
+
+@utils.fix_doc
+class Input(aria_declarative_base, service_common.InputBase):
+ pass
+
+
+@utils.fix_doc
+class Configuration(aria_declarative_base, service_common.ConfigurationBase):
+ pass
+
+
+@utils.fix_doc
+class Output(aria_declarative_base, service_common.OutputBase):
+ pass
+
+
+@utils.fix_doc
+class Property(aria_declarative_base, service_common.PropertyBase):
+ pass
+
+
+@utils.fix_doc
+class Attribute(aria_declarative_base, service_common.AttributeBase):
+ pass
+
+
+@utils.fix_doc
+class Type(aria_declarative_base, service_common.TypeBase):
+ pass
+
+
+@utils.fix_doc
+class Metadata(aria_declarative_base, service_common.MetadataBase):
+ pass
+
+# endregion
+
+
+# region orchestration models
+
+@utils.fix_doc
+class Execution(aria_declarative_base, orchestration.ExecutionBase):
+ pass
+
+
+@utils.fix_doc
+class Plugin(aria_declarative_base, orchestration.PluginBase):
+ pass
+
+
+@utils.fix_doc
+class Task(aria_declarative_base, orchestration.TaskBase):
+ pass
+
+
+@utils.fix_doc
+class Log(aria_declarative_base, orchestration.LogBase):
+ pass
+
+
+@utils.fix_doc
+class Argument(aria_declarative_base, orchestration.ArgumentBase):
+ pass
+
+# endregion
+
+
+# See also __all__ at the top of this file
+models_to_register = (
+ # Service template models
+ ServiceTemplate,
+ NodeTemplate,
+ GroupTemplate,
+ PolicyTemplate,
+ SubstitutionTemplate,
+ SubstitutionTemplateMapping,
+ RequirementTemplate,
+ RelationshipTemplate,
+ CapabilityTemplate,
+ InterfaceTemplate,
+ OperationTemplate,
+ ArtifactTemplate,
+ PluginSpecification,
+
+ # Service instance models
+ Service,
+ Node,
+ Group,
+ Policy,
+ SubstitutionMapping,
+ Substitution,
+ Relationship,
+ Capability,
+ Interface,
+ Operation,
+ Artifact,
+
+ # Service changes models
+ ServiceUpdate,
+ ServiceUpdateStep,
+ ServiceModification,
+
+ # Common service models
+ Input,
+ Configuration,
+ Output,
+ Property,
+ Attribute,
+ Type,
+ Metadata,
+
+ # Orchestration models
+ Execution,
+ Plugin,
+ Task,
+ Log,
+ Argument
+)