You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ariatosca.apache.org by av...@apache.org on 2017/06/01 14:10:26 UTC
[10/16] incubator-ariatosca git commit: Add output many-to-one
relationships
Add output many-to-one relationships
To service template and service.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/05d2b2a0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/05d2b2a0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/05d2b2a0
Branch: refs/heads/ARIA-180-convert-parameter-to-one-to-many
Commit: 05d2b2a0b162076228db334ce33e57b91790e048
Parents: fceceb7
Author: Avia Efrat <av...@gigaspaces.com>
Authored: Wed May 24 14:53:20 2017 +0300
Committer: Avia Efrat <av...@gigaspaces.com>
Committed: Thu Jun 1 11:51:02 2017 +0300
----------------------------------------------------------------------
aria/modeling/service_common.py | 80 ++++++++++++++++++++++------------
aria/modeling/service_instance.py | 8 ++--
aria/modeling/service_template.py | 8 ++--
3 files changed, 61 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/05d2b2a0/aria/modeling/service_common.py
----------------------------------------------------------------------
diff --git a/aria/modeling/service_common.py b/aria/modeling/service_common.py
index f85b2b5..2e981a3 100644
--- a/aria/modeling/service_common.py
+++ b/aria/modeling/service_common.py
@@ -336,36 +336,62 @@ class OutputBase(TemplateModelMixin, caching.HasCachedMethods):
raise ValueError('orphaned output: does not have a container: {0}'.format(self.name))
- @property
- @caching.cachedmethod
- def service(self):
- """
- The :class:`Service` containing this parameter, or None if not contained in a service.
- """
+ # @property
+ # @caching.cachedmethod
+ # def service(self):
+ # """
+ # The :class:`Service` containing this parameter, or None if not contained in a service.
+ # """
+ #
+ # from . import models
+ # container = self.container
+ # if isinstance(container, models.Service):
+ # return container
+ # elif hasattr(container, 'service'):
+ # return container.service
+ # return None
+
+ # @property
+ # @caching.cachedmethod
+ # def service_template(self):
+ # """
+ # The :class:`ServiceTemplate` containing this parameter, or None if not contained in a
+ # service template.
+ # """
+ #
+ # from . import models
+ # container = self.container
+ # if isinstance(container, models.ServiceTemplate):
+ # return container
+ # elif hasattr(container, 'service_template'):
+ # return container.service_template
+ # return None
- from . import models
- container = self.container
- if isinstance(container, models.Service):
- return container
- elif hasattr(container, 'service'):
- return container.service
- return None
+ # region foreign keys
- @property
- @caching.cachedmethod
- def service_template(self):
- """
- The :class:`ServiceTemplate` containing this parameter, or None if not contained in a
- service template.
- """
+ @declared_attr
+ def service_template_fk(cls):
+ """For Output many-to-one to ServiceTemplate"""
+ return relationship.foreign_key('service_template', nullable=True)
- from . import models
- container = self.container
- if isinstance(container, models.ServiceTemplate):
- return container
- elif hasattr(container, 'service_template'):
- return container.service_template
- return None
+ @declared_attr
+ def service_fk(cls):
+ """For Output many-to-one to Service"""
+ return relationship.foreign_key('service', nullable=True)
+
+ # endregion
+
+ # region many_to_one relationships
+
+ @declared_attr
+ def service_template(cls):
+ return relationship.many_to_one(cls, 'service_template')
+
+ @declared_attr
+ def service(cls):
+ return relationship.many_to_one(cls, 'service')
+
+ # endregion
@property
def as_raw(self):
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/05d2b2a0/aria/modeling/service_instance.py
----------------------------------------------------------------------
diff --git a/aria/modeling/service_instance.py b/aria/modeling/service_instance.py
index 97ae5b7..1a162d2 100644
--- a/aria/modeling/service_instance.py
+++ b/aria/modeling/service_instance.py
@@ -125,6 +125,10 @@ class ServiceBase(InstanceModelMixin):
# region one_to_many relationships
@declared_attr
+ def outputs(cls):
+ return relationship.one_to_many(cls, 'output', dict_key='name')
+
+ @declared_attr
def updates(cls):
return relationship.one_to_many(cls, 'service_update')
@@ -174,10 +178,6 @@ class ServiceBase(InstanceModelMixin):
return relationship.many_to_many(cls, 'input', dict_key='name')
@declared_attr
- def outputs(cls):
- return relationship.many_to_many(cls, 'output', dict_key='name')
-
- @declared_attr
def plugins(cls):
return relationship.many_to_many(cls, 'plugin', dict_key='name')
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/05d2b2a0/aria/modeling/service_template.py
----------------------------------------------------------------------
diff --git a/aria/modeling/service_template.py b/aria/modeling/service_template.py
index 4b97500..fd7e80b 100644
--- a/aria/modeling/service_template.py
+++ b/aria/modeling/service_template.py
@@ -215,6 +215,10 @@ class ServiceTemplateBase(TemplateModelMixin):
return relationship.one_to_many(cls, 'node_template', dict_key='name')
@declared_attr
+ def outputs(cls):
+ return relationship.one_to_many(cls, 'output', dict_key='name')
+
+ @declared_attr
def group_templates(cls):
return relationship.one_to_many(cls, 'group_template', dict_key='name')
@@ -247,10 +251,6 @@ class ServiceTemplateBase(TemplateModelMixin):
def inputs(cls):
return relationship.many_to_many(cls, 'input', dict_key='name')
- @declared_attr
- def outputs(cls):
- return relationship.many_to_many(cls, 'output', dict_key='name')
-
# endregion
@property