[
https://issues.apache.org/jira/browse/ARIA-334?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16117254#comment-16117254
]
Ran Ziv commented on ARIA-334:
------------------------------
Sounds interesting. Is there a reason for having the policy type as
{{aria.Operation}} and then have a single {{configuration}} property though,
rather than having the policy type be {{aria.OperationConfig}} and then have
the properties themselves be the configuration?
> Policy for operation execution configuration
> --------------------------------------------
>
> Key: ARIA-334
> URL: https://issues.apache.org/jira/browse/ARIA-334
> Project: AriaTosca
> Issue Type: Story
> Reporter: Tal Liron
> Assignee: Tal Liron
>
> Our support for [using dependencies to configure operation
> execution|https://cwiki.apache.org/confluence/display/ARIATOSCA/Execution+Configuration]
> solves the technical problem, but it is very cumbersome to use in large
> templates.
> One solution is to use YAML macros (in the {{dsl_definitions}} section of the
> TOSCA template). But this is still awkward and ugly to have to insert the
> macro for every operation.
> The TOSCA way to do this is by policy. I suggest we support a new policy for
> operation execution, while *also* lettings user override those values locally
> per operation.
> Here's how it can be defined in the ARIA profile:
> {code}
> policy_types:
> aria.Operation:
> derived_from: tosca.policies.Root
> targets: [ tosca.nodes.Root, tosca.groups.Root ]
> properties:
> configuration:
> type: map
> entry_schema: string
> {code}
> You could then use it like so:
> {code}
> topology_template:
> policies:
> ssh:
> type: aria.Operation
> targets: [ bono, sprout, ralf, homer, homestead, vellum ]
> properties:
> configuration:
> ssh.user: { get_property: [ HOST, host, ssh.user ] }
> ssh.password: { get_property: [ HOST, host, ssh.password ] }
> ssh.address: { get_attribute: [ HOST, public_address ] }
> {code}
> What the above means is that for *all* operations on *all* interfaces of the
> target nodes (or groups) the above configuration parameters would be
> automatically applied (though local use of {{dependencies}} could override
> these values).
> The nice thing about this is that 1) it just needs to be defined once, and 2)
> it avoids our hacky {{dependencies}} notation.
> It might also make sense to add more properties to the policy for applying
> the policy only to specific interfaces or even specific operations and the
> target nodes. But that could possibly wait for a followup JIRA task.
> Note that the above example would also require us to fix intrinsic functions.
> As it stands, the parser would fail the above, because using the {{HOST}}
> keyword can only be used for properties inside a node or relationship. We
> would thus also need to allow for policies to use {{HOST}}, and assume it
> applies to the target node.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)