[02/13] incubator-ariatosca git commit: ARIA-98 Updated two dependencies to support a range of versions

2017-02-16 Thread mxmrlv
ARIA-98 Updated two dependencies to support a range of versions


Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/e282f23f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/e282f23f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/e282f23f

Branch: refs/heads/ARIA-79-concurrent-storage-modifications
Commit: e282f23f6dcffb5adc30af8b525fc7f097bb4f4e
Parents: 4cfbe34
Author: Ran Ziv 
Authored: Thu Feb 2 14:58:37 2017 +0200
Committer: Ran Ziv 
Committed: Thu Feb 2 14:58:37 2017 +0200

--
 requirements.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/e282f23f/requirements.txt
--
diff --git a/requirements.txt b/requirements.txt
index 3f922e8..d6331a5 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -10,9 +10,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-PyYAML==3.10
+PyYAML>=3.10,<=3.12
+requests>=2.7.0,<=2.10.0
 networkx==1.9
-requests==2.7.0
 retrying==1.3.3
 blinker==1.4
 importlib==1.0.4 ; python_version < '2.7'



[04/13] incubator-ariatosca git commit: ARIA-42-Generic-ctx-serialization-mechanism

2017-02-16 Thread mxmrlv
ARIA-42-Generic-ctx-serialization-mechanism


Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/1498ad39
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/1498ad39
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/1498ad39

Branch: refs/heads/ARIA-79-concurrent-storage-modifications
Commit: 1498ad397bcbed5a69c01f6d512a251e375792c7
Parents: d35d09a
Author: mxmrlv 
Authored: Wed Feb 1 16:16:01 2017 +0200
Committer: mxmrlv 
Committed: Thu Feb 9 11:00:23 2017 +0200

--
 aria/__init__.py| 25 +++---
 aria/orchestrator/context/operation.py  | 27 ++
 aria/orchestrator/context/serialization.py  | 95 
 aria/orchestrator/runner.py | 70 ---
 aria/orchestrator/workflows/executor/process.py | 11 +--
 aria/storage/api.py |  3 +-
 aria/storage/core.py| 55 ++--
 aria/storage/sql_mapi.py| 35 +++-
 setup.py|  2 +-
 tests/mock/context.py   | 32 ---
 tests/orchestrator/context/test_operation.py|  7 +-
 .../context/test_resource_render.py |  3 +-
 tests/orchestrator/context/test_serialize.py| 19 ++--
 tests/orchestrator/context/test_toolbelt.py |  2 +-
 tests/orchestrator/context/test_workflow.py |  6 +-
 .../orchestrator/execution_plugin/test_local.py |  4 +-
 tests/orchestrator/execution_plugin/test_ssh.py |  4 +-
 tests/orchestrator/workflows/api/test_task.py   |  4 +-
 .../workflows/builtin/test_execute_operation.py |  2 +-
 .../orchestrator/workflows/builtin/test_heal.py |  2 +-
 .../workflows/builtin/test_install.py   |  2 +-
 .../workflows/builtin/test_uninstall.py |  2 +-
 .../orchestrator/workflows/core/test_engine.py  |  2 +-
 tests/orchestrator/workflows/core/test_task.py  |  2 +-
 .../test_task_graph_into_exececution_graph.py   |  4 +-
 .../workflows/executor/test_executor.py |  9 +-
 .../workflows/executor/test_process_executor.py | 26 --
 .../executor/test_process_executor_extension.py |  2 +-
 .../test_process_executor_tracked_changes.py|  2 +-
 tests/storage/__init__.py   | 41 +++--
 tests/storage/test_instrumentation.py   |  9 +-
 tests/storage/test_model_storage.py |  7 +-
 tests/storage/test_models.py|  4 +-
 tests/storage/test_structures.py| 11 +--
 tests/utils/test_plugin.py  |  6 +-
 35 files changed, 254 insertions(+), 283 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/1498ad39/aria/__init__.py
--
diff --git a/aria/__init__.py b/aria/__init__.py
index 248aa1a..8b87473 100644
--- a/aria/__init__.py
+++ b/aria/__init__.py
@@ -57,7 +57,7 @@ def install_aria_extensions():
 extension.init()
 
 
-def application_model_storage(api, api_kwargs=None):
+def application_model_storage(api, api_kwargs=None, initiator=None, 
initiator_kwargs=None):
 """
 Initiate model storage
 """
@@ -78,19 +78,20 @@ def application_model_storage(api, api_kwargs=None):
 storage.model.Execution,
 storage.model.Task,
 ]
-# if api not in _model_storage:
-return storage.ModelStorage(api, items=models, api_kwargs=api_kwargs or {})
+return storage.ModelStorage(api_cls=api,
+api_kwargs=api_kwargs,
+items=models,
+initiator=initiator,
+initiator_kwargs=initiator_kwargs or {})
 
 
-def application_resource_storage(api, api_kwargs=None):
+def application_resource_storage(api, api_kwargs=None, initiator=None, 
initiator_kwargs=None):
 """
 Initiate resource storage
 """
-return storage.ResourceStorage(
-api,
-api_kwargs=api_kwargs or {},
-items=[
-'blueprint',
-'deployment',
-'plugin',
-])
+
+return storage.ResourceStorage(api_cls=api,
+   api_kwargs=api_kwargs,
+   items=['blueprint', 'deployment', 'plugin'],
+   initiator=initiator,
+   initiator_kwargs=initiator_kwargs)

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/1498ad39/aria/orchestrator/context/operation.py
--
diff --git a/aria/orchestrator/context/operation.py 

[13/13] incubator-ariatosca git commit: extended error msg

2017-02-16 Thread mxmrlv
extended error msg


Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/5af1a8f2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/5af1a8f2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/5af1a8f2

Branch: refs/heads/ARIA-79-concurrent-storage-modifications
Commit: 5af1a8f23237768516af4cca018cd418a9abe7b1
Parents: e6d68d7
Author: mxmrlv 
Authored: Thu Feb 16 14:49:19 2017 +0200
Committer: mxmrlv 
Committed: Thu Feb 16 16:24:00 2017 +0200

--
 aria/orchestrator/workflows/executor/process.py |  8 +---
 aria/storage/instrumentation.py | 40 +++--
 aria/storage/modeling/instance_elements.py  |  5 ++-
 aria/storage_initializer.py |  1 -
 tests/mock/models.py|  2 -
 ...process_executor_concurrent_modifications.py | 45 +++-
 tests/storage/test_structures.py|  1 -
 7 files changed, 58 insertions(+), 44 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/5af1a8f2/aria/orchestrator/workflows/executor/process.py
--
diff --git a/aria/orchestrator/workflows/executor/process.py 
b/aria/orchestrator/workflows/executor/process.py
index 655d75d..84f5f58 100644
--- a/aria/orchestrator/workflows/executor/process.py
+++ b/aria/orchestrator/workflows/executor/process.py
@@ -227,6 +227,8 @@ class ProcessExecutor(base.BaseExecutor):
 try:
 self._apply_tracked_changes(task, request)
 except BaseException as e:
+e.message = \
+'{0} Remote task execution failed due: {1}'.format(str(e), 
request['exception'])
 self._task_failed(task, exception=e)
 else:
 self._task_failed(task, exception=request['exception'])
@@ -364,9 +366,7 @@ def _main():
 # This is required for the instrumentation work properly.
 # See docstring of `remove_mutable_association_listener` for further 
details
 storage_type.remove_mutable_association_listener()
-
 with instrumentation.track_changes() as instrument:
-# import pydevd; pydevd.settrace('localhost')
 try:
 ctx = 
context_dict['context_cls'].deserialize_from_dict(**context_dict['context'])
 _patch_session(ctx=ctx, messenger=messenger, instrument=instrument)
@@ -377,10 +377,6 @@ def _main():
 task_func(ctx=ctx, **operation_inputs)
 messenger.succeeded(tracked_changes=instrument.tracked_changes)
 except BaseException as e:
-# import traceback
-# with open('/home/maxim/Desktop/tmp_log', 'wr+') as f:
-# traceback.print_exc(file=f)
-
 messenger.failed(exception=e, 
tracked_changes=instrument.tracked_changes)
 
 

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/5af1a8f2/aria/storage/instrumentation.py
--
diff --git a/aria/storage/instrumentation.py b/aria/storage/instrumentation.py
index 41818b6..b3ca24a 100644
--- a/aria/storage/instrumentation.py
+++ b/aria/storage/instrumentation.py
@@ -14,6 +14,7 @@
 # limitations under the License.
 
 import copy
+import json
 
 import sqlalchemy
 import sqlalchemy.event
@@ -22,7 +23,7 @@ from . import exceptions
 
 from .modeling import model as _model
 
