Re: Podling Report Reminder - November 2016
Can the drafts be moved to confluence? On Oct 26, 2016 19:30, "Suneel Marthi"wrote: > Here's a Draft of November Podling Report, @Ran and others please fill in / > modify as you see fit. > > https://docs.google.com/document/d/1QqShfZUBf5Awzw_ > cued-79kHAFjEtW5A6EM_8aHwlRI/edit?usp=sharing > > > > On Wed, Oct 26, 2016 at 7:01 PM, wrote: > > > Dear podling, > > > > This email was sent by an automated system on behalf of the Apache > > Incubator PMC. It is an initial reminder to give you plenty of time to > > prepare your quarterly board report. > > > > The board meeting is scheduled for Wed, 16 November 2016, 10:30 am PDT. > > The report for your podling will form a part of the Incubator PMC > > report. The Incubator PMC requires your report to be submitted 2 weeks > > before the board meeting, to allow sufficient time for review and > > submission (Wed, November 02). > > > > Please submit your report with sufficient time to allow the Incubator > > PMC, and subsequently board members to review and digest. Again, the > > very latest you should submit your report is 2 weeks prior to the board > > meeting. > > > > Thanks, > > > > The Apache Incubator PMC > > > > Submitting your Report > > > > -- > > > > Your report should contain the following: > > > > * Your project name > > * A brief description of your project, which assumes no knowledge of > > the project or necessarily of its field > > * A list of the three most important issues to address in the move > > towards graduation. > > * Any issues that the Incubator PMC or ASF Board might wish/need to be > > aware of > > * How has the community developed since the last report > > * How has the project developed since the last report. > > > > This should be appended to the Incubator Wiki page at: > > > > http://wiki.apache.org/incubator/November2016 > > > > Note: This is manually populated. You may need to wait a little before > > this page is created from a template. > > > > Mentors > > --- > > > > Mentors should review reports for their project(s) and sign them off on > > the Incubator wiki page. Signing off reports shows that you are > > following the project - projects that are not signed may raise alarms > > for the Incubator PMC. > > > > Incubator PMC > > >
Podling Report Reminder - November 2016
Dear podling, This email was sent by an automated system on behalf of the Apache Incubator PMC. It is an initial reminder to give you plenty of time to prepare your quarterly board report. The board meeting is scheduled for Wed, 16 November 2016, 10:30 am PDT. The report for your podling will form a part of the Incubator PMC report. The Incubator PMC requires your report to be submitted 2 weeks before the board meeting, to allow sufficient time for review and submission (Wed, November 02). Please submit your report with sufficient time to allow the Incubator PMC, and subsequently board members to review and digest. Again, the very latest you should submit your report is 2 weeks prior to the board meeting. Thanks, The Apache Incubator PMC Submitting your Report -- Your report should contain the following: * Your project name * A brief description of your project, which assumes no knowledge of the project or necessarily of its field * A list of the three most important issues to address in the move towards graduation. * Any issues that the Incubator PMC or ASF Board might wish/need to be aware of * How has the community developed since the last report * How has the project developed since the last report. This should be appended to the Incubator Wiki page at: http://wiki.apache.org/incubator/November2016 Note: This is manually populated. You may need to wait a little before this page is created from a template. Mentors --- Mentors should review reports for their project(s) and sign them off on the Incubator wiki page. Signing off reports shows that you are following the project - projects that are not signed may raise alarms for the Incubator PMC. Incubator PMC
[GitHub] incubator-ariatosca pull request #12: ARIA-3 Create an API for creating work...
Github user mxmrlv commented on a diff in the pull request: https://github.com/apache/incubator-ariatosca/pull/12#discussion_r85103673 --- Diff: tests/workflows/builtin/test_heal.py --- @@ -0,0 +1,82 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest + +from aria.workflows.builtin.heal import heal + +from . import (simple_context, + assert_node_install_operations, + assert_node_uninstall_operations) + + +@pytest.fixture +def context(): +return simple_context() + + +def test_heal_dependent_node(context): +heal_graph = heal(context=context, node_instance_id='dependent_node_instance') +uninstall_subgraph, install_subgraph = list(heal_graph.topological_order(reverse=True)) --- End diff -- put some comment lines --- 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. ---
[GitHub] incubator-ariatosca pull request #12: ARIA-3 Create an API for creating work...
Github user mxmrlv commented on a diff in the pull request: https://github.com/apache/incubator-ariatosca/pull/12#discussion_r85102949 --- Diff: tests/workflows/builtin/test_execute_operation.py --- @@ -0,0 +1,45 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest + +from aria.workflows.builtin.execute_operation import execute_operation + +from . import simple_context, NODE_OPERATIONS_INSTALL + + +@pytest.fixture +def context(): +return simple_context() + + +def test_execute_operation(context): +operation_name = NODE_OPERATIONS_INSTALL[0] +node_instance_id = 'dependency_node_instance' +execute_operations = list(execute_operation( --- End diff -- rename to tasks --- 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. ---
[GitHub] incubator-ariatosca pull request #12: ARIA-3 Create an API for creating work...
Github user mxmrlv commented on a diff in the pull request: https://github.com/apache/incubator-ariatosca/pull/12#discussion_r85102304 --- Diff: tests/workflows/builtin/__init__.py --- @@ -0,0 +1,177 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import pytest + +from aria import contexts +from aria.storage import ModelStorage, models + +from ...storage import InMemoryModelDriver + +NODE_OPERATIONS_INSTALL = [ +'aria.interfaces.lifecycle.create', +'aria.interfaces.lifecycle.configure', +'aria.interfaces.lifecycle.start', +] +NODE_OPERATIONS_UNINSTALL = [ +'aria.interfaces.lifecycle.stop', +'aria.interfaces.lifecycle.delete', +] +NODE_OPERATIONS = NODE_OPERATIONS_INSTALL + NODE_OPERATIONS_UNINSTALL + +RELATIONSHIP_OPERATIONS_INSTALL = [ +'aria.interfaces.relationship_lifecycle.preconfigure', +'aria.interfaces.relationship_lifecycle.postconfigure', +'aria.interfaces.relationship_lifecycle.establish', +] +RELATIONSHIP_OPERATIONS_UNINSTALL = ['aria.interfaces.relationship_lifecycle.unlink'] +RELATIONSHIP_OPERATIONS = RELATIONSHIP_OPERATIONS_INSTALL + RELATIONSHIP_OPERATIONS_UNINSTALL + + +def simple_context(): +""" +Create the following graph in storage: +dependency_node <-- dependent_node +:return: +""" + +storage = ModelStorage(InMemoryModelDriver(), + model_classes=[models.NodeInstance, + models.Node, + models.Relationship, + models.RelationshipInstance]) +storage.setup() + +dependency_node = models.Node( +id='dependency_node', +host_id='dependency_node', +blueprint_id='test_blueprint_id', +type='test_node_type', +type_hierarchy=[], +number_of_instances=1, +planned_number_of_instances=1, +deploy_number_of_instances=1, +properties={}, +operations=dict((key, None) for key in NODE_OPERATIONS), +relationships=[], +min_number_of_instances=1, +max_number_of_instances=1, +) + +dependency_node_instance = models.NodeInstance( +id='dependency_node_instance', +host_id='dependency_node_instance', +deployment_id='test_deployment_id', +runtime_properties={}, +version=None, +relationship_instances=[], +node=dependency_node +) + +relationship = models.Relationship( +target_id=dependency_node.id, +source_interfaces={}, +source_operations=dict((key, None) for key in RELATIONSHIP_OPERATIONS), +target_interfaces={}, +target_operations=dict((key, None) for key in RELATIONSHIP_OPERATIONS), +type='rel_type', +type_hierarchy=[], +properties={}, +) + +relationship_instance = models.RelationshipInstance( +target_id=dependency_node_instance.id, +target_name='test_target_name', +type='some_type', +relationship=relationship, + +) + +dependent_node = models.Node( +id='dependent_node', +host_id='dependent_node', +blueprint_id='test_blueprint_id', +type='test_node_type', +type_hierarchy=[], +number_of_instances=1, +planned_number_of_instances=1, +deploy_number_of_instances=1, +properties={}, +operations=dict((key, None) for key in NODE_OPERATIONS), +relationships=[relationship], +min_number_of_instances=1, +max_number_of_instances=1, +) + +dependent_node_instance = models.NodeInstance( +id='dependent_node_instance', +host_id='dependent_node_instance', +
[GitHub] incubator-ariatosca pull request #12: ARIA-3 Create an API for creating work...
Github user mxmrlv commented on a diff in the pull request: https://github.com/apache/incubator-ariatosca/pull/12#discussion_r85099118 --- Diff: aria/workflows/builtin/workflows.py --- @@ -135,30 +136,27 @@ def uninstall_node_instance(graph, context, node_instance): 'aria.interfaces.lifecycle.delete'], node_instance=node_instance ) +unlink_operations = unlink_relationship(context, node_instance) -graph.chain(tasks=[ -stop_node_instance, -unlink_relationship(context=context, node_instance=node_instance), -delete_node_instance, -]) +uninstall_sequence = [stop_node_instance] +uninstall_sequence.extend(unlink_operations) +uninstall_sequence.append(delete_node_instance) +graph.sequence(*uninstall_sequence) --- End diff -- change this too --- 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. ---
[GitHub] incubator-ariatosca pull request #12: ARIA-3 Create an API for creating work...
Github user mxmrlv commented on a diff in the pull request: https://github.com/apache/incubator-ariatosca/pull/12#discussion_r85099050 --- Diff: aria/workflows/builtin/workflows.py --- @@ -57,59 +57,60 @@ def install_node_instance(context, graph, node_instance): 'aria.interfaces.lifecycle.start'], node_instance=node_instance ) -graph.chain(tasks=[ -create_node_instance, -preconfigure_relationship(context=context, node_instance=node_instance), -configure_node_instance, -postconfigure_relationship(context=context, node_instance=node_instance), -start_node_instance, -establish_relationship(context=context, node_instance=node_instance), -]) +preconfigure_operations = preconfigure_relationship(context, node_instance) +postconfigure_operations = postconfigure_relationship(context, node_instance) +establish_operations = establish_relationship(context, node_instance) +install_sequence = [create_node_instance] +install_sequence.extend(preconfigure_operations) +install_sequence.append(configure_node_instance) +install_sequence.extend(postconfigure_operations) +install_sequence.append(start_node_instance) +install_sequence.extend(establish_operations) -@workflow(suffix_template='{node_instance.id}') -def preconfigure_relationship(context, graph, node_instance): +graph.sequence(*install_sequence) --- End diff -- graph.sequence( create_node_instance, graph.parallel(*preconfigure_operations), ... --- 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. ---
[GitHub] incubator-ariatosca pull request #12: ARIA-3 Create an API for creating work...
Github user mxmrlv commented on a diff in the pull request: https://github.com/apache/incubator-ariatosca/pull/12#discussion_r85096928 --- Diff: aria/workflows/api/task_graph.py --- @@ -55,6 +55,23 @@ def tasks(self): for _, data in self._graph.nodes_iter(data=True): yield data['task'] +@property +def id(self): --- End diff -- put ID above 47 --- 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. ---
incubator-ariatosca git commit: ARIA-5-Adapt-workflow-API-users-to-modified-API [Forced Update!]
Repository: incubator-ariatosca Updated Branches: refs/heads/ARIA-3-api-for-creating-workflows d4247cf0d -> 137e80cb3 (forced update) ARIA-5-Adapt-workflow-API-users-to-modified-API Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/137e80cb Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/137e80cb Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/137e80cb Branch: refs/heads/ARIA-3-api-for-creating-workflows Commit: 137e80cb3fb00ce2a670b3cf0769ae1aa5789d5f Parents: 0bdfbcb Author: mxmrlvAuthored: Sun Oct 23 20:13:44 2016 +0300 Committer: mxmrlv Committed: Wed Oct 26 12:56:44 2016 +0300 -- aria/workflows/api/task_graph.py| 19 +- aria/workflows/builtin/execute_operation.py | 7 +- aria/workflows/builtin/heal.py | 88 + aria/workflows/builtin/install.py | 10 +- aria/workflows/builtin/uninstall.py | 5 +- aria/workflows/builtin/workflows.py | 77 aria/workflows/core/translation.py | 19 +- tests/workflows/builtin/__init__.py | 177 +++ .../workflows/builtin/test_execute_operation.py | 45 + tests/workflows/builtin/test_heal.py| 82 + tests/workflows/builtin/test_install.py | 36 tests/workflows/builtin/test_uninstall.py | 36 .../test_task_graph_into_exececution_graph.py | 18 +- 13 files changed, 498 insertions(+), 121 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/137e80cb/aria/workflows/api/task_graph.py -- diff --git a/aria/workflows/api/task_graph.py b/aria/workflows/api/task_graph.py index fdc4e2b..9c138e0 100644 --- a/aria/workflows/api/task_graph.py +++ b/aria/workflows/api/task_graph.py @@ -19,7 +19,7 @@ Task graph. Used by users to build workflows from uuid import uuid4 -from networkx import DiGraph +from networkx import DiGraph, topological_sort class TaskNotInGraphError(Exception): @@ -55,6 +55,23 @@ class TaskGraph(object): for _, data in self._graph.nodes_iter(data=True): yield data['task'] +@property +def id(self): +""" +Represents the id of the graph +:return: graph id +""" +return self._id + +def topological_order(self, reverse=False): +""" +Returns topological sort on the graph +:param reverse: whether to reverse the sort +:return: a list which represents the topological sort +""" +for task_id in topological_sort(self._graph, reverse=reverse): +yield self.get_task(task_id) + def get_task_dependencies(self, dependent_task): """ Iterates over the task's dependencies http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/137e80cb/aria/workflows/builtin/execute_operation.py -- diff --git a/aria/workflows/builtin/execute_operation.py b/aria/workflows/builtin/execute_operation.py index 9e87c30..a664904 100644 --- a/aria/workflows/builtin/execute_operation.py +++ b/aria/workflows/builtin/execute_operation.py @@ -67,14 +67,13 @@ def execute_operation( # registering actual tasks to sequences for node_instance in filtered_node_instances: -node_instance_sub_workflow = execute_operation_on_instance( +execute_operation_on_instance( context=context, graph=graph, node_instance=node_instance, operation=operation, operation_kwargs=operation_kwargs, allow_kwargs_override=allow_kwargs_override) -subgraphs[node_instance.id] = node_instance_sub_workflow for _, node_instance_sub_workflow in subgraphs.items(): graph.add_task(node_instance_sub_workflow) @@ -83,8 +82,8 @@ def execute_operation( if run_by_dependency_order: for node_instance in context.node_instances: for relationship_instance in node_instance.relationship_instances: -graph.dependency(source_task=subgraphs[node_instance.id], - after=[subgraphs[relationship_instance.target_id]]) +graph.add_dependency(source_task=subgraphs[node_instance.id], + after=[subgraphs[relationship_instance.target_id]]) def _filter_node_instances(context, node_ids=(), node_instance_ids=(), type_names=()): http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/137e80cb/aria/workflows/builtin/heal.py
incubator-ariatosca git commit: ARIA-5-Adapt-workflow-API-users-to-modified-API(added tests and code fixes)
Repository: incubator-ariatosca Updated Branches: refs/heads/ARIA-3-api-for-creating-workflows c4c7a0fd4 -> d4247cf0d ARIA-5-Adapt-workflow-API-users-to-modified-API(added tests and code fixes) Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/d4247cf0 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/d4247cf0 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/d4247cf0 Branch: refs/heads/ARIA-3-api-for-creating-workflows Commit: d4247cf0dd91b6fa6f77b251f7e96c808eb642c0 Parents: c4c7a0f Author: mxmrlvAuthored: Wed Oct 26 12:07:53 2016 +0300 Committer: mxmrlv Committed: Wed Oct 26 12:46:16 2016 +0300 -- aria/workflows/api/task_graph.py| 2 +- aria/workflows/builtin/execute_operation.py | 7 +- aria/workflows/builtin/heal.py | 88 - aria/workflows/builtin/install.py | 8 +- aria/workflows/builtin/workflows.py | 73 aria/workflows/core/translation.py | 2 +- tests/workflows/builtin/__init__.py | 177 +++ .../workflows/builtin/test_execute_operation.py | 45 + tests/workflows/builtin/test_heal.py| 82 + tests/workflows/builtin/test_install.py | 36 tests/workflows/builtin/test_uninstall.py | 36 11 files changed, 458 insertions(+), 98 deletions(-) -- http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/d4247cf0/aria/workflows/api/task_graph.py -- diff --git a/aria/workflows/api/task_graph.py b/aria/workflows/api/task_graph.py index ec0c4a5..9c138e0 100644 --- a/aria/workflows/api/task_graph.py +++ b/aria/workflows/api/task_graph.py @@ -63,7 +63,7 @@ class TaskGraph(object): """ return self._id -def topological_sort(self, reverse=False): +def topological_order(self, reverse=False): """ Returns topological sort on the graph :param reverse: whether to reverse the sort http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/d4247cf0/aria/workflows/builtin/execute_operation.py -- diff --git a/aria/workflows/builtin/execute_operation.py b/aria/workflows/builtin/execute_operation.py index 9e87c30..a664904 100644 --- a/aria/workflows/builtin/execute_operation.py +++ b/aria/workflows/builtin/execute_operation.py @@ -67,14 +67,13 @@ def execute_operation( # registering actual tasks to sequences for node_instance in filtered_node_instances: -node_instance_sub_workflow = execute_operation_on_instance( +execute_operation_on_instance( context=context, graph=graph, node_instance=node_instance, operation=operation, operation_kwargs=operation_kwargs, allow_kwargs_override=allow_kwargs_override) -subgraphs[node_instance.id] = node_instance_sub_workflow for _, node_instance_sub_workflow in subgraphs.items(): graph.add_task(node_instance_sub_workflow) @@ -83,8 +82,8 @@ def execute_operation( if run_by_dependency_order: for node_instance in context.node_instances: for relationship_instance in node_instance.relationship_instances: -graph.dependency(source_task=subgraphs[node_instance.id], - after=[subgraphs[relationship_instance.target_id]]) +graph.add_dependency(source_task=subgraphs[node_instance.id], + after=[subgraphs[relationship_instance.target_id]]) def _filter_node_instances(context, node_ids=(), node_instance_ids=(), type_names=()): http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/d4247cf0/aria/workflows/builtin/heal.py -- diff --git a/aria/workflows/builtin/heal.py b/aria/workflows/builtin/heal.py index 9a31fd6..b9c7f8e 100644 --- a/aria/workflows/builtin/heal.py +++ b/aria/workflows/builtin/heal.py @@ -34,28 +34,27 @@ def heal(context, graph, node_instance_id): :param node_instance_id: the id of the node instance to heal :return: """ -failing_node = context.storage.node_instance.get(node_instance_id) -host_node = context.storage.node_instance.get(failing_node.host_id) +failing_node = context.model.node_instance.get(node_instance_id) +host_node = context.model.node_instance.get(failing_node.host_id) failed_node_instance_subgraph = _get_contained_subgraph(context, host_node) failed_node_instance_ids = list(n.id for n in