[ 
https://issues.apache.org/jira/browse/ARIA-149?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16023130#comment-16023130
 ] 

ASF GitHub Bot commented on ARIA-149:
-------------------------------------

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: 


> Support instrinsic functions in "dependencies" operation configuration
> ----------------------------------------------------------------------
>
>                 Key: ARIA-149
>                 URL: https://issues.apache.org/jira/browse/ARIA-149
>             Project: AriaTosca
>          Issue Type: Story
>            Reporter: Tal Liron
>            Assignee: Tal Liron
>
> There are a few issues here. First, the following YAML is totally broken;
> {code}
>               dependencies:
>                 - ssh.address > { get_attribute: virtual_ip.floating_ip }
> {code}
> The problem is that in YAML, due to the location of the ":", this gets parsed 
> as a dict where the key is {code}ssh.address > { get_attribute{code} and the 
> value is {code}virtual_ip.floating_ip }{code} which is not what we want at 
> all.
> The solution is to encase the whole value in quotes to enforce parsing as a 
> string:
> {code}
>               dependencies:
>                 - "ssh.address > { get_attribute: virtual_ip.floating_ip }"
> {code}
> Note that the one attractive solution is to to change this ">" format to a 
> real dict. So:
> {code}
>               dependencies:
>                 - { ssh.address: { get_attribute: virtual_ip.floating_ip } }
> {code}
> But this will break other TOSCA parsers that expect a string here, so no go. 
> :(



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to