[
https://issues.apache.org/jira/browse/ARIA-254?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16039500#comment-16039500
]
ASF GitHub Bot commented on ARIA-254:
-------------------------------------
Github user tliron commented on a diff in the pull request:
https://github.com/apache/incubator-ariatosca/pull/143#discussion_r120455950
--- Diff: aria/modeling/service_template.py ---
@@ -613,6 +597,56 @@ def dump(self):
utils.dump_dict_values(self.capability_templates, 'Capability
templates')
utils.dump_list_values(self.requirement_templates,
'Requirement templates')
+ @property
+ def next_index(self):
+ """
+ Next available node index.
+
+ :returns: node index
+ :rtype: int
+ """
+
+ max_index = 0
+ if self.nodes:
+ max_index = max(int(n.name.rsplit('_', 1)[-1]) for n in
self.nodes)
+ return max_index + 1
+
+ @property
+ def next_name(self):
+ """
+ Next available node name.
+
+ :returns: node name
+ :rtype: basestring
+ """
+
+ return '{name}_{index}'.format(name=self.name,
index=self.next_index)
+
+ @property
+ def default_instances(self):
+ # TODO: currently finds the first matching policy; but we should
emit a validation error
+ # if more than one policy applies to the same node
+ for policy_template in
self.service_template.policy_templates.itervalues():
+ if policy_template.type.role == 'scaling':
+ if policy_template.is_for_node_template(self.name):
+ default_instances =
policy_template.properties.get('default_instances')
+ if (default_instances is not None) \
+ and (default_instances.type_name == 'integer'):
--- End diff --
We cannot expect anybody be to using the ARIA profile as is -- all we are
relying here is that there is an attribute with that name. I am adding that
extra validation of type to make sure that we don't cause breakage by somebody
messing with the parameters. Note that we also do this validation in setting
"default" attributes, like `tosca_name` and `tosca_id`.
> Support multiple nodes of a node template at service creation time
> ------------------------------------------------------------------
>
> Key: ARIA-254
> URL: https://issues.apache.org/jira/browse/ARIA-254
> Project: AriaTosca
> Issue Type: Story
> Reporter: Ran Ziv
> Assignee: Tal Liron
> Priority: Critical
>
> Currently each node template can only have a single node.
> We need to support having multiple nodes of a given node-template at service
> creation time. The mechanism for this should take into consideration future
> stories which would require allowing scaling the number of nodes of a
> node-template up or down.
> Note: the term {{default_instances}} appears in several places in the code
> ([1|https://github.com/apache/incubator-ariatosca/blob/1f3e7ff42fefcd5dc8191e3b0eeac0460db059b0/extensions/aria_extension_tosca/profiles/tosca-simple-1.0/capabilities.yaml#L151],
>
> [2|https://github.com/apache/incubator-ariatosca/blob/fdd57c47acfe63dc25c6f20bcb3785225b3f774d/aria/modeling/service_template.py#L310],
>
> [3|https://github.com/apache/incubator-ariatosca/blob/60ea3ebb21e762d36115db26563a93dd3cb72003/extensions/aria_extension_tosca/simple_v1_0/modeling/__init__.py#L163])
> - we could perhaps use this or an extension based on this idea to support
> this issue.
> One other thing that should be taken into consideration (but perhaps be moved
> to a separate JIRA issue) is the implicit declaration of multiple instances
> via the capabilities&requirements mechanism in TOSCA - We need to decide if
> to support this as well or not, and if we do, how does this play together
> with the primary method of declaring multiple nodes (or perhaps would this be
> the only method of doing so?)
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)