Github user ran-z commented on a diff in the pull request:

    https://github.com/apache/incubator-ariatosca/pull/138#discussion_r118293230
  
    --- 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 --
    
    :+1: 


---
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 infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to