[Slack] Notifications from the ASF team for May 24th, 2017 at 8:17 AM

2017-05-23 Thread Slack
Hi ARIA TOSCA,

You have a new direct message from the ASF team
(https://the-asf.slack.com/x-185534614710-187083944067/).

---

@digestai
View in the archives:
https://the-asf.slack.com/x-185534614710-187083944067/archives/D5E4SCANM/p1495602063412075

Digest.AI (8:01 AM, May 24th)
Hi ARIA,
*Here’s your digest for May 24th 2017*
There are 20 messages yesterday, and the most active user is ran

*#ariatosca*
 @ran: lol :sweat_smile: I simply thought I'd mention it because the
discussions about those mails originated here, but I haven't replied
here at all :stuck_out_tongue:
 I'll have a look at 149 today, I have yet to read your email about it,
lets talk about it when you wake up ^ _ ^
 -
@arthurberezin It seems like the slack bot is only sending the summaries
for weekdays (Mon-Fri); Try to see if you can make it do it every day
 @emblemparade: @channel i want to suggest a compromise between slack
and email regarding daily [UPDATE]s. let's say that normally we post
them here, UNLESS we know that there is an issue that would require
feedback from others. in that case, we post it on email with as much
detail as possible. this would give the larger community an opportunity
to provide feedback or ask questions about the more major change. makes
sense?
 @emblemparade: [UPDATE] had a headache today and really didn't feel
like coding, so instead i took a first stab at creating documentation
style guidelines for ARIA:
https://cwiki.apache.org/confluence/display/ARIATOSCA/Documentation+Style+Guidelines

would be happy to get feedback!
 @avia: [UPDATE] making the generic foreign keys / polymorphic
association proved to be difficult. There is not an out-of-the-box way
to do it in sqlalchemy, only a 'recipe', that is not even recommended by
the author of sqlalchemy himself. In addition because of its
unintuitiveness, it makes the code harder to understand. So tomorrow
I'll implement the multiple foreign key solution, and see how it goes.





* * *

You can snooze these notifications for
an hour:
https://the-asf.slack.com/unsub/U5FFQJ2LW-5a1cb74d28-notify-mute-1h
eight hours:
https://the-asf.slack.com/unsub/U5FFQJ2LW-796e6535e1-notify-mute-8h
a day:
https://the-asf.slack.com/unsub/U5FFQJ2LW-4e6e073ada-notify-mute-1d
three days:
https://the-asf.slack.com/unsub/U5FFQJ2LW-806a2d8aa0-notify-mute-3d
or the next week:
https://the-asf.slack.com/unsub/U5FFQJ2LW-6adc840c34-notify-mute-7d.

You can also turn email notifications off:
https://the-asf.slack.com/unsub/U5FFQJ2LW-64de78982b-notify.

For more detailed preferences, see your account page:
https://the-asf.slack.com/account.


incubator-ariatosca git commit: removed endpoint for session terminaton. clearing a session is done inhouse

2017-05-23 Thread mxmrlv
Repository: incubator-ariatosca
Updated Branches:
  refs/heads/ARIA-185-NullPool-logging-messages-appear-during-execution 
c1868c2b4 -> 0f2df7d1b


removed endpoint for session terminaton. clearing a session is done inhouse


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

Branch: refs/heads/ARIA-185-NullPool-logging-messages-appear-during-execution
Commit: 0f2df7d1b01fc515f578cc02ad9594330a5bbccf
Parents: c1868c2
Author: max-orlov 
Authored: Wed May 24 01:13:04 2017 +0300
Committer: max-orlov 
Committed: Wed May 24 01:13:04 2017 +0300

--
 aria/orchestrator/context/operation.py  |  5 +++
 .../execution_plugin/ctx_proxy/client.py| 34 +--
 .../execution_plugin/ctx_proxy/server.py| 46 +++-
 aria/orchestrator/workflows/executor/process.py |  3 ++
 4 files changed, 46 insertions(+), 42 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/0f2df7d1/aria/orchestrator/context/operation.py
--
diff --git a/aria/orchestrator/context/operation.py 
b/aria/orchestrator/context/operation.py
index 52d3ab6..0ce790f 100644
--- a/aria/orchestrator/context/operation.py
+++ b/aria/orchestrator/context/operation.py
@@ -102,6 +102,11 @@ class BaseOperationContext(BaseContext):
destroy_session=True,
**kwargs)
 