-_VERSION_ID_COL = 'version_id'
+_VERSION_ID_COL = 'version'
 _STUB = object()
 _INSTRUMENTED = {
 _model.Node.runtime_properties: dict
@@ -162,18 +163,31 @@ def apply_tracked_changes(tracked_changes, model):
 returned by calling ``track_changes()``
 :param model: The model storage used to actually apply the changes
 """
-for mapi_name, tracked_instances in tracked_changes.items():
-mapi = getattr(model, mapi_name)
-for instance_id, tracked_attributes in tracked_instances.items():
-instance = None
-for attribute_name, value in tracked_attributes.items():
-if value.initial != value.current:
-if not instance:
-instance = mapi.get(instance_id)
-setattr(instance, attribute_name, value.current)
-if instance:
-_validate_version_id(instance, mapi)
-mapi.update(instance)
+successfully_updated_instances = dict()
+try:
+for mapi_name, tracked_instances in tracked_changes.items():
+successfully_updated_instances[mapi_name] = list()
+mapi = getattr(model, mapi_name)
+for instance_id, tracked_attributes in tracked_instances.items():
+instance = 

[11/13] incubator-ariatosca git commit: ARIA-79-concurrent-modifications

2017-02-16 Thread mxmrlv
ARIA-79-concurrent-modifications


Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/4a72e113
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/4a72e113
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/4a72e113

Branch: refs/heads/ARIA-79-concurrent-storage-modifications
Commit: 4a72e113b48b2aafdf778d641182a3a8a2c60d1a
Parents: b619335
Author: Dan Kilman 
Authored: Mon Jan 30 16:49:00 2017 +0200
Committer: mxmrlv 
Committed: Thu Feb 16 15:03:40 2017 +0200

--
 aria/orchestrator/workflows/executor/process.py | 156 ++---
 aria/storage/instrumentation.py |  30 +++-
 aria/storage/sql_mapi.py|   4 +
 ...process_executor_concurrent_modifications.py | 174 +++
 tests/requirements.txt  |   3 +-
 5 files changed, 307 insertions(+), 60 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/4a72e113/aria/orchestrator/workflows/executor/process.py
--
diff --git a/aria/orchestrator/workflows/executor/process.py 
b/aria/orchestrator/workflows/executor/process.py
index 560ac43..a23e3da 100644
--- a/aria/orchestrator/workflows/executor/process.py
+++ b/aria/orchestrator/workflows/executor/process.py
@@ -74,6 +74,13 @@ class ProcessExecutor(base.BaseExecutor):
 # Contains reference to all currently running tasks
 self._tasks = {}
 
+self._request_handlers = {
+'started': self._handle_task_started_request,
+'succeeded': self._handle_task_succeeded_request,
+'failed': self._handle_task_failed_request,
+'apply_tracked_changes': self._handle_apply_tracked_changes_request
+}
+
 # Server socket used to accept task status messages from subprocesses
 self._server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 self._server_socket.bind(('localhost', 0))
@@ -131,58 +138,6 @@ class ProcessExecutor(base.BaseExecutor):
 def _remove_task(self, task_id):
 return self._tasks.pop(task_id)
 
-def _listener(self):
-# Notify __init__ method this thread has actually started
-self._listener_started.put(True)
-while not self._stopped:
-try:
-# Accept messages written to the server socket
-with contextlib.closing(self._server_socket.accept()[0]) as 
connection:
-message = self._recv_message(connection)
-message_type = message['type']
-if message_type == 'closed':
-break
-task_id = message['task_id']
-if message_type == 'started':
-self._task_started(self._tasks[task_id])
-elif message_type == 'apply_tracked_changes':
-task = self._tasks[task_id]
-instrumentation.apply_tracked_changes(
-tracked_changes=message['tracked_changes'],
-model=task.context.model)
-elif message_type == 'succeeded':
-task = self._remove_task(task_id)
-instrumentation.apply_tracked_changes(
-tracked_changes=message['tracked_changes'],
-model=task.context.model)
-self._task_succeeded(task)
-elif message_type == 'failed':
-task = self._remove_task(task_id)
-instrumentation.apply_tracked_changes(
-tracked_changes=message['tracked_changes'],
-model=task.context.model)
-self._task_failed(task, exception=message['exception'])
-else:
-raise RuntimeError('Invalid state')
-except BaseException as e:
-self.logger.debug('Error in process executor listener: 
{0}'.format(e))
-
-def _recv_message(self, connection):
-message_len, = struct.unpack(_INT_FMT, self._recv_bytes(connection, 
_INT_SIZE))
-return jsonpickle.loads(self._recv_bytes(connection, message_len))
-
-@staticmethod
-def _recv_bytes(connection, count):
-result = io.BytesIO()
-while True:
-if not count:
-return result.getvalue()
-read = connection.recv(count)
-if not read:
-return result.getvalue()
-result.write(read)
-count -= len(read)
-
 def _check_closed(self):
 

[01/13] incubator-ariatosca git commit: ARIA-95-pip-wheel-for-aria-ignores-dependencies [Forced Update!]

2017-02-16 Thread mxmrlv
Repository: incubator-ariatosca
Updated Branches:
  refs/heads/ARIA-79-concurrent-storage-modifications b77070899 -> 5af1a8f23 
(forced update)


ARIA-95-pip-wheel-for-aria-ignores-dependencies


Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/4cfbe343
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/4cfbe343
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/4cfbe343

Branch: refs/heads/ARIA-79-concurrent-storage-modifications
Commit: 4cfbe34374659c2601bcbcf42e5ef2788ece7f8b
Parents: 9b01654
Author: mxmrlv 
Authored: Wed Feb 1 19:26:27 2017 +0200
Committer: mxmrlv 
Committed: Wed Feb 1 19:27:34 2017 +0200

--
 setup.py | 21 ++---
 1 file changed, 18 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/4cfbe343/setup.py
--
diff --git a/setup.py b/setup.py
index 36f84c9..2d1106d 100644
--- a/setup.py
+++ b/setup.py
@@ -17,7 +17,7 @@
 import os
 import sys
 
-from setuptools import setup, find_packages, Command
+from setuptools import setup, find_packages
 from setuptools.command.install import install
 
 _PACKAGE_NAME = 'aria'
@@ -38,11 +38,25 @@ version = '0.1.0'
 execfile(os.path.join(root_dir, _PACKAGE_NAME, 'VERSION.py'))
 
 
+install_requires = []
+extras_require = {}
+
+# We need to parse the requirements for the conditional dependencies to work 
for wheels and
+# standard installation
 try:
 with open(os.path.join(root_dir, 'requirements.txt')) as requirements:
-install_requires = [requirement.strip() for requirement in 
requirements.readlines()]
+for requirement in requirements.readlines():
+if not requirement.strip().startswith('#'):
+if ';' in requirement:
+package, condition = requirement.split(';')
+cond_name = ':{0}'.format(condition.strip())
+extras_require.setdefault(cond_name, [])
+extras_require[cond_name].append(package.strip())
+else:
+install_requires.append(requirement.strip())
 except IOError:
 install_requires = []
+extras_require = {}
 
 
 console_scripts = ['aria = aria.cli.cli:main']
@@ -50,7 +64,7 @@ console_scripts = ['aria = aria.cli.cli:main']
 
 class InstallCommand(install):
 user_options = install.user_options + [
-('skip-ctx', None, 'Install with or without the ctx (Defaults to True')
+('skip-ctx', None, 'Install with or without the ctx (Defaults to 
False')
 ]
 boolean_options = install.boolean_options + ['skip-ctx']
 
@@ -95,6 +109,7 @@ setup(
 },
 zip_safe=False,
 install_requires=install_requires,
+extras_require=extras_require,
 entry_points={
 'console_scripts': console_scripts
 },



[jira] [Created] (ARIA-108) Add "Delete" API for resources API

2017-02-16 Thread Ran Ziv (JIRA)
Ran Ziv created ARIA-108:


 Summary: Add "Delete" API for resources API
 Key: ARIA-108
 URL: https://issues.apache.org/jira/browse/ARIA-108
 Project: AriaTosca
  Issue Type: Story
Reporter: Ran Ziv
Assignee: Ran Ziv


Resources API currently only has "Upload", "Download", "Read" - it should also 
expose "Delete" functionality so removed service template's resources may be 
removed once the template has been deleted.



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


[jira] [Commented] (ARIA-108) Add "Delete" API for resources API

2017-02-16 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on ARIA-108:
-

GitHub user ran-z opened a pull request:

https://github.com/apache/incubator-ariatosca/pull/71

ARIA-108 Add API for deleting a resource for resource storage



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/apache/incubator-ariatosca 
ARIA-108-delete-resource-api

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/incubator-ariatosca/pull/71.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #71


commit 390ffcb2132b4f533cdc2c84d45f36a464f9063d
Author: Ran Ziv 
Date:   2017-02-16T14:38:51Z

ARIA-108 Add API for deleting a resource for resource storage




> Add "Delete" API for resources API
> --
>
> Key: ARIA-108
> URL: https://issues.apache.org/jira/browse/ARIA-108
> Project: AriaTosca
>  Issue Type: Story
>Reporter: Ran Ziv
>Assignee: Ran Ziv
>
> Resources API currently only has "Upload", "Download", "Read" - it should 
> also expose "Delete" functionality so removed service template's resources 
> may be removed once the template has been deleted.



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


[07/13] incubator-ariatosca git commit: ARIA-44 Merge parser and storage model

2017-02-16 Thread mxmrlv
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/b6193359/aria/storage/modeling/template_elements.py
--
diff --git a/aria/storage/modeling/template_elements.py 
b/aria/storage/modeling/template_elements.py
new file mode 100644
index 000..4212b15
--- /dev/null
+++ b/aria/storage/modeling/template_elements.py
@@ -0,0 +1,1387 @@
+# 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.
+from copy import deepcopy
+from types import FunctionType
+
+from sqlalchemy import (
+Column,
+Text,
+Integer,
+DateTime,
+Boolean,
+)
+from sqlalchemy.ext.associationproxy import association_proxy
+from sqlalchemy.ext.declarative import declared_attr
+
+from aria.parser import validation
+from aria.utils import collections, formatting, console
+
+from . import (
+utils,
+instance_elements,
+structure,
+type as aria_type
+)
+
+# pylint: disable=no-self-argument, no-member, abstract-method
+
+
+# region Element templates
+
+
+class ServiceTemplateBase(structure.ModelMixin):
+
+__tablename__ = 'service_template'
+
+__private_fields__ = ['substitution_template_fk']
+
+description = Column(Text)
+metadata = Column(Text)
+
+# region orchestrator required columns
+
+created_at = Column(DateTime, nullable=False, index=True)
+main_file_name = Column(Text)
+plan = Column(aria_type.Dict, nullable=False)
+updated_at = Column(DateTime)
+
+# endregion
+
+# region foreign keys
+@declared_attr
+def substitution_template_fk(cls):
+return cls.foreign_key('substitution_template', nullable=True)
+
+# endregion
+
+# region one-to-one relationships
+@declared_attr
+def substitution_template(cls):
+return cls.one_to_one_relationship('substitution_template')
+# endregion
+
+# region many-to-many relationships
+
+@declared_attr
+def inputs(cls):
+return cls.many_to_many_relationship('parameter', 
table_prefix='inputs')
+
+@declared_attr
+def outputs(cls):
+return cls.many_to_many_relationship('parameter', 
table_prefix='outputs')
+
+# endregion
+
+@property
+def as_raw(self):
+return collections.OrderedDict((
+('description', self.description),
+('metadata', formatting.as_raw(self.metadata)),
+('node_templates', formatting.as_raw_list(self.node_templates)),
+('group_templates', formatting.as_raw_list(self.group_templates)),
+('policy_templates', 
formatting.as_raw_list(self.policy_templates)),
+('substitution_template', 
formatting.as_raw(self.substitution_template)),
+('inputs', formatting.as_raw_dict(self.inputs)),
+('outputs', formatting.as_raw_dict(self.outputs)),
+('operation_templates', 
formatting.as_raw_list(self.operation_templates
+
+def instantiate(self, context, container):
+service_instance = instance_elements.ServiceInstanceBase()
+context.modeling.instance = service_instance
+
+service_instance.description = deepcopy_with_locators(self.description)
+
+if self.metadata is not None:
+service_instance.metadata = self.metadata.instantiate(context, 
container)
+
+for node_template in self.node_templates.itervalues():
+for _ in range(node_template.default_instances):
+node = node_template.instantiate(context, container)
+service_instance.nodes[node.id] = node
+
+utils.instantiate_dict(context, self, service_instance.groups, 
self.group_templates)
+utils.instantiate_dict(context, self, service_instance.policies, 
self.policy_templates)
+utils.instantiate_dict(context, self, service_instance.operations, 
self.operation_templates)
+
+if self.substitution_template is not None:
+service_instance.substitution = 
self.substitution_template.instantiate(context,
+   
container)
+
+utils.instantiate_dict(context, self, service_instance.inputs, 
self.inputs)
+utils.instantiate_dict(context, self, 

[jira] [Commented] (ARIA-95) pip wheel for aria ignores dependencies

2017-02-16 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on ARIA-95:
-

Commit 4cfbe34374659c2601bcbcf42e5ef2788ece7f8b in incubator-ariatosca's branch 
refs/heads/ARIA-79-concurrent-storage-modifications from mxmrlv
[ https://git-wip-us.apache.org/repos/asf?p=incubator-ariatosca.git;h=4cfbe34 ]

ARIA-95-pip-wheel-for-aria-ignores-dependencies


> pip wheel for aria ignores dependencies
> ---
>
> Key: ARIA-95
> URL: https://issues.apache.org/jira/browse/ARIA-95
> Project: AriaTosca
>  Issue Type: Bug
>Affects Versions: 0.1.0
>Reporter: Maxim Orlov
>Assignee: Maxim Orlov
> Fix For: 0.1.0
>
>
> pip wheel for aria ignores dependencies provided in the requirement.txt



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


[jira] [Commented] (ARIA-99) Straightforward end-to-end tests for parser and built-in workflow

2017-02-16 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on ARIA-99:
-

Commit d35d09a35422add7c3ee34053add05f41b8de1ba in incubator-ariatosca's branch 
refs/heads/ARIA-79-concurrent-storage-modifications from [~emblemparade]
[ https://git-wip-us.apache.org/repos/asf?p=incubator-ariatosca.git;h=d35d09a ]

ARIA-99 Straightforward end-to-end tests for parser and built-in workflow


> Straightforward end-to-end tests for parser and built-in workflow
> -
>
> Key: ARIA-99
> URL: https://issues.apache.org/jira/browse/ARIA-99
> Project: AriaTosca
>  Issue Type: Task
>Reporter: Tal Liron
>Assignee: Tal Liron
>Priority: Minor
>
> The idea is to start with a comprehensive blueprint and end up with valid 
> results. Essentially all mechanisms in ARIA will be tested except for the 
> actual CLI package -- the tests will simulate what happens when a user enters 
> a CLI command.



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


[jira] [Commented] (ARIA-98) PyYAML and requests version update

2017-02-16 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on ARIA-98:
-

Commit e282f23f6dcffb5adc30af8b525fc7f097bb4f4e in incubator-ariatosca's branch 
refs/heads/ARIA-79-concurrent-storage-modifications from [~ran]
[ https://git-wip-us.apache.org/repos/asf?p=incubator-ariatosca.git;h=e282f23 ]

ARIA-98 Updated two dependencies to support a range of versions


> PyYAML and requests version update
> --
>
> Key: ARIA-98
> URL: https://issues.apache.org/jira/browse/ARIA-98
> Project: AriaTosca
>  Issue Type: Task
>Reporter: Krzysztof Frukacz
>Assignee: Ran Ziv
>Priority: Critical
> Fix For: 0.1.0
>
>
> Update the dependencies versions:
> PyYAML==3.12
> requests==2.10.0



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


[jira] [Commented] (ARIA-42) Implement full blown mechanism for serializing an operation context

2017-02-16 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on ARIA-42:
-

Commit 1498ad397bcbed5a69c01f6d512a251e375792c7 in incubator-ariatosca's branch 
refs/heads/ARIA-79-concurrent-storage-modifications from mxmrlv
[ https://git-wip-us.apache.org/repos/asf?p=incubator-ariatosca.git;h=1498ad3 ]

ARIA-42-Generic-ctx-serialization-mechanism


> Implement full blown mechanism for serializing an operation context
> ---
>
> Key: ARIA-42
> URL: https://issues.apache.org/jira/browse/ARIA-42
> Project: AriaTosca
>  Issue Type: Story
>Reporter: Dan Kilman
>Assignee: Maxim Orlov
> Fix For: 0.1.0
>
>
> The current mechanism at 
> aria/orchestration/workflows/context/serialization.py is very limited.
> It serializes/deserializes the context.model and context.resource with hard 
> coded knowledge of the actual implementation involved and even how they were 
> initialized. Specifically:
> The model storage initialized is always expected to be sqlachemy based with 
> no additional engine configuration (i.e. only the engine url is used to 
> re-construct the sqlalchemy engine), similar logic applies to the 
> instantiated sqlalchemy session.
> The resource storage initialized is always the file based resource storage.



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


[jira] [Commented] (ARIA-79) Handle attributes update concurrency issues

2017-02-16 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on ARIA-79:
-

Commit 4a72e113b48b2aafdf778d641182a3a8a2c60d1a in incubator-ariatosca's branch 
refs/heads/ARIA-79-concurrent-storage-modifications from [~d...@gigaspaces.com]
[ https://git-wip-us.apache.org/repos/asf?p=incubator-ariatosca.git;h=4a72e11 ]

ARIA-79-concurrent-modifications


> Handle attributes update concurrency issues
> ---
>
> Key: ARIA-79
> URL: https://issues.apache.org/jira/browse/ARIA-79
> Project: AriaTosca
>  Issue Type: Bug
>Reporter: Ran Ziv
>Assignee: Maxim Orlov
>
> Multiple operations may update a node instance's attributes / 
> runtime-properties concurrently, overriding one another's changes.
> Some form of versioning lock should be used to prevent this from happening.



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


[10/13] incubator-ariatosca git commit: ARIA-44 Merge parser and storage model

2017-02-16 Thread mxmrlv
ARIA-44 Merge parser and storage model

Additional Changes:
  * As a part of this task the name to address the model has been changes to 
the __tablename__ (or __mapiname__ if specified)
  * All of the relationships return a query, so accessing the entire list 
should be done via all()


Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/b6193359
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/b6193359
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/b6193359

Branch: refs/heads/ARIA-79-concurrent-storage-modifications
Commit: b6193359239ec673f3d7b313dd04122302e75ba6
Parents: 1498ad3
Author: mxmrlv 
Authored: Thu Jan 19 11:39:36 2017 +0200
Committer: mxmrlv 
Committed: Sun Feb 12 18:12:13 2017 +0200

--
 aria/__init__.py|   49 +-
 aria/cli/args_parser.py |4 +-
 aria/cli/commands.py|   15 +-
 aria/orchestrator/context/common.py |   22 +-
 aria/orchestrator/context/operation.py  |   43 +-
 aria/orchestrator/context/toolbelt.py   |2 +-
 aria/orchestrator/context/workflow.py   |   22 +-
 aria/orchestrator/runner.py |   11 +-
 aria/orchestrator/workflows/api/task.py |  149 +-
 .../workflows/builtin/execute_operation.py  |   54 +-
 aria/orchestrator/workflows/builtin/heal.py |   14 +-
 aria/orchestrator/workflows/builtin/install.py  |   16 +-
 aria/orchestrator/workflows/builtin/start.py|6 +-
 aria/orchestrator/workflows/builtin/stop.py |6 +-
 .../orchestrator/workflows/builtin/uninstall.py |   18 +-
 aria/orchestrator/workflows/builtin/utils.py|   52 +-
 .../orchestrator/workflows/builtin/workflows.py |  175 ++-
 aria/orchestrator/workflows/core/engine.py  |2 +-
 aria/orchestrator/workflows/core/task.py|   26 +-
 aria/orchestrator/workflows/executor/process.py |   14 +-
 aria/orchestrator/workflows/executor/thread.py  |2 +-
 aria/parser/modeling/__init__.py|8 +-
 aria/parser/modeling/storage.py |  224 ++-
 aria/parser/modeling/utils.py   |4 +-
 aria/storage/__init__.py|   13 +-
 aria/storage/api.py |6 +-
 aria/storage/base_model.py  |  757 --
 aria/storage/core.py|7 +-
 aria/storage/instrumentation.py |   15 +-
 aria/storage/model.py   |  110 --
 aria/storage/modeling/__init__.py   |   35 +
 aria/storage/modeling/elements.py   |  106 ++
 aria/storage/modeling/instance_elements.py  | 1286 
 aria/storage/modeling/model.py  |  219 +++
 aria/storage/modeling/orchestrator_elements.py  |  468 ++
 aria/storage/modeling/structure.py  |  320 
 aria/storage/modeling/template_elements.py  | 1387 ++
 aria/storage/modeling/type.py   |  302 
 aria/storage/modeling/utils.py  |  139 ++
 aria/storage/sql_mapi.py|6 +-
 aria/storage/structure.py   |  190 ---
 aria/storage/type.py|  299 
 aria/storage_initializer.py |  135 ++
 aria/utils/application.py   |   24 +-
 .../profiles/tosca-simple-1.0/groups.yaml   |2 +-
 tests/mock/context.py   |4 +-
 tests/mock/models.py|  123 +-
 tests/mock/topology.py  |  100 +-
 tests/orchestrator/context/test_operation.py|  125 +-
 .../context/test_resource_render.py |2 +-
 tests/orchestrator/context/test_serialize.py|   18 +-
 tests/orchestrator/context/test_toolbelt.py |   75 +-
 tests/orchestrator/context/test_workflow.py |   14 +-
 .../orchestrator/execution_plugin/test_local.py |   63 +-
 tests/orchestrator/execution_plugin/test_ssh.py |   21 +-
 tests/orchestrator/test_runner.py   |   11 +-
 tests/orchestrator/workflows/__init__.py|2 +-
 tests/orchestrator/workflows/api/test_task.py   |   83 +-
 .../workflows/builtin/test_execute_operation.py |   11 +-
 .../orchestrator/workflows/builtin/test_heal.py |8 +-
 .../orchestrator/workflows/core/test_engine.py  |   25 +-
 tests/orchestrator/workflows/core/test_task.py  |   80 +-
 .../test_task_graph_into_exececution_graph.py   |   20 +-
 .../workflows/executor/test_executor.py |9 +-
 .../workflows/executor/test_process_executor.py |8 +-
 .../executor/test_process_executor_extension.py |   15 +-
 .../test_process_executor_tracked_changes.py|   51 +-
 tests/resources/scripts/test_ssh.sh  

[05/13] incubator-ariatosca git commit: ARIA-44 Merge parser and storage model

2017-02-16 Thread mxmrlv
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/b6193359/tests/orchestrator/workflows/core/test_task.py
--
diff --git a/tests/orchestrator/workflows/core/test_task.py 
b/tests/orchestrator/workflows/core/test_task.py
index b39a81f..26564c5 100644
--- a/tests/orchestrator/workflows/core/test_task.py
+++ b/tests/orchestrator/workflows/core/test_task.py
@@ -28,30 +28,43 @@ from aria.orchestrator.workflows import (
 
 from tests import mock, storage
 
+OP_NAME = 'tosca.interfaces.node.lifecycle.Standard.create'
+RELATIONSHIP_OP_NAME = 'tosca.interfaces.relationship.Configure.pre_configure'
+
 
 @pytest.fixture
 def ctx(tmpdir):
 context = mock.context.simple(str(tmpdir))
+
+relationship = context.model.relationship.list()[0]
+relationship.interfaces = [
+mock.models.get_interface(RELATIONSHIP_OP_NAME, edge='source'),
+mock.models.get_interface(RELATIONSHIP_OP_NAME, edge='target')
+]
+context.model.relationship.update(relationship)
+
+dependent_node = 
context.model.node.get_by_name(mock.models.DEPENDENCY_NODE_INSTANCE_NAME)
+dependent_node.interfaces = [mock.models.get_interface(OP_NAME)]
+context.model.node.update(dependent_node)
+
 yield context
 storage.release_sqlite_storage(context.model)
 
 
 class TestOperationTask(object):
 
-def _create_node_operation_task(self, ctx, node_instance):
+def _create_node_operation_task(self, ctx, node):
 with workflow_context.current.push(ctx):
-api_task = api.task.OperationTask.node_instance(
-instance=node_instance,
+api_task = api.task.OperationTask.node(
+instance=node,
 name='tosca.interfaces.node.lifecycle.Standard.create')
 core_task = core.task.OperationTask(api_task=api_task)
 return api_task, core_task
 
-def _create_relationship_operation_task(self, ctx, relationship_instance, 
operation_end):
+def _create_relationship_operation_task(self, ctx, relationship, 
operation_name, edge):
 with workflow_context.current.push(ctx):
-api_task = api.task.OperationTask.relationship_instance(
-instance=relationship_instance,
-
name='tosca.interfaces.relationship.Configure.pre_configure_source',
-operation_end=operation_end)
+api_task = api.task.OperationTask.relationship(
+instance=relationship, name=operation_name, edge=edge)
 core_task = core.task.OperationTask(api_task=api_task)
 return api_task, core_task
 
@@ -60,45 +73,47 @@ class TestOperationTask(object):
 storage_plugin_other = mock.models.get_plugin(package_name='p0', 
package_version='0.0')
 ctx.model.plugin.put(storage_plugin_other)
 ctx.model.plugin.put(storage_plugin)
-node_instance = ctx.model.node_instance.get_by_name(
-mock.models.DEPENDENCY_NODE_INSTANCE_NAME)
-node = node_instance.node
+node = 
ctx.model.node.get_by_name(mock.models.DEPENDENCY_NODE_INSTANCE_NAME)
+node_template = node.node_template
 plugin_name = 'plugin1'
-node.plugins = [{'name': plugin_name,
- 'package_name': 'p1',
- 'package_version': '0.1'}]
-node.operations['tosca.interfaces.node.lifecycle.Standard.create'] = 
{'plugin': plugin_name}
-api_task, core_task = self._create_node_operation_task(ctx, 
node_instance)
+node_template.plugins = [{'name': 'plugin1',
+  'package_name': 'p1',
+  'package_version': '0.1'}]
+node.interfaces = [mock.models.get_interface(
+'tosca.interfaces.node.lifecycle.Standard.create',
+operation_kwargs=dict(plugin='plugin1')
+)]
+ctx.model.node_template.update(node_template)
+ctx.model.node.update(node)
+api_task, core_task = self._create_node_operation_task(ctx, node)
 storage_task = ctx.model.task.get_by_name(core_task.name)
 assert storage_task.plugin_name == plugin_name
 assert storage_task.execution_name == ctx.execution.name
-assert storage_task.runs_on.id == core_task.context.node_instance.id
+assert storage_task.runs_on == core_task.context.node
 assert core_task.model_task == storage_task
 assert core_task.name == api_task.name
-assert core_task.operation_mapping == api_task.operation_mapping
-assert core_task.actor == api_task.actor == node_instance
+assert core_task.implementation == api_task.implementation
+assert core_task.actor == api_task.actor == node
 assert core_task.inputs == api_task.inputs == storage_task.inputs
 assert core_task.plugin == storage_plugin
 
 def test_source_relationship_operation_task_creation(self, ctx):
-

[09/13] incubator-ariatosca git commit: ARIA-44 Merge parser and storage model

2017-02-16 Thread mxmrlv
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/b6193359/aria/storage/base_model.py
--
diff --git a/aria/storage/base_model.py b/aria/storage/base_model.py
deleted file mode 100644
index f7d0e5b..000
--- a/aria/storage/base_model.py
+++ /dev/null
@@ -1,757 +0,0 @@
-# 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.
-
-"""
-Aria's storage.models module
-Path: aria.storage.models
-
-models module holds aria's models.
-
-classes:
-* Field - represents a single field.
-* IterField - represents an iterable field.
-* Model - abstract model implementation.
-* Snapshot - snapshots implementation model.
-* Deployment - deployment implementation model.
-* DeploymentUpdateStep - deployment update step implementation model.
-* DeploymentUpdate - deployment update implementation model.
-* DeploymentModification - deployment modification implementation model.
-* Execution - execution implementation model.
-* Node - node implementation model.
-* Relationship - relationship implementation model.
-* NodeInstance - node instance implementation model.
-* RelationshipInstance - relationship instance implementation model.
-* Plugin - plugin implementation model.
-"""
-from collections import namedtuple
-from datetime import datetime
-
-from sqlalchemy.ext.associationproxy import association_proxy
-from sqlalchemy.ext.declarative import declared_attr
-from sqlalchemy import (
-Column,
-Integer,
-Text,
-DateTime,
-Boolean,
-Enum,
-String,
-Float,
-orm,
-)
-from sqlalchemy.ext.orderinglist import ordering_list
-
-from ..orchestrator.exceptions import TaskAbortException, TaskRetryException
-from .structure import ModelMixin
-from .type import (
-List,
-Dict
-)
-
-__all__ = (
-'BlueprintBase',
-'DeploymentBase',
-'DeploymentUpdateStepBase',
-'DeploymentUpdateBase',
-'DeploymentModificationBase',
-'ExecutionBase',
-'NodeBase',
-'RelationshipBase',
-'NodeInstanceBase',
-'RelationshipInstanceBase',
-'PluginBase',
-'TaskBase'
-)
-
-#pylint: disable=no-self-argument, abstract-method
-
-
-class BlueprintBase(ModelMixin):
-"""
-Blueprint model representation.
-"""
-__tablename__ = 'blueprints'
-
-created_at = Column(DateTime, nullable=False, index=True)
-main_file_name = Column(Text, nullable=False)
-plan = Column(Dict, nullable=False)
-updated_at = Column(DateTime)
-description = Column(Text)
-
-
-class DeploymentBase(ModelMixin):
-"""
-Deployment model representation.
-"""
-__tablename__ = 'deployments'
-
-_private_fields = ['blueprint_fk']
-
-created_at = Column(DateTime, nullable=False, index=True)
-description = Column(Text)
-inputs = Column(Dict)
-groups = Column(Dict)
-permalink = Column(Text)
-policy_triggers = Column(Dict)
-policy_types = Column(Dict)
-outputs = Column(Dict)
-scaling_groups = Column(Dict)
-updated_at = Column(DateTime)
-workflows = Column(Dict)
-
-@declared_attr
-def blueprint_fk(cls):
-return cls.foreign_key(BlueprintBase, nullable=False)
-
-@declared_attr
-def blueprint(cls):
-return cls.one_to_many_relationship('blueprint_fk')
-
-@declared_attr
-def blueprint_name(cls):
-return association_proxy('blueprint', cls.name_column_name())
-
-
-class ExecutionBase(ModelMixin):
-"""
-Execution model representation.
-"""
-# Needed only for pylint. the id will be populated by sqlalcehmy and the 
proper column.
-__tablename__ = 'executions'
-_private_fields = ['deployment_fk']
-
-TERMINATED = 'terminated'
-FAILED = 'failed'
-CANCELLED = 'cancelled'
-PENDING = 'pending'
-STARTED = 'started'
-CANCELLING = 'cancelling'
-FORCE_CANCELLING = 'force_cancelling'
-
-STATES = [TERMINATED, FAILED, CANCELLED, PENDING, STARTED, CANCELLING, 
FORCE_CANCELLING]
-END_STATES = [TERMINATED, FAILED, CANCELLED]
-ACTIVE_STATES = [state for state in STATES if state not in END_STATES]
-
-VALID_TRANSITIONS = {
-PENDING: [STARTED, CANCELLED],
-STARTED: 

Re: GIT/JIRA Integration

2017-02-16 Thread Ran Ziv
How about now? :)

On Tue, Jan 31, 2017 at 5:21 AM, John D. Ament 
wrote:

> I just pinged them again.
>
> On Mon, Jan 30, 2017 at 7:41 PM Ran Ziv  wrote:
>
> > Bumping this again.
> >
> > On Sun, Jan 22, 2017 at 11:49 AM, Ran Ziv  wrote:
> >
> > > Any news about this perhaps?
> > >
> > > On Wed, Jan 4, 2017 at 5:17 PM, Ran Ziv  wrote:
> > >
> > >> Sounds good. Any idea when it's supposed to happen so I'll know when
> to
> > >> check?
> > >>
> > >> On Wed, Jan 4, 2017 at 3:58 PM, John D. Ament 
> > >> wrote:
> > >>
> > >>> So it looks like its there.  INFRA is currently enabling fisheye for
> > ASF,
> > >>> since Atlassian is shutting down its public offering.  Assuming no
> > qualms
> > >>> with enabling fisheye for ARIAs repos, this will happen
> automatically.
> > >>> Any
> > >>> concerns with that?  Once its up, we can turn off the other format.
> > >>>
> > >>> John
> > >>>
> > >>> On Wed, Jan 4, 2017 at 7:05 AM Ran Ziv  wrote:
> > >>>
> > >>> > Yes, that's what I was referring to.
> > >>> > I indeed don't know about version compatibility, I hope it applies
> > for
> > >>> the
> > >>> > Apache JIRA version as well.
> > >>> >
> > >>> > Ran
> > >>> >
> > >>> > On Wed, Jan 4, 2017 at 2:02 PM, John D. Ament <
> johndam...@apache.org
> > >
> > >>> > wrote:
> > >>> >
> > >>> > > Ran,
> > >>> > >
> > >>> > > Maybe I have to be logged in to see it.  I don't have an account
> on
> > >>> that
> > >>> > > JIRA.  Are you talking about the "Development" section on the far
> > >>> right?
> > >>> > >
> > >>> > > That's a feature in newer JIRA versions.  We're on 6.3.  I'd have
> > to
> > >>> see
> > >>> > if
> > >>> > > that's an option first.
> > >>> > >
> > >>> > > John
> > >>> > >
> > >>> > > On Tue, Jan 3, 2017 at 8:31 AM Ran Ziv 
> wrote:
> > >>> > >
> > >>> > > > Thanks John,
> > >>> > > > I see that basically all git traffic now appears on JIRA as
> > >>> comments -
> > >>> > > that
> > >>> > > > indeed seems too noisy IMO.
> > >>> > > > Is it possible to configure it so that the git-jira integration
> > >>> will
> > >>> > > simply
> > >>> > > > present commits/branches/PRs related to a specific JIRA on a
> > >>> separate
> > >>> > > > section rather than in comments (like it's done here
> > >>> > > >  for
> > >>> example)?
> > >>> > > >
> > >>> > > > thanks
> > >>> > > >
> > >>> > > > On Fri, Dec 30, 2016 at 4:52 PM, John D. Ament <
> > >>> johndam...@apache.org>
> > >>> > > > wrote:
> > >>> > > >
> > >>> > > > > Just as an FYI, I've enabled GIT/JIRA integration for
> > >>> AriaTosca.  If
> > >>> > it
> > >>> > > > > gets too noisy we can switch to worklog entries.  LMK.
> > >>> > > > >
> > >>> > > >
> > >>> > >
> > >>> >
> > >>>
> > >>
> > >>
> > >
> >
>


[GitHub] incubator-ariatosca pull request #71: ARIA-108 Add API for deleting a resour...

2017-02-16 Thread ran-z
GitHub user ran-z opened a pull request:

https://github.com/apache/incubator-ariatosca/pull/71

ARIA-108 Add API for deleting a resource for resource storage



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/apache/incubator-ariatosca 
ARIA-108-delete-resource-api

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/incubator-ariatosca/pull/71.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #71


commit 390ffcb2132b4f533cdc2c84d45f36a464f9063d
Author: Ran Ziv 
Date:   2017-02-16T14:38:51Z

ARIA-108 Add API for deleting a resource for resource storage




---
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: tests fix and exception msg [Forced Update!]

2017-02-16 Thread mxmrlv
Repository: incubator-ariatosca
Updated Branches:
  refs/heads/ARIA-79-concurrent-storage-modifications 5af1a8f23 -> ab138d4d7 
(forced update)


tests fix and exception msg


Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/ab138d4d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/ab138d4d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/ab138d4d

Branch: refs/heads/ARIA-79-concurrent-storage-modifications
Commit: ab138d4d7d82fec44288f96bc8dca9f2c7248b80
Parents: 4a72e11
Author: mxmrlv 
Authored: Thu Feb 16 13:06:35 2017 +0200
Committer: mxmrlv 
Committed: Thu Feb 16 16:36:47 2017 +0200

--
 aria/orchestrator/workflows/executor/process.py |   3 +-
 aria/storage/instrumentation.py |  40 ---
 aria/storage/modeling/instance_elements.py  |   5 +-
 aria/storage_initializer.py |   1 -
 tests/mock/models.py|   2 -
 ...process_executor_concurrent_modifications.py | 109 +--
 tests/storage/test_structures.py|   1 -
 7 files changed, 82 insertions(+), 79 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/ab138d4d/aria/orchestrator/workflows/executor/process.py
--
diff --git a/aria/orchestrator/workflows/executor/process.py 
b/aria/orchestrator/workflows/executor/process.py
index a23e3da..84f5f58 100644
--- a/aria/orchestrator/workflows/executor/process.py
+++ b/aria/orchestrator/workflows/executor/process.py
@@ -227,6 +227,8 @@ class ProcessExecutor(base.BaseExecutor):
 try:
 self._apply_tracked_changes(task, request)
 except BaseException as e:
+e.message = \
+'{0} Remote task execution failed due: {1}'.format(str(e), 
request['exception'])
 self._task_failed(task, exception=e)
 else:
 self._task_failed(task, exception=request['exception'])
@@ -364,7 +366,6 @@ def _main():
 # This is required for the instrumentation work properly.
 # See docstring of `remove_mutable_association_listener` for further 
details
 storage_type.remove_mutable_association_listener()
-
 with instrumentation.track_changes() as instrument:
 try:
 ctx = 
context_dict['context_cls'].deserialize_from_dict(**context_dict['context'])

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/ab138d4d/aria/storage/instrumentation.py
--
diff --git a/aria/storage/instrumentation.py b/aria/storage/instrumentation.py
index 41818b6..b3ca24a 100644
--- a/aria/storage/instrumentation.py
+++ b/aria/storage/instrumentation.py
@@ -14,6 +14,7 @@
 # limitations under the License.
 
 import copy
+import json
 
 import sqlalchemy
 import sqlalchemy.event
@@ -22,7 +23,7 @@ from . import exceptions
 
 from .modeling import model as _model
 
-_VERSION_ID_COL = 'version_id'
+_VERSION_ID_COL = 'version'
 _STUB = object()
 _INSTRUMENTED = {
 _model.Node.runtime_properties: dict
@@ -162,18 +163,31 @@ def apply_tracked_changes(tracked_changes, model):
 returned by calling ``track_changes()``
 :param model: The model storage used to actually apply the changes
 """
-for mapi_name, tracked_instances in tracked_changes.items():
-mapi = getattr(model, mapi_name)
-for instance_id, tracked_attributes in tracked_instances.items():
-instance = None
-for attribute_name, value in tracked_attributes.items():
-if value.initial != value.current:
-if not instance:
-instance = mapi.get(instance_id)
-setattr(instance, attribute_name, value.current)
-if instance:
-_validate_version_id(instance, mapi)
-mapi.update(instance)
+successfully_updated_instances = dict()
+try:
+for mapi_name, tracked_instances in tracked_changes.items():
+successfully_updated_instances[mapi_name] = list()
+mapi = getattr(model, mapi_name)
+for instance_id, tracked_attributes in tracked_instances.items():
+instance = None
+for attribute_name, value in tracked_attributes.items():
+if value.initial != value.current:
+if not instance:
+instance = mapi.get(instance_id)
+setattr(instance, attribute_name, value.current)
+if instance:
+_validate_version_id(instance, mapi)
+

[jira] [Commented] (ARIA-108) Add "Delete" API for resources API

2017-02-16 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on ARIA-108:
--

Commit 390ffcb2132b4f533cdc2c84d45f36a464f9063d in incubator-ariatosca's branch 
refs/heads/ARIA-108-delete-resource-api from [~ran]
[ https://git-wip-us.apache.org/repos/asf?p=incubator-ariatosca.git;h=390ffcb ]

ARIA-108 Add API for deleting a resource for resource storage


> Add "Delete" API for resources API
> --
>
> Key: ARIA-108
> URL: https://issues.apache.org/jira/browse/ARIA-108
> Project: AriaTosca
>  Issue Type: Story
>Reporter: Ran Ziv
>Assignee: Ran Ziv
>
> Resources API currently only has "Upload", "Download", "Read" - it should 
> also expose "Delete" functionality so removed service template's resources 
> may be removed once the template has been deleted.



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


incubator-ariatosca git commit: tests fix

2017-02-16 Thread mxmrlv
Repository: incubator-ariatosca
Updated Branches:
  refs/heads/ARIA-79-concurrent-storage-modifications 1b03bf211 -> b77070899


tests fix


Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/b7707089
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/b7707089
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/b7707089

Branch: refs/heads/ARIA-79-concurrent-storage-modifications
Commit: b77070899e9f2113973d9a65fdc9a95b35d996fb
Parents: 1b03bf2
Author: mxmrlv 
Authored: Thu Feb 16 13:06:35 2017 +0200
Committer: mxmrlv 
Committed: Thu Feb 16 13:06:35 2017 +0200

--
 aria/orchestrator/workflows/executor/process.py |  5 ++
 ...process_executor_concurrent_modifications.py | 74 
 2 files changed, 34 insertions(+), 45 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/b7707089/aria/orchestrator/workflows/executor/process.py
--
diff --git a/aria/orchestrator/workflows/executor/process.py 
b/aria/orchestrator/workflows/executor/process.py
index 319982e..2c563a8 100644
--- a/aria/orchestrator/workflows/executor/process.py
+++ b/aria/orchestrator/workflows/executor/process.py
@@ -366,6 +366,7 @@ def _main():
 storage_type.remove_mutable_association_listener()
 
 with instrumentation.track_changes() as instrument:
+# import pydevd; pydevd.settrace('localhost')
 try:
 ctx = serialization.operation_context_from_dict(context_dict)
 _patch_session(ctx=ctx, messenger=messenger, instrument=instrument)
@@ -376,6 +377,10 @@ def _main():
 task_func(ctx=ctx, **operation_inputs)
 messenger.succeeded(tracked_changes=instrument.tracked_changes)
 except BaseException as e:
+# import traceback
+# with open('/home/maxim/Desktop/tmp_log', 'wr+') as f:
+# traceback.print_exc(file=f)
+
 messenger.failed(exception=e, 
tracked_changes=instrument.tracked_changes)
 
 if __name__ == '__main__':

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/b7707089/tests/orchestrator/workflows/executor/test_process_executor_concurrent_modifications.py
--
diff --git 
a/tests/orchestrator/workflows/executor/test_process_executor_concurrent_modifications.py
 
b/tests/orchestrator/workflows/executor/test_process_executor_concurrent_modifications.py
index 7c54bc5..e46921e 100644
--- 
a/tests/orchestrator/workflows/executor/test_process_executor_concurrent_modifications.py
+++ 
b/tests/orchestrator/workflows/executor/test_process_executor_concurrent_modifications.py
@@ -12,7 +12,6 @@
 # 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 time
 import json
 
@@ -33,34 +32,34 @@ from tests import mock
 from tests import storage
 
 
-def test_concurrent_modification_on_task_succeeded(context, executor, 
shared_file):
-_test(context, executor, shared_file, _test_task_succeeded, 
expected_failure=True)
+def test_concurrent_modification_on_task_succeeded(context, executor, 
lock_files):
+_test(context, executor, lock_files, _test_task_succeeded, 
expected_failure=True)
 
 
 @operation
-def _test_task_succeeded(ctx, shared_file, key, first_value, second_value):
-_concurrent_update(shared_file, ctx.node_instance, key, first_value, 
second_value)
+def _test_task_succeeded(ctx, lock_files, key, first_value, second_value):
+_concurrent_update(lock_files, ctx.node_instance, key, first_value, 
second_value)
 
 
-def test_concurrent_modification_on_task_failed(context, executor, 
shared_file):
-_test(context, executor, shared_file, _test_task_failed, 
expected_failure=True)
+def test_concurrent_modification_on_task_failed(context, executor, lock_files):
+_test(context, executor, lock_files, _test_task_failed, 
expected_failure=True)
 
 
 @operation
-def _test_task_failed(ctx, shared_file, key, first_value, second_value):
-first = _concurrent_update(shared_file, ctx.node_instance, key, 
first_value, second_value)
+def _test_task_failed(ctx, lock_files, key, first_value, second_value):
+first = _concurrent_update(lock_files, ctx.node_instance, key, 
first_value, second_value)
 if not first:
 raise RuntimeError('MESSAGE')
 
 
-def test_concurrent_modification_on_update_and_refresh(context, executor, 
shared_file):
-_test(context, executor, shared_file, _test_update_and_refresh, 
expected_failure=False)
+def test_concurrent_modification_on_update_and_refresh(context, 

[jira] [Created] (ARIA-109) Updating tracked changes should persist

2017-02-16 Thread Maxim Orlov (JIRA)
Maxim Orlov created ARIA-109:


 Summary: Updating tracked changes should persist
 Key: ARIA-109
 URL: https://issues.apache.org/jira/browse/ARIA-109
 Project: AriaTosca
  Issue Type: Story
Affects Versions: 0.1.0
Reporter: Maxim Orlov


Updating tracked changes should persist. If the first update fails, the 
mechanism should try and update any remaining updates. Any failed changes 
should be written to the log.



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


[jira] [Commented] (ARIA-79) Handle attributes update concurrency issues

2017-02-16 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on ARIA-79:


Github user mxmrlv commented on a diff in the pull request:

https://github.com/apache/incubator-ariatosca/pull/64#discussion_r101535626
  
--- Diff: aria/orchestrator/workflows/executor/process.py ---
@@ -227,6 +227,8 @@ def _handle_task_failed_request(self, task_id, request, 
**kwargs):
 try:
 self._apply_tracked_changes(task, request)
 except BaseException as e:
+e.message = \
+'{0} Remote task execution failed due: {1}'.format(str(e), 
request['exception'])
--- End diff --

change order, the tracked changes to log  


> Handle attributes update concurrency issues
> ---
>
> Key: ARIA-79
> URL: https://issues.apache.org/jira/browse/ARIA-79
> Project: AriaTosca
>  Issue Type: Bug
>Reporter: Ran Ziv
>Assignee: Maxim Orlov
>
> Multiple operations may update a node instance's attributes / 
> runtime-properties concurrently, overriding one another's changes.
> Some form of versioning lock should be used to prevent this from happening.



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


[GitHub] incubator-ariatosca pull request #71: ARIA-108 Add API for deleting a resour...

2017-02-16 Thread mxmrlv
Github user mxmrlv commented on a diff in the pull request:

https://github.com/apache/incubator-ariatosca/pull/71#discussion_r101534603
  
--- Diff: aria/storage/filesystem_rapi.py ---
@@ -151,3 +149,17 @@ def upload(self, entry_id, source, path=None, **_):
 shutil.copy2(source, destination)
 else:
 dir_util.copy_tree(source, destination)
   # pylint: disable=no-member
+
+def delete(self, entry_id, path=None, **_):
+"""
+Deletes a file system storage resource.
+
+:param str entry_id: the id of the entry.
+:param str path: a path to delete relative to the root of the 
entry (otherwise all).
+"""
+destination = os.path.join(self.directory, self.name, entry_id, 
path or '')
+if os.path.exists(destination):
--- End diff --

return True if succesfull 


---
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.
---


[1/2] incubator-ariatosca git commit: ARIA-88 Add TOSCA use-case examples [Forced Update!]

2017-02-16 Thread emblemparade
Repository: incubator-ariatosca
Updated Branches:
  refs/heads/ARIA-88-tosca-examples feda8aefc -> 787d7e7e6 (forced update)


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/787d7e7e/extensions/aria_extension_tosca/simple_v1_0/functions.py
--
diff --git a/extensions/aria_extension_tosca/simple_v1_0/functions.py 
b/extensions/aria_extension_tosca/simple_v1_0/functions.py
index d17a960..e385817 100644
--- a/extensions/aria_extension_tosca/simple_v1_0/functions.py
+++ b/extensions/aria_extension_tosca/simple_v1_0/functions.py
@@ -171,15 +171,20 @@ class GetProperty(Function):
 def _evaluate(self, context, container):
 modelable_entities = get_modelable_entities(context, container, 
self.locator,
 self.modelable_entity_name)
-
 req_or_cap_name = self.nested_property_name_or_index[0]
 
 for modelable_entity in modelable_entities:
+properties = None
+
 if hasattr(modelable_entity, 'requirement_templates') \
 and modelable_entity.requirement_templates \
-and (req_or_cap_name in 
modelable_entity.requirement_templates):
-# First argument refers to a requirement
-properties = 
modelable_entity.requirement_templates[req_or_cap_name].properties
+and (req_or_cap_name in [v.name for v in 
modelable_entity.requirement_templates]):
+for requirement_template in 
modelable_entity.requirement_templates:
+if requirement_template.name == req_or_cap_name:
+# First argument refers to a requirement
+# TODO: should follow to matched capability in other 
node...
+raise CannotEvaluateFunctionException()
+break
 nested_property_name_or_index = 
self.nested_property_name_or_index[1:]
 elif hasattr(modelable_entity, 'capability_templates') \
 and modelable_entity.capability_templates \
@@ -501,8 +506,7 @@ def get_host(context, container): # pylint: 
disable=unused-argument
 ends.
 """
 
-print container.relationships
-exit()
+return []
 
 def get_source(context, container): # pylint: disable=unused-argument
 """
@@ -510,6 +514,8 @@ def get_source(context, container): # pylint: 
disable=unused-argument
 source end of the relationship that contains the referencing function.
 """
 
+return []
+
 def get_target(context, container): # pylint: disable=unused-argument
 """
 A TOSCA orchestrator will interpret this keyword as the Node Template 
instance that is at the

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/787d7e7e/extensions/aria_extension_tosca/simple_v1_0/misc.py
--
diff --git a/extensions/aria_extension_tosca/simple_v1_0/misc.py 
b/extensions/aria_extension_tosca/simple_v1_0/misc.py
index 4453c7a..42fc1ad 100644
--- a/extensions/aria_extension_tosca/simple_v1_0/misc.py
+++ b/extensions/aria_extension_tosca/simple_v1_0/misc.py
@@ -85,6 +85,7 @@ class MetaData(ExtensiblePresentation):
 :rtype: dict
 """
 
+@short_form_field('url')
 @has_fields
 @dsl_specification('3.5.5', 'tosca-simple-1.0')
 class Repository(ExtensiblePresentation):

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/787d7e7e/extensions/aria_extension_tosca/simple_v1_0/modeling/__init__.py
--
diff --git a/extensions/aria_extension_tosca/simple_v1_0/modeling/__init__.py 
b/extensions/aria_extension_tosca/simple_v1_0/modeling/__init__.py
index 811da19..f340954 100644
--- a/extensions/aria_extension_tosca/simple_v1_0/modeling/__init__.py
+++ b/extensions/aria_extension_tosca/simple_v1_0/modeling/__init__.py
@@ -22,6 +22,7 @@ from aria.parser.modeling import (Type, RelationshipType, 
PolicyType, ServiceMod
   ArtifactTemplate, Metadata, Parameter)
 
 from ..data_types import coerce_value
+from platform import node
 
 def create_service_model(context): # pylint: 
disable=too-many-locals,too-many-branches
 model = ServiceModel()
@@ -106,7 +107,8 @@ def create_service_model(context): # pylint: 
disable=too-many-locals,too-many-br
 return model
 
 def create_node_template(context, node_template):
-model = NodeTemplate(name=node_template._name, 
type_name=node_template.type)
+node_type = node_template._get_type(context)
+model = NodeTemplate(name=node_template._name, type_name=node_type._name)
 
 if node_template.description:
 model.description = node_template.description.value
@@ -137,12 +139,11 @@ def create_node_template(context, node_template):
 return model
 
 def create_interface_template(context, interface):
-the_type = 

[2/2] incubator-ariatosca git commit: ARIA-88 Add TOSCA use-case examples

2017-02-16 Thread emblemparade
ARIA-88 Add TOSCA use-case examples


Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/787d7e7e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/787d7e7e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/787d7e7e

Branch: refs/heads/ARIA-88-tosca-examples
Commit: 787d7e7e6d210adba96dc0057fdf43f4c0034658
Parents: b619335
Author: Tal Liron 
Authored: Wed Feb 15 12:48:56 2017 -0600
Committer: Tal Liron 
Committed: Thu Feb 16 08:49:52 2017 -0600

--
 MANIFEST.in |   1 +
 aria/parser/modeling/instance_elements.py   |   4 +-
 aria/parser/modeling/model_elements.py  |  10 +-
 .../block-storage-1/block-storage-1.yaml|  68 +
 .../block-storage-2/block-storage-2.yaml|  75 +
 .../block-storage-3/block-storage-3.yaml|  68 +
 .../block-storage-4/block-storage-4.yaml|  96 ++
 .../block-storage-5/block-storage-5.yaml| 109 +++
 .../block-storage-6/block-storage-6.yaml| 102 +++
 .../use-cases/compute-1/compute-1.yaml  |  42 +++
 .../use-cases/container-1/container-1.yaml  |  68 +
 .../multi-tier-1/custom_types/collectd.yaml |  10 +
 .../custom_types/elasticsearch.yaml |   6 +
 .../multi-tier-1/custom_types/kibana.yaml   |  10 +
 .../multi-tier-1/custom_types/logstash.yaml |  10 +
 .../multi-tier-1/custom_types/rsyslog.yaml  |  10 +
 .../use-cases/multi-tier-1/multi-tier-1.yaml| 237 +++
 .../use-cases/network-1/network-1.yaml  |  49 +++
 .../use-cases/network-2/network-2.yaml  |  46 +++
 .../use-cases/network-3/network-3.yaml  |  81 +
 .../use-cases/network-4/network-4.yaml  |  70 +
 .../use-cases/non-normative-types.yaml  | 177 +++
 .../object-storage-1/object-storage-1.yaml  |  24 ++
 .../software-component-1.yaml   |  54 
 .../webserver-dbms-1/webserver-dbms-1.yaml  | 122 
 .../paypalpizzastore_nodejs_app.yaml|  15 +
 .../webserver-dbms-2/webserver-dbms-2.yaml  | 115 +++
 .../profiles/tosca-simple-1.0/artifacts.yaml|  12 +-
 .../profiles/tosca-simple-1.0/capabilities.yaml |   4 +-
 .../profiles/tosca-simple-1.0/data.yaml |   4 +-
 .../profiles/tosca-simple-1.0/groups.yaml   |   2 +-
 .../profiles/tosca-simple-1.0/interfaces.yaml   |   2 +-
 .../profiles/tosca-simple-1.0/nodes.yaml|  11 +-
 .../profiles/tosca-simple-1.0/policies.yaml |  10 +-
 .../tosca-simple-1.0/relationships.yaml |   4 +-
 .../tosca-simple-nfv-1.0/capabilities.yaml  |   3 +-
 .../profiles/tosca-simple-nfv-1.0/data.yaml |   2 +-
 .../profiles/tosca-simple-nfv-1.0/groups.yaml   |   2 +-
 .../profiles/tosca-simple-nfv-1.0/nodes.yaml|  12 +-
 .../simple_v1_0/assignments.py  |   2 +-
 .../simple_v1_0/functions.py|  18 +-
 .../aria_extension_tosca/simple_v1_0/misc.py|   1 +
 .../simple_v1_0/modeling/__init__.py|  13 +-
 .../simple_v1_0/modeling/requirements.py|  29 +-
 .../presentation/field_validators.py|  18 +-
 tests/end2end/test_parser.py|  40 ---
 tests/end2end/test_tosca_simple_v1_0.py | 112 +++
 tests/parser/service_templates.py   |  20 +-
 tests/parser/utils.py   |   9 +-
 .../tosca-simple-1.0/node-cellar/inputs.yaml|   3 +
 .../node-cellar/node-cellar.yaml| 299 +++
 .../node-cellar/types/aria.yaml |  93 ++
 .../node-cellar/types/mongodb.yaml  |  73 +
 .../node-cellar/types/nginx.yaml|  27 ++
 .../node-cellar/types/nodejs.yaml   |  69 +
 .../node-cellar/types/openstack.yaml| 201 +
 .../tosca-simple-1.0/node-cellar/types/os.yaml  |  75 +
 .../tosca-simple-1.0/node-cellar/workflows.py   |  16 +
 .../service_templates/node-cellar/inputs.yaml   |   3 -
 .../node-cellar/node-cellar.yaml| 299 ---
 .../node-cellar/types/aria.yaml |  93 --
 .../node-cellar/types/mongodb.yaml  |  73 -
 .../node-cellar/types/nginx.yaml|  27 --
 .../node-cellar/types/nodejs.yaml   |  69 -
 .../node-cellar/types/openstack.yaml| 201 -
 .../service_templates/node-cellar/types/os.yaml |  75 -
 .../service_templates/node-cellar/workflows.py  |  16 -
 67 files changed, 2737 insertions(+), 984 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/787d7e7e/MANIFEST.in

ARIA update

2017-02-16 Thread Ran Ziv
Hi all,
We've been thinking it'd possibly be a good idea to update about current
progress once a week or two.
This should usually be pretty short, but might help some follow ARIA on a
high level without having to delve into the JIRA issues etc.


On this week's news:

 - The main story is the modelling overhaul that's been taking place for
some time now - up until recently, we've been using models mostly based on
Cloudify's, merged with some TOSCA on the side. Much work's been done as of
late to change this and instead have the whole of ARIA use proper TOSCA
modelling.
This work's not yet completed - redoing the models means changes that
propagate to other parts of the system which use these models, which is,
well, everything - but a major piece of it has been merged this week, and
it seems like the other pieces are also starting to fall into place.

 - ARIA now has some actual service template examples! Those are the ones
that can be found in the TOSCA spec, with some minor adjustments to fix
errors in the examples themselves. This also helped us fix some bugs in the
parser - which has also been celebrating its first tests being introduced
this week. Whoo!

 - The mechanism for serializing an operation context when using the
process executor has been made more generic.
ARIA runs operations in subprocesses, and so the operation context - the
object through which you use ARIA's operation API - has to find its way
into these subprocesses.
Before, the serialization mechanism assumed the API interacts specifically
with sqlite storage, which is what ARIA uses by default when run as a
standalone - Now, however, it should no longer pose a problem for any third
parties which might want to use ARIA but with a different type of SQL
database.

 - We've experienced some freezing and other issues on Windows, so we've
had the pleasure of much Windows debugging this week. Fun times!


See you next week! Unless Windows decides otherwise.

Ran


Re: ARIA update

2017-02-16 Thread Arthur Berezin
Cool stuff Ran! Getting closer and closer for ARIA to run end-to-end fully
compatible TOSCA Simple profile templates!


On Thu, Feb 16, 2017 at 7:53 PM Ran Ziv  wrote:

> Hi all,
> We've been thinking it'd possibly be a good idea to update about current
> progress once a week or two.
> This should usually be pretty short, but might help some follow ARIA on a
> high level without having to delve into the JIRA issues etc.
>
>
> On this week's news:
>
>  - The main story is the modelling overhaul that's been taking place for
> some time now - up until recently, we've been using models mostly based on
> Cloudify's, merged with some TOSCA on the side. Much work's been done as of
> late to change this and instead have the whole of ARIA use proper TOSCA
> modelling.
> This work's not yet completed - redoing the models means changes that
> propagate to other parts of the system which use these models, which is,
> well, everything - but a major piece of it has been merged this week, and
> it seems like the other pieces are also starting to fall into place.
>
>  - ARIA now has some actual service template examples! Those are the ones
> that can be found in the TOSCA spec, with some minor adjustments to fix
> errors in the examples themselves. This also helped us fix some bugs in the
> parser - which has also been celebrating its first tests being introduced
> this week. Whoo!
>
>  - The mechanism for serializing an operation context when using the
> process executor has been made more generic.
> ARIA runs operations in subprocesses, and so the operation context - the
> object through which you use ARIA's operation API - has to find its way
> into these subprocesses.
> Before, the serialization mechanism assumed the API interacts specifically
> with sqlite storage, which is what ARIA uses by default when run as a
> standalone - Now, however, it should no longer pose a problem for any third
> parties which might want to use ARIA but with a different type of SQL
> database.
>
>  - We've experienced some freezing and other issues on Windows, so we've
> had the pleasure of much Windows debugging this week. Fun times!
>
>
> See you next week! Unless Windows decides otherwise.
>
> Ran
>