Github user ran-z commented on a diff in the pull request:
https://github.com/apache/incubator-ariatosca/pull/138#discussion_r118011107
--- Diff: aria/modeling/service_instance.py ---
@@ -1728,34 +1732,41 @@ def operation_template(cls):
def inputs(cls):
return relationship.many_to_many(cls, 'parameter',
prefix='inputs', dict_key='name')
+ @declared_attr
+ def configuration(cls):
+ return relationship.many_to_many(cls, 'parameter',
prefix='configuration', dict_key='name')
+
+ @declared_attr
+ def arguments(cls):
+ return relationship.many_to_many(cls, 'parameter',
prefix='arguments', dict_key='name')
+
# endregion
description = Column(Text)
relationship_edge = Column(Boolean)
implementation = Column(Text)
- configuration = Column(modeling_types.StrictDict(key_cls=basestring))
dependencies = Column(modeling_types.StrictList(item_cls=basestring))
+ function = Column(Text)
executor = Column(Text)
max_attempts = Column(Integer)
retry_interval = Column(Integer)
def configure(self):
- from . import models
- # Note: for workflows (operations attached directly to the
service) "interface" will be None
- if (self.implementation is None) or (self.interface is None):
+ if (self.implementation is None) and (self.function is None):
return
- if self.plugin is None:
- arguments =
execution_plugin.instantiation.configure_operation(self)
+ if (self.plugin is None) and (self.interface is not None):
+ # Default to execution plugin ("interface" is None for
workflow operations)
+ execution_plugin.instantiation.configure_operation(self)
else:
# In the future plugins may be able to add their own
"configure_operation" hook that
- # can validate the configuration and otherwise return
specially derived arguments
- arguments = self.configuration
+ # can validate the configuration and otherwise create
specially derived arguments. For
+ # now, we just send all configuration parameters as arguments
+ utils.instantiate_dict(self, self.arguments,
self.configuration)
- # Note: the arguments will *override* operation inputs of the same
name
- if arguments:
- for k, v in arguments.iteritems():
- self.inputs[k] = models.Parameter.wrap(k, v)
--- End diff --
why remove this?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---