+def close(self):
+if self._destroy_session:
+self.model.log._session.remove()
+self.model.log._engine.dispose()
+
 
 class NodeOperationContext(BaseOperationContext):
 """

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/0f2df7d1/aria/orchestrator/execution_plugin/ctx_proxy/client.py
--
diff --git a/aria/orchestrator/execution_plugin/ctx_proxy/client.py 
b/aria/orchestrator/execution_plugin/ctx_proxy/client.py
index fbfff57..f7f56aa 100644
--- a/aria/orchestrator/execution_plugin/ctx_proxy/client.py
+++ b/aria/orchestrator/execution_plugin/ctx_proxy/client.py
@@ -89,29 +89,19 @@ def _process_args(json_prefix, args):
 return processed_args
 
 
-def _close_session(socket_url, timeout):
-return _client_request(socket_url, [], timeout, 'DELETE')
-
-
 def main(args=None):
-try:
-args = _parse_args(args)
-response = _client_request(
-args.socket_url,
-args=_process_args(args.json_arg_prefix, args.args),
-timeout=args.timeout)
-if args.json_output:
-response = json.dumps(response)
-else:
-if not response:
-response = ''
-response = str(response)
-sys.stdout.write(response)
-except BaseException as origial_e:
-try:
-_close_session(args.socket_url, args.timeout)
-except BaseException:
-raise origial_e
+args = _parse_args(args)
+response = _client_request(
+args.socket_url,
+args=_process_args(args.json_arg_prefix, args.args),
+timeout=args.timeout)
+if args.json_output:
+response = json.dumps(response)
+else:
+if not response:
+response = ''
+response = str(response)
+sys.stdout.write(response)
 
 if __name__ == '__main__':
 main()

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/0f2df7d1/aria/orchestrator/execution_plugin/ctx_proxy/server.py
--
diff --git a/aria/orchestrator/execution_plugin/ctx_proxy/server.py 
b/aria/orchestrator/execution_plugin/ctx_proxy/server.py
index 6e5b0e3..d9195ff 100644
--- a/aria/orchestrator/execution_plugin/ctx_proxy/server.py
+++ b/aria/orchestrator/execution_plugin/ctx_proxy/server.py
@@ -27,7 +27,6 @@ import bottle
 from aria import modeling
 
 from .. import exceptions
-from . import client
 
 
 class CtxProxy(object):
@@ -38,21 +37,39 @@ class CtxProxy(object):
 self.port = _get_unused_port()
 self.socket_url = 'http://localhost:{0}'.format(self.port)
 self.server = None
+self.bottle_server = None
 self._started = Queue.Queue(1)
+self._terminated = Queue.Queue(1)
 self.thread = self._start_server()
-self._started.get(timeout=5)
+self._started.get(timeout=50)
 
 def _start_server(self):
 proxy = self
 
 class BottleServerAdapter(bottle.ServerAdapter):
+def __init__(self, _session, _terminated, *args, 

[Slack] Notifications from the ASF team for May 23rd, 2017 at 8:17 PM

2017-05-23 Thread Slack
Hi ARIA TOSCA,

You have a new mention from the ASF team
(https://the-asf.slack.com/x-185534614710-186860840147/).

---

#ariatosca
View in the archives:
https://the-asf.slack.com/x-185534614710-186860840147/archives/ariatosca/p1495558377357058

ran (7:52 PM, May 23rd)
Yup, he was

Tal Liron (8:06 PM, May 23rd)
@channel i want to suggest a compromise between slack and email
regarding daily [UPDATE]s. let's say that normally we post them here,
UNLESS we know that there is an issue that would require feedback from
others. in that case, we post it on email with as much detail as
possible. this would give the larger community an opportunity to provide
feedback or ask questions about the more major change. makes sense?


* * *

You can snooze these notifications for
an hour:
https://the-asf.slack.com/unsub/U5FFQJ2LW-5a1cb74d28-notify-mute-1h
eight hours:
https://the-asf.slack.com/unsub/U5FFQJ2LW-796e6535e1-notify-mute-8h
a day:
https://the-asf.slack.com/unsub/U5FFQJ2LW-4e6e073ada-notify-mute-1d
three days:
https://the-asf.slack.com/unsub/U5FFQJ2LW-806a2d8aa0-notify-mute-3d
or the next week:
https://the-asf.slack.com/unsub/U5FFQJ2LW-6adc840c34-notify-mute-7d.

You can also turn email notifications off:
https://the-asf.slack.com/unsub/U5FFQJ2LW-64de78982b-notify.

For more detailed preferences, see your account page:
https://the-asf.slack.com/account.


Re: [UPDATE] Work on ARIA-149: Support intrinsic functions in "dependencies" operation configuration

2017-05-23 Thread Tal Liron
Why do you think that on-the-fly updates won't require implementation and
inputs? It's true that the execution plugin squashes inputs into arguments
and keeps the implementation in arguments.process.script_path, but that's
an implementation detail. Some plugins may care more about what is an input
and what isn't, or do other kinds of mangling to the implementation. In any
case, the user should have to know how to massage these values: they can
set up inputs and possibly configuration (same way as in TOSCA) and then
call Operation.configure to do the right thing.

The implementation and function are not the same, as you can see even in my
trivial example. The implementation is the path to a script. The function
is a path to a Python function. "function" is absolutely not an evaluation
of "implementation": for the execution plugin the function is either
run_script_local or run_script_with_ssh, which is entirely determined by
the topology (relationship to a host node) and has nothing to do with the
implementation. Who knows, some plugins in some cases might totally throw
away the implementation string in some cases if it becomes irrelevant in
some configurations.

I just don't see why we need to introduce restrictions only to avoid saving
a single text column here. As for separating inputs -- seems very obvious
to me.

We will follow up the discussion in person and post our final decision here.

On Tue, May 23, 2017 at 8:57 AM, Ran Ziv  wrote:

> Actually I didn't mean ARIA-180 has already been merged, just that it might
> conflict with it and I think you two should sync about this.
>
> Regarding the new fields - I completely agree with your first paragraph -
> the original values should indeed be kept, and generally speaking the
> service instance models should be decoupled from the template models in
> order to allow on-the-fly updates and so on - but does this really apply
> here? What is the value of storing the original user values on the service
> instance models in this case? On-the-fly updates won't require the original
> value, and it does make sense to me that the only place the original values
> would be stored is on the template. At the end of the day the
> `implementation` and the `function` are one and the same - its simply that
> one of them is already evaluated and the other isn't. Also, Is it not the
> same case as properties that use the `get_input` intrinsic function?
>
> I guess the upside just isn't that clear to me here, and there is the
> downside of these being pretty confusing. The way I see it it's as if
> "implementation" is called "user_implementation" (vs "actual
> implementation") , or rather "template_implementation" - which again hints
> it should sit over at the template models..?
>
>
>
>
>
> On Mon, May 22, 2017 at 7:07 PM, Tal Liron  wrote:
>
> > I see Avia merged ARIA-180, so definitely will convert to one-to-many
> now.
> >
> > The reason the original values are preserved are the same reason all our
> > original values are preserved. The idea is that we don't want to make
> > service instance models dependent on service template models. They are
> > instantiated from them, but these foreign-key fields are all nullable.
> The
> > reason is to allow freedom for orchestration policies with on-the-fly
> > changes the topology. For example, a special kind of scaling policy might
> > involve adding an Nginx load balancer node for HTTP connections. However,
> > what if the user did not have a node template for that kind of the node?
> If
> > we require the creation of an OperationTemplate for every Operation, we
> > make this awkward, because it changes the original template. So, anyway,
> > this has been our principle until now and I suggest we continue this for
> > operations, too.
> >
> > Let's walk through a simple example.
> >
> >1. A service template with a simple compute node, with a single
> "dazzle"
> >operation on a custom interface, and this "dazzle" has a single
> >implementation string, "dazzle_node.sh", with a single string input:
> >"duration"="forever". To keep things simple, no special configuration
> is
> >added via dependencies.
> >2. The parser will create an OperationTemplate with these values:
> >   1. implementation = "dazzle_node.sh"
> >   2. inputs = {
> >  1. duration = "forever"}
> >   3. plugin_specification = None
> >   4. configuration = {}
> >   3. During initial instantiation phase, the above values will be
> >copied to Operation model as is. At this early stage, "function" and
> >"arguments" are still both empty.
> >4. Now during instantiation *configuration* phase, we see that this
> >operation uses the default execution plugin
> (plugin_specification=None).
> >Because this node is a host, it will be configured to be a *remote*
> >operation with very specific arguments. Also, we decided that for all
> >plugins inputs get sent 

incubator-ariatosca git commit: minor fixes [Forced Update!]

2017-05-23 Thread mxmrlv
Repository: incubator-ariatosca
Updated Branches:
  refs/heads/ARIA-185-NullPool-logging-messages-appear-during-execution 
57cebb998 -> c1868c2b4 (forced update)


minor 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/c1868c2b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/c1868c2b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/c1868c2b

Branch: refs/heads/ARIA-185-NullPool-logging-messages-appear-during-execution
Commit: c1868c2b489f5c0830ce24d891a1c4c926d048a4
Parents: 8ce1ddd
Author: max-orlov 
Authored: Tue May 23 18:49:19 2017 +0300
Committer: max-orlov 
Committed: Tue May 23 19:00:28 2017 +0300

--
 aria/orchestrator/execution_plugin/ctx_proxy/client.py  | 12 ++--
 aria/orchestrator/execution_plugin/ctx_proxy/server.py  |  5 +++--
 .../execution_plugin/test_ctx_proxy_server.py   |  1 +
 tests/orchestrator/workflows/executor/__init__.py   |  2 +-
 4 files changed, 11 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/c1868c2b/aria/orchestrator/execution_plugin/ctx_proxy/client.py
--
diff --git a/aria/orchestrator/execution_plugin/ctx_proxy/client.py 
b/aria/orchestrator/execution_plugin/ctx_proxy/client.py
index f58c727..fbfff57 100644
--- a/aria/orchestrator/execution_plugin/ctx_proxy/client.py
+++ b/aria/orchestrator/execution_plugin/ctx_proxy/client.py
@@ -45,7 +45,7 @@ def _http_request(socket_url, request, method, timeout):
 return json.loads(response.read())
 
 
-def _client_request(socket_url, args, method, timeout):
+def _client_request(socket_url, args, timeout, method='POST'):
 response = _http_request(
 socket_url=socket_url,
 request={'args': args},
@@ -90,15 +90,15 @@ def _process_args(json_prefix, args):
 
 
 def _close_session(socket_url, timeout):
-return _client_request(socket_url, [], 'DELETE', timeout)
+return _client_request(socket_url, [], timeout, 'DELETE')
 
 
 def main(args=None):
 try:
 args = _parse_args(args)
-response = _client_request(args.socket_url,
+response = _client_request(
+args.socket_url,
 args=_process_args(args.json_arg_prefix, args.args),
-method='POST',
 timeout=args.timeout)
 if args.json_output:
 response = json.dumps(response)
@@ -107,11 +107,11 @@ def main(args=None):
 response = ''
 response = str(response)
 sys.stdout.write(response)
-except BaseException:
+except BaseException as origial_e:
 try:
 _close_session(args.socket_url, args.timeout)
 except BaseException:
-pass
+raise origial_e
 
 if __name__ == '__main__':
 main()

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/c1868c2b/aria/orchestrator/execution_plugin/ctx_proxy/server.py
--
diff --git a/aria/orchestrator/execution_plugin/ctx_proxy/server.py 
b/aria/orchestrator/execution_plugin/ctx_proxy/server.py
index 7296065..6e5b0e3 100644
--- a/aria/orchestrator/execution_plugin/ctx_proxy/server.py
+++ b/aria/orchestrator/execution_plugin/ctx_proxy/server.py
@@ -105,7 +105,7 @@ class CtxProxy(object):
 request = bottle.request.body.read()  # pylint: disable=no-member
 response = handler(request)
 return bottle.LocalResponse(
-body=json.dumps(response or {}, 
cls=modeling.utils.ModelJSONEncoder),
+body=json.dumps(response, cls=modeling.utils.ModelJSONEncoder),
 status=200,
 headers={'content-type': 'application/json'}
 )
@@ -114,7 +114,8 @@ class CtxProxy(object):
 # Since this runs in a daemon thread, we need to close the session 
each time we process
 # a request (a new session would be supplied by SQLAlchemy 
scoped_session).
 # log mapi is chosen arbitrarily.
-return self.ctx.model.log._session.remove()
+self.ctx.model.log._session.remove()
+return {}
 
 def _process(self, request):
 try:

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/c1868c2b/tests/orchestrator/execution_plugin/test_ctx_proxy_server.py
--
diff --git a/tests/orchestrator/execution_plugin/test_ctx_proxy_server.py 
b/tests/orchestrator/execution_plugin/test_ctx_proxy_server.py
index 98ceff9..c94bae7 100644
--- a/tests/orchestrator/execution_plugin/test_ctx_proxy_server.py
+++ b/tests/orchestrator/execution_plugin/test_ctx_proxy_server.py
@@ 

incubator-ariatosca git commit: minor fixes [Forced Update!]

2017-05-23 Thread mxmrlv
Repository: incubator-ariatosca
Updated Branches:
  refs/heads/ARIA-185-NullPool-logging-messages-appear-during-execution 
75ab5edac -> 57cebb998 (forced update)


minor 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/57cebb99
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/57cebb99
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/57cebb99

Branch: refs/heads/ARIA-185-NullPool-logging-messages-appear-during-execution
Commit: 57cebb998a342e4064cf3581d94b73fad63f199c
Parents: 8ce1ddd
Author: max-orlov 
Authored: Tue May 23 18:49:19 2017 +0300
Committer: max-orlov 
Committed: Tue May 23 18:59:07 2017 +0300

--
 aria/orchestrator/execution_plugin/ctx_proxy/client.py  | 12 ++--
 .../execution_plugin/test_ctx_proxy_server.py   |  1 +
 tests/orchestrator/workflows/executor/__init__.py   |  2 +-
 3 files changed, 8 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/57cebb99/aria/orchestrator/execution_plugin/ctx_proxy/client.py
--
diff --git a/aria/orchestrator/execution_plugin/ctx_proxy/client.py 
b/aria/orchestrator/execution_plugin/ctx_proxy/client.py
index f58c727..fbfff57 100644
--- a/aria/orchestrator/execution_plugin/ctx_proxy/client.py
+++ b/aria/orchestrator/execution_plugin/ctx_proxy/client.py
@@ -45,7 +45,7 @@ def _http_request(socket_url, request, method, timeout):
 return json.loads(response.read())
 
 
-def _client_request(socket_url, args, method, timeout):
+def _client_request(socket_url, args, timeout, method='POST'):
 response = _http_request(
 socket_url=socket_url,
 request={'args': args},
@@ -90,15 +90,15 @@ def _process_args(json_prefix, args):
 
 
 def _close_session(socket_url, timeout):
-return _client_request(socket_url, [], 'DELETE', timeout)
+return _client_request(socket_url, [], timeout, 'DELETE')
 
 
 def main(args=None):
 try:
 args = _parse_args(args)
-response = _client_request(args.socket_url,
+response = _client_request(
+args.socket_url,
 args=_process_args(args.json_arg_prefix, args.args),
-method='POST',
 timeout=args.timeout)
 if args.json_output:
 response = json.dumps(response)
@@ -107,11 +107,11 @@ def main(args=None):
 response = ''
 response = str(response)
 sys.stdout.write(response)
-except BaseException:
+except BaseException as origial_e:
 try:
 _close_session(args.socket_url, args.timeout)
 except BaseException:
-pass
+raise origial_e
 
 if __name__ == '__main__':
 main()

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/57cebb99/tests/orchestrator/execution_plugin/test_ctx_proxy_server.py
--
diff --git a/tests/orchestrator/execution_plugin/test_ctx_proxy_server.py 
b/tests/orchestrator/execution_plugin/test_ctx_proxy_server.py
index 98ceff9..c94bae7 100644
--- a/tests/orchestrator/execution_plugin/test_ctx_proxy_server.py
+++ b/tests/orchestrator/execution_plugin/test_ctx_proxy_server.py
@@ -165,6 +165,7 @@ class TestCtxProxy(object):
 @pytest.fixture
 def server(self, ctx):
 result = ctx_proxy.server.CtxProxy(ctx)
+result._close_session = lambda *args, **kwargs: {}
 yield result
 result.close()
 

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/57cebb99/tests/orchestrator/workflows/executor/__init__.py
--
diff --git a/tests/orchestrator/workflows/executor/__init__.py 
b/tests/orchestrator/workflows/executor/__init__.py
index 1a462ca..375c44e 100644
--- a/tests/orchestrator/workflows/executor/__init__.py
+++ b/tests/orchestrator/workflows/executor/__init__.py
@@ -73,4 +73,4 @@ class MockContext(object):
 if kwargs:
 return cls(storage=aria.application_model_storage(**kwargs))
 else:
-return cls()
\ No newline at end of file
+return cls()



Re: New mailing lists

2017-05-23 Thread Matej Artač

Hello Ran,

I as an observer am quite fine with having digests or transcripts from 
Slack appear in the mailing list.


As far as I understand, Slack is reserved to people with Apache ID, so 
getting the conversation onto the mailing list would be good.


Best regards,
Matej


Ran Ziv je 21.5.2017 ob 14:03 napisal:

Matej, John etc. - The issue we keep coming back to, and the reason we try
to avoid emails, is that discussions on emails are simply much slower than
ones on Slack.

John, regarding summarizing slack conversations on the mailing list
manually - that's possible, but then I feel like we might be getting the
worst of both worlds - someone would have to spend the time summarizing the
conversation, plus it would not be as complete as it would have been had it
been copied in its entirety (or, alternatively, have taken place entirely
over the mailing list). I personally think the bot - assuming we can
improve its format somewhat - is actually more useful in that regard, even
when excluding the work one would have to do to summarize the conversation.

Arthur (and also Tal, who suggested it on Slack) - I'm very much against
moving specifically the daily updates to the mailing list, keeping
everything else on Slack. IMO it makes sense to do it exactly the other way
around. The updates are about things which are in progress, and are much
less relevant to the mailing list than actual discussions and announcements
over completed features etc.


We need to find the right balance between the overhead the mailing list
incurs and the need to have everything logged on the list - and IMO the bot
is the best solution at this time.
However, John, if you think otherwise, even after taking into consideration
what I've mentioned above, then let us know what other flow you suggest
exactly, and we'll follow that instead.


Ran




On Tue, May 16, 2017 at 8:04 AM, Matej Artač  wrote:


Dear all,

I like this proposal. I am an outsider who is interested in the activities
and progress of your project. It would be really great for me if this
mailing list would contain what John suggests. I think it would greatly
improve visibility into your project and likely provide a grounds for some
additional discussion and comments from a larger community.

Best regards,
Matej


John D. Ament je 15.5.2017 ob 16:12 napisal:

No, and that's sort of the issue at hand here.  I've requested these

mailing list changes because the dev@ traffic is typically github or JIRA
chatter.  We have no on list discussions.  I'm basically trying to force
you guys to actually talk to one another via email, since our other
attempts have not worked out well.

I would expect that Slack discussions are summarized here by those
participating in them.  Not automatically.

John

On Tue, May 9, 2017 at 10:00 PM Arthur Berezin 
wrote:

I missed the Slack chat, but sounds good +1. Is there an easy way to get a

digest of the slack chat over dev mailing list?

On Tue, May 9, 2017, 21:43 John D. Ament  wrote:

All,

Based on a brief chat on Slack, I'm going to go ahead and create two new
mailing lists:

- commits@
- issues@

The reason being, the dev list is designed for developer discussions,
but
most of the banter is on JIRA issues or GitHub PRs/commits.  To


effectively


measure the community openness we need to separate the types.

All changes in a JIRA issue will be sent to issues@ and all commits
will
go
to commits@.

John



--
Senior researcher
XLAB d.o.o.
Pot za Brdom 100
SI-1000 Ljubljana
Slovenia

DICE project team leader and WP5 leader: http://www.dice-h2020.eu
Member, OASIS TOSCA Standard Technical Committee

URL: http://www.xlab.si/rd/
Live chat: visit http://www.xlab.si/ and click Live chat
Google Drive, hangouts: matej.artac...@gmail.com
Office phone: +386 1 244 77 53




--
Senior researcher
XLAB d.o.o.
Pot za Brdom 100
SI-1000 Ljubljana
Slovenia

DICE project team leader and WP5 leader: http://www.dice-h2020.eu
Member, OASIS TOSCA Standard Technical Committee

URL: http://www.xlab.si/rd/
Live chat: visit http://www.xlab.si/ and click Live chat
Google Drive, hangouts: matej.artac...@gmail.com
Office phone: +386 1 244 77 53



incubator-ariatosca git commit: removed test fixes

2017-05-23 Thread mxmrlv
Repository: incubator-ariatosca
Updated Branches:
  refs/heads/ARIA-185-NullPool-logging-messages-appear-during-execution 
51816fdb6 -> 8ce11


removed test 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/8ce1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/8ce1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/8ce1

Branch: refs/heads/ARIA-185-NullPool-logging-messages-appear-during-execution
Commit: 8ce1180dc561d0cf5dd902839298a053b538
Parents: 51816fd
Author: max-orlov 
Authored: Tue May 23 18:47:54 2017 +0300
Committer: max-orlov 
Committed: Tue May 23 18:47:54 2017 +0300

--
 tests/orchestrator/execution_plugin/test_ctx_proxy_server.py | 3 +--
 tests/orchestrator/workflows/executor/__init__.py| 6 +-
 2 files changed, 2 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/8ce1/tests/orchestrator/execution_plugin/test_ctx_proxy_server.py
--
diff --git a/tests/orchestrator/execution_plugin/test_ctx_proxy_server.py 
b/tests/orchestrator/execution_plugin/test_ctx_proxy_server.py
index a41f9f0..98ceff9 100644
--- a/tests/orchestrator/execution_plugin/test_ctx_proxy_server.py
+++ b/tests/orchestrator/execution_plugin/test_ctx_proxy_server.py
@@ -136,7 +136,7 @@ class TestCtxProxy(object):
 kwargs=kwargs)
 
 @pytest.fixture
-def ctx(self, mocker):
+def ctx(self):
 class MockCtx(object):
 pass
 ctx = MockCtx()
@@ -160,7 +160,6 @@ class TestCtxProxy(object):
 ctx.stub_args = self.stub_args
 ctx.stub_attr = self.StubAttribute()
 ctx.node = self.NodeAttribute(properties)
-ctx.model = mocker.MagicMock()
 return ctx
 
 @pytest.fixture

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/8ce1/tests/orchestrator/workflows/executor/__init__.py
--
diff --git a/tests/orchestrator/workflows/executor/__init__.py 
b/tests/orchestrator/workflows/executor/__init__.py
index 41c4b2e..1a462ca 100644
--- a/tests/orchestrator/workflows/executor/__init__.py
+++ b/tests/orchestrator/workflows/executor/__init__.py
@@ -73,8 +73,4 @@ class MockContext(object):
 if kwargs:
 return cls(storage=aria.application_model_storage(**kwargs))
 else:
-return cls()
-
-@staticmethod
-def close():
-pass
+return cls()
\ No newline at end of file



Podling Report Reminder - June 2017

2017-05-23 Thread johndament
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, 21 June 2017, 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, June 07).

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.
*   How does the podling rate their own maturity.

This should be appended to the Incubator Wiki page at:

https://wiki.apache.org/incubator/June2017

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


[5/6] incubator-ariatosca git commit: ARIA-258 Convert runtime_properties to attributes

2017-05-23 Thread mxmrlv
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/24e4c7b3/tests/orchestrator/workflows/executor/test_process_executor_tracked_changes.py
--
diff --git 
a/tests/orchestrator/workflows/executor/test_process_executor_tracked_changes.py
 
b/tests/orchestrator/workflows/executor/test_process_executor_tracked_changes.py
index 4fbe9c1..2b628a0 100644
--- 
a/tests/orchestrator/workflows/executor/test_process_executor_tracked_changes.py
+++ 
b/tests/orchestrator/workflows/executor/test_process_executor_tracked_changes.py
@@ -28,7 +28,7 @@ from tests import mock
 from tests import storage
 
 
-_TEST_RUNTIME_PROPERTIES = {
+_TEST_ATTRIBUTES = {
 'some': 'values', 'that': 'are', 'most': 'likely', 'only': 'set', 'here': 
'yo'
 }
 
@@ -46,17 +46,18 @@ def test_track_changes_of_failed_operation(context, 
executor):
 
 def _assert_tracked_changes_are_applied(context):
 instance = context.model.node.get_by_name(mock.models.DEPENDENCY_NODE_NAME)
-assert instance.runtime_properties == _TEST_RUNTIME_PROPERTIES
+assert all(instance.attributes[key].value == value
+   for key, value in _TEST_ATTRIBUTES.items())
 
 
-def _update_runtime_properties(context):
-context.node.runtime_properties.clear()
-context.node.runtime_properties.update(_TEST_RUNTIME_PROPERTIES)
+def _update_attributes(context):
+context.node.attributes.clear()
+context.node.attributes.update(_TEST_ATTRIBUTES)
 
 
 def test_refresh_state_of_tracked_attributes(context, executor):
 out = _run_workflow(context=context, executor=executor, 
op_func=_mock_refreshing_operation)
-assert out['initial'] == out['after_refresh']
+assert out['after_refresh'] == out['after_change']
 assert out['initial'] != out['after_change']
 
 
@@ -66,22 +67,19 @@ def test_apply_tracked_changes_during_an_operation(context, 
executor):
 'changed_but_refreshed': {'some': 'newer', 'properties': 'right there'}
 }
 
-expected_initial = context.model.node.get_by_name(
-mock.models.DEPENDENCY_NODE_NAME).runtime_properties
-
-out = _run_workflow(context=context, executor=executor, 
op_func=_mock_updating_operation,
-inputs=inputs)
+expected_initial = 
context.model.node.get_by_name(mock.models.DEPENDENCY_NODE_NAME).attributes
+out = _run_workflow(
+context=context, executor=executor, op_func=_mock_updating_operation, 
inputs=inputs)
 
 expected_after_update = expected_initial.copy()
 expected_after_update.update(inputs['committed']) # pylint: 
disable=no-member
 expected_after_change = expected_after_update.copy()
 expected_after_change.update(inputs['changed_but_refreshed']) # pylint: 
disable=no-member
-expected_after_refresh = expected_after_update
 
 assert out['initial'] == expected_initial
 assert out['after_update'] == expected_after_update
 assert out['after_change'] == expected_after_change
-assert out['after_refresh'] == expected_after_refresh
+assert out['after_refresh'] == expected_after_change
 
 
 def _run_workflow(context, executor, op_func, inputs=None):
@@ -109,42 +107,42 @@ def _run_workflow(context, executor, op_func, 
inputs=None):
 graph = mock_workflow(ctx=context)  # pylint: 
disable=no-value-for-parameter
 eng = engine.Engine(executor=executor, workflow_context=context, 
tasks_graph=graph)
 eng.execute()
-return context.model.node.get_by_name(
-mock.models.DEPENDENCY_NODE_NAME).runtime_properties.get('out')
+out = 
context.model.node.get_by_name(mock.models.DEPENDENCY_NODE_NAME).attributes.get('out')
+return out.value if out else None
 
 
 @operation
 def _mock_success_operation(ctx):
-_update_runtime_properties(ctx)
+_update_attributes(ctx)
 
 
 @operation
 def _mock_fail_operation(ctx):
-_update_runtime_properties(ctx)
+_update_attributes(ctx)
 raise RuntimeError
 
 
 @operation
 def _mock_refreshing_operation(ctx):
-out = {'initial': copy.deepcopy(ctx.node.runtime_properties)}
-ctx.node.runtime_properties.update({'some': 'new', 'properties': 'right 
here'})
-out['after_change'] = copy.deepcopy(ctx.node.runtime_properties)
+out = {'initial': copy.deepcopy(ctx.node.attributes)}
+ctx.node.attributes.update({'some': 'new', 'properties': 'right here'})
+out['after_change'] = copy.deepcopy(ctx.node.attributes)
 ctx.model.node.refresh(ctx.node)
-out['after_refresh'] = copy.deepcopy(ctx.node.runtime_properties)
-ctx.node.runtime_properties['out'] = out
+out['after_refresh'] = copy.deepcopy(ctx.node.attributes)
+ctx.node.attributes['out'] = out
 
 
 @operation
 def _mock_updating_operation(ctx, committed, changed_but_refreshed):
-out = {'initial': copy.deepcopy(ctx.node.runtime_properties)}
-ctx.node.runtime_properties.update(committed)
+out = {'initial': copy.deepcopy(ctx.node.attributes)}
+

[3/6] incubator-ariatosca git commit: ARIA-208 Fix models relationships

2017-05-23 Thread mxmrlv
ARIA-208 Fix models relationships


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

Branch: refs/heads/ARIA-258-Convert-runtime-properties-to-attributes
Commit: 5798bbfc7d1a95965a4c44d2ebad5dad245c824a
Parents: 78d6019
Author: Ran Ziv 
Authored: Sun May 7 14:58:46 2017 +0300
Committer: Ran Ziv 
Committed: Mon May 22 15:17:21 2017 +0300

--
 aria/modeling/service_template.py | 49 --
 1 file changed, 23 insertions(+), 26 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/5798bbfc/aria/modeling/service_template.py
--
diff --git a/aria/modeling/service_template.py 
b/aria/modeling/service_template.py
index 1eb95a3..12195a1 100644
--- a/aria/modeling/service_template.py
+++ b/aria/modeling/service_template.py
@@ -211,10 +211,6 @@ class ServiceTemplateBase(TemplateModelMixin):
 return relationship.one_to_many(cls, 'service', dict_key='name')
 
 @declared_attr
-def operation_templates(cls):
-return relationship.one_to_many(cls, 'operation_template')
-
-@declared_attr
 def node_templates(cls):
 return relationship.one_to_many(cls, 'node_template', dict_key='name')
 
@@ -483,6 +479,22 @@ class NodeTemplateBase(TemplateModelMixin):
 def nodes(cls):
 return relationship.one_to_many(cls, 'node')
 
+@declared_attr
+def interface_templates(cls):
+return relationship.one_to_many(cls, 'interface_template', 
dict_key='name')
+
+@declared_attr
+def artifact_templates(cls):
+return relationship.one_to_many(cls, 'artifact_template', 
dict_key='name')
+
+@declared_attr
+def capability_templates(cls):
+return relationship.one_to_many(cls, 'capability_template', 
dict_key='name')
+
+@declared_attr
+def requirement_templates(cls):
+return relationship.one_to_many(cls, 'requirement_template', 
child_fk='node_template_fk')
+
 # endregion
 
 # region many_to_one relationships
@@ -507,22 +519,6 @@ class NodeTemplateBase(TemplateModelMixin):
 def attributes(cls):
 return relationship.many_to_many(cls, 'parameter', 
prefix='attributes', dict_key='name')
 
-@declared_attr
-def interface_templates(cls):
-return relationship.one_to_many(cls, 'interface_template', 
dict_key='name')
-
-@declared_attr
-def artifact_templates(cls):
-return relationship.one_to_many(cls, 'artifact_template', 
dict_key='name')
-
-@declared_attr
-def capability_templates(cls):
-return relationship.one_to_many(cls, 'capability_template', 
dict_key='name')
-
-@declared_attr
-def requirement_templates(cls):
-return relationship.one_to_many(cls, 'requirement_template', 
child_fk='node_template_fk')
-
 # endregion
 
 description = Column(Text)
@@ -1209,11 +1205,6 @@ class RequirementTemplateBase(TemplateModelMixin):
 def relationships(cls):
 return relationship.one_to_many(cls, 'relationship')
 
-@declared_attr
-def target_node_type(cls):
-return relationship.many_to_one(
-cls, 'type', fk='target_node_type_fk', 
back_populates=relationship.NO_BACK_POP)
-
 # endregion
 
 # region many_to_one relationships
@@ -1222,6 +1213,11 @@ class RequirementTemplateBase(TemplateModelMixin):
 def node_template(cls):
 return relationship.many_to_one(cls, 'node_template', 
fk='node_template_fk')
 
+@declared_attr
+def target_node_type(cls):
+return relationship.many_to_one(
+cls, 'type', fk='target_node_type_fk', 
back_populates=relationship.NO_BACK_POP)
+
 # endregion
 
 # region many_to_many relationships
@@ -1845,7 +1841,8 @@ class OperationTemplateBase(TemplateModelMixin):
 
 @declared_attr
 def service_template(cls):
-return relationship.many_to_one(cls, 'service_template')
+return relationship.many_to_one(cls, 'service_template',
+back_populates='workflow_templates')
 
 @declared_attr
 def interface_template(cls):



[2/6] incubator-ariatosca git commit: ARIA-259 Updated README install section for ArchLinux

2017-05-23 Thread mxmrlv
ARIA-259 Updated README install section for ArchLinux


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

Branch: refs/heads/ARIA-258-Convert-runtime-properties-to-attributes
Commit: 78d601987e2f51d83da9e0d401f5e063ad66b6ec
Parents: 24d693d
Author: Alexandru Zbarcea 
Authored: Thu May 18 23:23:13 2017 +0300
Committer: Ran Ziv 
Committed: Fri May 19 00:51:54 2017 +0300

--
 README.md | 12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/78d60198/README.md
--
diff --git a/README.md b/README.md
index 06c997e..e534645 100644
--- a/README.md
+++ b/README.md
@@ -46,15 +46,23 @@ Quick Start
 You need Python 2.6 or 2.7. Python 3+ is not currently supported.
 
 To install, we recommend using [pip](https://pip.pypa.io/) and a
-[virtualenv](https://virtualenv.pypa.io/en/stable/). In Debian-based systems:
+[virtualenv](https://virtualenv.pypa.io/en/stable/).
+
+In Debian-based systems:
 
sudo apt install python-setuptools
sudo -H easy_install pip
sudo -H pip install virtualenv
+   virtualenv env
+
+Or in Archlinux-based systems:
+
+   pacman -S python2 python-setuptools python-pip
+   pip install virtualenv
+   virtualenv env -p $(type -p python2)
 
 To install the latest development snapshot of ARIA:
 
-   virtualenv env
. env/bin/activate
pip install 
git+http://git-wip-us.apache.org/repos/asf/incubator-ariatosca.git
 



[1/6] incubator-ariatosca git commit: ARIA-171 service_template.services type inconsistency [Forced Update!]

2017-05-23 Thread mxmrlv
Repository: incubator-ariatosca
Updated Branches:
  refs/heads/ARIA-258-Convert-runtime-properties-to-attributes 0b1a306f6 -> 
24e4c7b39 (forced update)


ARIA-171 service_template.services type inconsistency

As opposed to service_template.node_templates and service.nodes
which have a dict interface, service_template.services
had a list interface. That seemed inconsistent, so the former
interface was changed to a dict interface as well.


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

Branch: refs/heads/ARIA-258-Convert-runtime-properties-to-attributes
Commit: 24d693d762e4a56d6bf16d8c29d76c1f2909098d
Parents: fdd57c4
Author: Avia Efrat 
Authored: Mon May 15 14:26:34 2017 +0300
Committer: Avia Efrat 
Committed: Tue May 16 00:09:49 2017 +0300

--
 aria/cli/commands/service_templates.py | 4 ++--
 aria/modeling/service_template.py  | 2 +-
 tests/cli/test_service_templates.py| 6 --
 tests/end2end/test_hello_world.py  | 2 +-
 tests/end2end/test_nodecellar.py   | 2 +-
 5 files changed, 9 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/24d693d7/aria/cli/commands/service_templates.py
--
diff --git a/aria/cli/commands/service_templates.py 
b/aria/cli/commands/service_templates.py
index 0a24907..d139195 100644
--- a/aria/cli/commands/service_templates.py
+++ b/aria/cli/commands/service_templates.py
@@ -89,8 +89,8 @@ def show(service_template_name, model_storage, mode_full, 
mode_types, format_jso
 
 if service_template.services:
 logger.info('Existing services:')
-for service in service_template.services:
-logger.info('\t{0}'.format(service.name))
+for service_name in service_template.services:
+logger.info('\t{0}'.format(service_name))
 
 
 @service_templates.command(name='list',

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/24d693d7/aria/modeling/service_template.py
--
diff --git a/aria/modeling/service_template.py 
b/aria/modeling/service_template.py
index 7eb35bd..1eb95a3 100644
--- a/aria/modeling/service_template.py
+++ b/aria/modeling/service_template.py
@@ -208,7 +208,7 @@ class ServiceTemplateBase(TemplateModelMixin):
 
 @declared_attr
 def services(cls):
-return relationship.one_to_many(cls, 'service')
+return relationship.one_to_many(cls, 'service', dict_key='name')
 
 @declared_attr
 def operation_templates(cls):

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/24d693d7/tests/cli/test_service_templates.py
--
diff --git a/tests/cli/test_service_templates.py 
b/tests/cli/test_service_templates.py
index bc3c751..7e86896 100644
--- a/tests/cli/test_service_templates.py
+++ b/tests/cli/test_service_templates.py
@@ -65,7 +65,8 @@ class TestServiceTemplatesShow(TestCliBase):
 
 monkeypatch.setattr(_Environment, 'model_storage', mock_storage)
 st = mock_models.create_service_template()
-st.services = [mock_models.create_service(st)]
+s = mock_models.create_service(st)
+st.services = {s.name: s}
 monkeypatch.setattr(mock_storage.service_template, 'get_by_name',
 mock.MagicMock(return_value=st))
 
@@ -79,7 +80,8 @@ class TestServiceTemplatesShow(TestCliBase):
 
 monkeypatch.setattr(_Environment, 'model_storage', mock_storage)
 st = 
mock_models.create_service_template(description='test_description')
-st.services = [mock_models.create_service(st)]
+s = mock_models.create_service(st)
+st.services = {s.name: s}
 monkeypatch.setattr(mock_storage.service_template, 'get_by_name',
 mock.MagicMock(return_value=st))
 

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/24d693d7/tests/end2end/test_hello_world.py
--
diff --git a/tests/end2end/test_hello_world.py 
b/tests/end2end/test_hello_world.py
index fc5f631..71792dd 100644
--- a/tests/end2end/test_hello_world.py
+++ b/tests/end2end/test_hello_world.py
@@ -52,7 +52,7 @@ def _verify_deployed_service_in_storage(service_name, 
model_storage):
 service_templates = model_storage.service_template.list()
 assert len(service_templates) == 1
 assert len(service_templates[0].services) == 1
- 

[4/6] incubator-ariatosca git commit: ARIA-162 Upgrade Colorama library version

2017-05-23 Thread mxmrlv
ARIA-162 Upgrade Colorama library version

Upgraded the Colorama library version - This should
take care of the closed-stream error that appeared
sporadically after test runs.


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

Branch: refs/heads/ARIA-258-Convert-runtime-properties-to-attributes
Commit: 3d22d36fc5c9fb780facfb8880143dda46d16f6f
Parents: 5798bbf
Author: Ran Ziv 
Authored: Mon May 22 16:44:00 2017 +0300
Committer: Ran Ziv 
Committed: Mon May 22 16:44:00 2017 +0300

--
 requirements.in  | 2 +-
 requirements.txt | 5 +
 2 files changed, 2 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3d22d36f/requirements.in
--
diff --git a/requirements.in b/requirements.in
index 3950140..1dd5b1f 100644
--- a/requirements.in
+++ b/requirements.in
@@ -29,7 +29,7 @@ wagon==0.6.0
 bottle>=0.12.0, <0.13
 Fabric>=1.13.0, <1.14
 click>=4.1, < 5.0
-colorama>=0.3.3, < 0.3.5
+colorama>=0.3.7, <= 0.3.9
 PrettyTable>=0.7,<0.8
 click_didyoumean==0.0.3
 backports.shutil_get_terminal_size==1.0.0

http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3d22d36f/requirements.txt
--
diff --git a/requirements.txt b/requirements.txt
index 3accaa3..f7efce9 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -27,7 +27,7 @@ cffi==1.10.0  # via cryptography
 click==4.1
 click_didyoumean==0.0.3
 clint==0.5.1
-colorama==0.3.4
+colorama==0.3.9
 cryptography==1.8.1   # via paramiko
 decorator==4.0.11 # via networkx
 enum34==1.1.6 # via cryptography
@@ -57,6 +57,3 @@ six==1.10.0   # via cryptography, packaging, 
retrying
 sqlalchemy==1.1.6
 wagon==0.6.0
 wheel==0.29.0 # via wagon
-
-# The following packages are considered to be unsafe in a requirements file:
-# setuptools# via cryptography