Re: Git commit

2017-09-13 Thread Rodric Rabbah
With Matt's help, I created a JIRA issue
https://issues.apache.org/jira/browse/INFRA-15081 for reference.

-r

On Wed, Sep 13, 2017 at 5:02 PM, Rodric Rabbah  wrote:

> Thanks Matt.
>
> Separately, Carlos suggested reverting the commit and then commit again.
> Absent a better suggestion/option, I'll do that.
>
> On a side note, I will now be more careful using the shinny green button
> which I think some of us have gotten accustomed to recently.
>
> -r
>
> On Wed, Sep 13, 2017 at 5:00 PM, Matt Rutkowski 
> wrote:
>
>> Sounds like a question for INFRA team; however, only a few are working
>> with GitHub and would not be surprised if they do not have a procedure for
>> this.  For Apache purposes, it would be important for "Snoot" tool to ack.
>> credit for committers when multiple appear on the same merge.
>>
>>
>>
>>
>> From:   Rodric Rabbah 
>> To: dev@openwhisk.apache.org
>> Date:   09/13/2017 03:05 PM
>> Subject:Git commit
>>
>>
>>
>> Hi
>>
>> I just merged a PR:
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.
>> com_apache_incubator-2Dopenwhisk_pull_2718&d=DwIFAg&c=jf_
>> iaSHvJObTbx-siA1ZOg&r=6zQLM7Gc0Sv1iwayKOKa4_SFxRIxS478q2gZlA
>> Jj4Zw&m=IPgHMBExfU1B6EDZtJh9gTpAvgNGZqmYvqNPXwQCEGo&s=wQxKGq
>> 6kmqsqwqpwOm7jVnAPJ5aj4_ZxxtcacxAPBsA&e=
>>
>>
>> You can see if look at it the first commit is it mine but is Scott
>> Wilson-Billing's.
>>
>> Yet when I squashed and merge the PR (which I opened to rebase and update
>> because we dropped the ball on its predecessor
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.
>> com_apache_incubator-2Dopenwhisk_pull_2171&d=DwIFAg&c=jf_
>> iaSHvJObTbx-siA1ZOg&r=6zQLM7Gc0Sv1iwayKOKa4_SFxRIxS478q2gZlA
>> Jj4Zw&m=IPgHMBExfU1B6EDZtJh9gTpAvgNGZqmYvqNPXwQCEGo&s=
>> WjsheALhQmd-XeZy1hnygJ2IIqbOLDILcQt6rSCiWjo&e=
>> ) I was credited with the commit [1] which is not right.
>>
>> I don't know how to correct this without forcing an updated commit (which
>> I don't think we have rights to). What's the Apache way of fixing this?
>>
>> -r
>>
>> [1]
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.
>> com_apache_incubator-2Dopenwhisk_commit_ec56eb81005a0a62cadd
>> 591ca55e1468c73df2b3&d=DwIFAg&c=jf_iaSHvJObTbx-siA1ZOg&r=6zQ
>> LM7Gc0Sv1iwayKOKa4_SFxRIxS478q2gZlAJj4Zw&m=IPgHMBExfU1B6EDZt
>> Jh9gTpAvgNGZqmYvqNPXwQCEGo&s=-1rdGjaZwu-DQK60KeQFNgn7eWRe8jc
>> sl20UM1u1sKs&e=
>>
>>
>>
>>
>>
>


Re: OW Tech Interchange meeting video posted for 2017-09-13

2017-09-13 Thread Matt Rutkowski
While in CWIKI I also added James Thomas as editor as he also expressed an 
interest today in helping with our process docs on runtimes.




From:   "Matt Rutkowski" 
To: dev@openwhisk.apache.org
Date:   09/13/2017 03:49 PM
Subject:Re: OW Tech Interchange meeting video posted for 
2017-09-13



Hi Rob,

To be sure, I noted your absence and very happy to hear you are working 
with clients and continuing to show you are one of our best ambassadors 
for OW. 

As for the runtime docs, I believe the best place to put this is on the 
Apache CWIKI since this is cross-repo. information and likely involves 
some process (submission steps) as well.  If you agree, I just added your 
permissions to create/edit pages, comment, blog, etc. 

Give it a try and let me know if issues with access. 

Kind regards,
Matt 




From:   Rob Allen 
To: dev@openwhisk.apache.org
Cc: d...@openwhisk.incubator.apache.org
Date:   09/13/2017 01:24 PM
Subject:Re: OW Tech Interchange meeting video posted for 
2017-09-13



Thanks for hosting Matt.

It was a good discussion this week and I'm sorry I couldn't make it, but 
clients have to come first! I'll be missing the next one too as I'm 
speaking in Zurich about Swift APIs on Openwhisk :) 


In terms of the documentation on runtimes, it's still on my list and I've 
been incredibly slow at getting to it. Do we want this is the `doc` 
directory or as a wiki page?

Also, someone mentioned that any committer can add labels to issues in 
GitHub. This isn't correct; only people with merge rights can add labels.


Regards,

Rob...



> On 13 Sep 2017, at 18:16, Matt Rutkowski  wrote:
> 
> YouTube link: 
https://urldefense.proofpoint.com/v2/url?u=https-3A__youtu.be_lutkWhqIbjg&d=DwIFAg&c=jf_iaSHvJObTbx-siA1ZOg&r=6zQLM7Gc0Sv1iwayKOKa4_SFxRIxS478q2gZlAJj4Zw&m=VtD-MIF6Jt6AInXvV-8c2izO8W7-To2ex02SGpJRG-Q&s=oJwfG8BIGdZmJIgdJv631nV_YiB0NX5mWp89PXzZ19M&e=
 


> 
> Need some time to post the minutes since I had no note taker to assist 
> today (and need to pull from video)...
> 
> Kind regards
> 
> Kind regards,
> Matt 
> 











Re: Git commit

2017-09-13 Thread Rodric Rabbah
Thanks Matt.

Separately, Carlos suggested reverting the commit and then commit again.
Absent a better suggestion/option, I'll do that.

On a side note, I will now be more careful using the shinny green button
which I think some of us have gotten accustomed to recently.

-r

On Wed, Sep 13, 2017 at 5:00 PM, Matt Rutkowski  wrote:

> Sounds like a question for INFRA team; however, only a few are working
> with GitHub and would not be surprised if they do not have a procedure for
> this.  For Apache purposes, it would be important for "Snoot" tool to ack.
> credit for committers when multiple appear on the same merge.
>
>
>
>
> From:   Rodric Rabbah 
> To: dev@openwhisk.apache.org
> Date:   09/13/2017 03:05 PM
> Subject:Git commit
>
>
>
> Hi
>
> I just merged a PR:
> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.
> com_apache_incubator-2Dopenwhisk_pull_2718&d=DwIFAg&c=jf_iaSHvJObTbx-
> siA1ZOg&r=6zQLM7Gc0Sv1iwayKOKa4_SFxRIxS478q2gZlAJj4Zw&m=
> IPgHMBExfU1B6EDZtJh9gTpAvgNGZqmYvqNPXwQCEGo&s=
> wQxKGq6kmqsqwqpwOm7jVnAPJ5aj4_ZxxtcacxAPBsA&e=
>
>
> You can see if look at it the first commit is it mine but is Scott
> Wilson-Billing's.
>
> Yet when I squashed and merge the PR (which I opened to rebase and update
> because we dropped the ball on its predecessor
> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.
> com_apache_incubator-2Dopenwhisk_pull_2171&d=DwIFAg&c=jf_iaSHvJObTbx-
> siA1ZOg&r=6zQLM7Gc0Sv1iwayKOKa4_SFxRIxS478q2gZlAJj4Zw&m=
> IPgHMBExfU1B6EDZtJh9gTpAvgNGZqmYvqNPXwQCEGo&s=WjsheALhQmd-
> XeZy1hnygJ2IIqbOLDILcQt6rSCiWjo&e=
> ) I was credited with the commit [1] which is not right.
>
> I don't know how to correct this without forcing an updated commit (which
> I don't think we have rights to). What's the Apache way of fixing this?
>
> -r
>
> [1]
> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.
> com_apache_incubator-2Dopenwhisk_commit_ec56eb81005a0a62cadd591ca55e14
> 68c73df2b3&d=DwIFAg&c=jf_iaSHvJObTbx-siA1ZOg&r=6zQLM7Gc0Sv1iwayKOKa4_
> SFxRIxS478q2gZlAJj4Zw&m=IPgHMBExfU1B6EDZtJh9gTpAvgNGZq
> mYvqNPXwQCEGo&s=-1rdGjaZwu-DQK60KeQFNgn7eWRe8jcsl20UM1u1sKs&e=
>
>
>
>
>


Re: Git commit

2017-09-13 Thread Matt Rutkowski
Sounds like a question for INFRA team; however, only a few are working 
with GitHub and would not be surprised if they do not have a procedure for 
this.  For Apache purposes, it would be important for "Snoot" tool to ack. 
credit for committers when multiple appear on the same merge. 




From:   Rodric Rabbah 
To: dev@openwhisk.apache.org
Date:   09/13/2017 03:05 PM
Subject:Git commit



Hi

I just merged a PR:
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_apache_incubator-2Dopenwhisk_pull_2718&d=DwIFAg&c=jf_iaSHvJObTbx-siA1ZOg&r=6zQLM7Gc0Sv1iwayKOKa4_SFxRIxS478q2gZlAJj4Zw&m=IPgHMBExfU1B6EDZtJh9gTpAvgNGZqmYvqNPXwQCEGo&s=wQxKGq6kmqsqwqpwOm7jVnAPJ5aj4_ZxxtcacxAPBsA&e=
 


You can see if look at it the first commit is it mine but is Scott 
Wilson-Billing's. 

Yet when I squashed and merge the PR (which I opened to rebase and update 
because we dropped the ball on its predecessor 
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_apache_incubator-2Dopenwhisk_pull_2171&d=DwIFAg&c=jf_iaSHvJObTbx-siA1ZOg&r=6zQLM7Gc0Sv1iwayKOKa4_SFxRIxS478q2gZlAJj4Zw&m=IPgHMBExfU1B6EDZtJh9gTpAvgNGZqmYvqNPXwQCEGo&s=WjsheALhQmd-XeZy1hnygJ2IIqbOLDILcQt6rSCiWjo&e=
 
) I was credited with the commit [1] which is not right.

I don't know how to correct this without forcing an updated commit (which 
I don't think we have rights to). What's the Apache way of fixing this?

-r

[1] 
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_apache_incubator-2Dopenwhisk_commit_ec56eb81005a0a62cadd591ca55e1468c73df2b3&d=DwIFAg&c=jf_iaSHvJObTbx-siA1ZOg&r=6zQLM7Gc0Sv1iwayKOKa4_SFxRIxS478q2gZlAJj4Zw&m=IPgHMBExfU1B6EDZtJh9gTpAvgNGZqmYvqNPXwQCEGo&s=-1rdGjaZwu-DQK60KeQFNgn7eWRe8jcsl20UM1u1sKs&e=
 






Re: OW Tech Interchange meeting video posted for 2017-09-13

2017-09-13 Thread Matt Rutkowski
Hi Rob,

To be sure, I noted your absence and very happy to hear you are working 
with clients and continuing to show you are one of our best ambassadors 
for OW. 

As for the runtime docs, I believe the best place to put this is on the 
Apache CWIKI since this is cross-repo. information and likely involves 
some process (submission steps) as well.  If you agree, I just added your 
permissions to create/edit pages, comment, blog, etc. 

Give it a try and let me know if issues with access. 

Kind regards,
Matt 




From:   Rob Allen 
To: dev@openwhisk.apache.org
Cc: d...@openwhisk.incubator.apache.org
Date:   09/13/2017 01:24 PM
Subject:Re: OW Tech Interchange meeting video posted for 
2017-09-13



Thanks for hosting Matt.

It was a good discussion this week and I'm sorry I couldn't make it, but 
clients have to come first! I'll be missing the next one too as I'm 
speaking in Zurich about Swift APIs on Openwhisk :) 


In terms of the documentation on runtimes, it's still on my list and I've 
been incredibly slow at getting to it. Do we want this is the `doc` 
directory or as a wiki page?

Also, someone mentioned that any committer can add labels to issues in 
GitHub. This isn't correct; only people with merge rights can add labels.


Regards,

Rob...



> On 13 Sep 2017, at 18:16, Matt Rutkowski  wrote:
> 
> YouTube link: 
https://urldefense.proofpoint.com/v2/url?u=https-3A__youtu.be_lutkWhqIbjg&d=DwIFAg&c=jf_iaSHvJObTbx-siA1ZOg&r=6zQLM7Gc0Sv1iwayKOKa4_SFxRIxS478q2gZlAJj4Zw&m=VtD-MIF6Jt6AInXvV-8c2izO8W7-To2ex02SGpJRG-Q&s=oJwfG8BIGdZmJIgdJv631nV_YiB0NX5mWp89PXzZ19M&e=
 

> 
> Need some time to post the minutes since I had no note taker to assist 
> today (and need to pull from video)...
> 
> Kind regards
> 
> Kind regards,
> Matt 
> 







Git commit

2017-09-13 Thread Rodric Rabbah
Hi

I just merged a PR:
https://github.com/apache/incubator-openwhisk/pull/2718

You can see if look at it the first commit is it mine but is Scott 
Wilson-Billing's. 

Yet when I squashed and merge the PR (which I opened to rebase and update 
because we dropped the ball on its predecessor 
https://github.com/apache/incubator-openwhisk/pull/2171) I was credited with 
the commit [1] which is not right.

I don't know how to correct this without forcing an updated commit (which I 
don't think we have rights to). What's the Apache way of fixing this?

-r

[1] 
https://github.com/apache/incubator-openwhisk/commit/ec56eb81005a0a62cadd591ca55e1468c73df2b3

Re: Base action container reuse on hash of action code instead of action name?

2017-09-13 Thread Rodric Rabbah
Two quick notes:

1. The "main" of the action is part of the container initialization. So the 
container life cycle management would require a change. 

2. This is also related to versioning of actions and could have an impact on 
thoughts in this space captured here: 
https://github.com/apache/incubator-openwhisk/issues/414#issuecomment-323412113

-r


-r

Base action container reuse on hash of action code instead of action name?

2017-09-13 Thread Ben Browning
Right now OpenWhisk looks at an action's namespace and name when selecting
a container from the warm pool. Instead, I'd like to propose that we look
at the action's namespace and a hash of the action's code itself (either
source or binary). This would allow multiple actions that share the same
code to have a higher warm container cache hit rate and decrease overall
churn in the container pool. This change is based on an assumption that it
will not be uncommon to have multiple actions that all live in the same
source tree and share action code with separate `main` classes/methods.
This wouldn't change the concurrency or isolation model of actions; it
would just allow container reuse between actions that share the exact same
code.

We discussed this a bit on Slack and agreed it would be good to talk about
on the list. I'm paraphrasing some of the additional comments from Slack
below so we can discuss those as well.


Rob Allen (akrabat) in Slack - "Thinking about it, I have a feeling that
serverless framework works like that"

Does anyone know if Serverless reuses the same packaged artifact for every
function deployed with `serverless deploy` and just switches out the
`--main` argument?


Michael Marth (mmarth) in Slack - "I would implement that by tracking the
hash of the action code along with the action. The reason why I mention the
implementation: if we were to track the content hash of the action code (a
bit like content addressed storage) then that would open other benefits
apart from the one @bbrowning described. For example: the action storage
could be slow/remote and action code caches local to the action invocation
could quickly do cache lookups."


Markus Thömmes (markusthoemmes) in Slack pointed out that
https://github.com/apache/incubator-openwhisk/blob/master/core/controller/src/main/scala/whisk/core/loadBalancer/LoadBalancerService.scala#L311
and
https://github.com/apache/incubator-openwhisk/blob/master/core/invoker/src/main/scala/whisk/core/containerpool/ContainerPool.scala#L201
would be the lines to change.

Thoughts?

Ben


Re: OW Tech Interchange meeting video posted for 2017-09-13

2017-09-13 Thread Rob Allen
Thanks for hosting Matt.

It was a good discussion this week and I'm sorry I couldn't make it, but 
clients have to come first! I'll be missing the next one too as I'm speaking in 
Zurich about Swift APIs on Openwhisk :) 


In terms of the documentation on runtimes, it's still on my list and I've been 
incredibly slow at getting to it. Do we want this is the `doc` directory or as 
a wiki page?

Also, someone mentioned that any committer can add labels to issues in GitHub. 
This isn't correct; only people with merge rights can add labels.


Regards,

Rob...



> On 13 Sep 2017, at 18:16, Matt Rutkowski  wrote:
> 
> YouTube link: https://youtu.be/lutkWhqIbjg
> 
> Need some time to post the minutes since I had no note taker to assist 
> today (and need to pull from video)...
> 
> Kind regards
> 
> Kind regards,
> Matt 
> 



OW Tech Interchange meeting video posted for 2017-09-13

2017-09-13 Thread Matt Rutkowski
YouTube link: https://youtu.be/lutkWhqIbjg

Need some time to post the minutes since I had no note taker to assist 
today (and need to pull from video)...

Kind regards

Kind regards,
Matt 



Re: PR feedback for SPIs

2017-09-13 Thread Tyson Norris
Thanks Markus.

RE: ContainerFactory - excellent, let me know if you have additional or 
specific comments in the PR. As for unifying with LogStore SPI, I’m fine 
putting these together, but kept them separate since its possible to treat them 
separately, and in general I know there is a preference to keep PRs small as 
possible. Admittedly LogStore changes are driven from ContainerFactory needs in 
our case, but it sounded like activation logging was under discussion 
separately based on the call a couple weeks ago - I’m looking for feedback both 
from container management perspective as well as purely changing log collection 
options.

RE: LoadBalancer + Multi-LoadBalancer - some background to help clear any 
confusion around this: the purpose is for supporting cases that are 
latency-sensitive, and cannot be routed via Kafka. The purpose for supporting 
multiple loadbalancers is based on the assumption that the Kafka routing 
processing guarantees are important for some deployments - simply that in cases 
of resource exhaustion, the response is 202 instead of 200, and will be 
processed “eventually”. I can see benefit in offering both types of processing 
guarantees (e.g. some cases can tolerate a 202, other cases, like ui/api, 
should get a 504/timeout if processing cannot happen within the timeout 
period). I’m ignoring the concurrency discussion because a) you are right in 
that mostly the concurrent processing should be possible with minimal changes 
to existing code (verified that actor reuse is sound here) and b) this is 
purely an optimization of the non-kafka (aka direct) routing case.

All of this to say: I’m in violent agreement about keeping synergy with the 
project, maximizing code reuse, and providing as few extensions and as 
possible. If having precisely 1 loadbalancer that bypasses Kafka is a tolerable 
approach, that is great, but if not, having loadbalancer as an extension point 
is one possible solution, and I’m interested to hear thoughts on other possible 
solutions. In the end, giving up the Kafka approach implies a change to 
response handling, IMHO, which is a big enough shift to warrant having explicit 
options for developers to choose, instead of exposing a single approach.

Thanks
Tyson



On Sep 13, 2017, at 8:08 AM, Markus Thömmes 
mailto:markusthoem...@me.com>> wrote:

Hi Tyson,

first of all: Thanks for the great effort put into all of these SPI 
implementations. Here are some general comments from myself on SPIs

The ContainerFactory SPI feels natural and makes a lot of sense to support 
different deployment models. There is no doubt about that one from my side.

For the LoadBalancer SPIs though, I am quite worried that we're silently 
rebuilding all of OpenWhisk's underlying architecture without anybody really 
noticing it. It feels to me that OpenWhisk is then becoming a set of plugins 
and you cannot compare any performance data anymore, neither do different 
implementors look at the very same bottlenecks. We talked about the direct 
Loadbalancer for instance and I still feel like it is not to be conflated with 
the use-case of having concurrent requests to containers and thus higher 
density on invokers. In fact, if you feel you need a direct Loadbalancer, would 
it maybe even make sense to have that one globally instead of just for that 
specific type of actions? I'd like to keep synergy effects high in the projects 
and I strongly feel that we're missing out on those if we start to break the 
system apart and stop being opinionated about the implementations we've chosen.

As for the logstore I kinda feel the same for now, although I haven't looked 
thoroughly. It does feel like it should at least partly be unified with the 
ContainerFactory SPI since getting to logs always is a concern of the 
underlying container implementation (i.e.: Which log drivers are supported 
etc.).

What do you think?

Cheers
Markus

Am 13. September 2017 um 07:44 schrieb Tyson Norris 
mailto:tnor...@adobe.com.INVALID>>:

Hi -
Following SPI PRs need feedback (in order) , as interested people have time:

- LoadBalancer SPI - 
https://github.com/apache/incubator-openwhisk/pull/2584
 - delegates loadbalancer creation to the SPI

- Multiple LoadBalancers SPI - 
https://github.com/apache/incubator-openwhisk/pull/2668
 - allows multiple load balancers, loaded via the previous SPI, resolved per 
a

Re: Are Java actions first class citizens?

2017-09-13 Thread Minto van der Sluis

Thanks for your reply Ben.

I added a remark to issue 2466 referring to my attempt and the the 
issues I run into.


A possible way out is  to modify the swagger template to cope with 
untyped properties. I will look into this once I have some time ;-)


Regards,

Minto


On 13-09-17 14:49, Ben Browning wrote:

Is there a bug for the KeyValue class being generated incorrectly from the
Swagger spec? That's something we should be able to fix to make generating
clients in other languages, like Java, easier. At a glance it looks like
perhaps the type of the value property should be defined as object which
translates to java.lang.Object (so anything) in generated Java client code.

I'll take a look and add some comments on issue 2590 to help you get the
changes tested.

Ben


On Mon, Sep 11, 2017 at 4:15 PM, Minto van der Sluis  wrote:


Hi,

I have been scratching the surface of Openwhisk and I like it a lot. But
since Java is the eco system (language + tooling) I am most comfortable
with, I would like to create my actions in java. Luckily Openwhisk supports
Java.

Unfortunately diving a bit deeper somehow gives me the impression that
Java is not really a first class citizen. Why do I get this impression?
There are a number of reasons:

1) Examples

I can hardly find any decent Java based examples beyond hello world. In
particular how to invoke other actions from within a Java action.

Seaching on Github with "Openwhisk java" results in only 4 projects :-(
and one of them is mine (see 2)

2) Openwhisk java client API

Searching for Openwhisk client libraries results in libraries for
javascript, swift, go and python. Unfortunately none for java. There is
however a feature request: https://github.com/apache/incu
bator-openwhisk/issues/2466

I had a little go at it myself. The API is mostly generated from the
swagger file. Unfortunately the Swagger code generator generates unusable
code for one the most important data structures, KeyValue.

My Openwhisk Java API can be found at: https://github.com/misl/openwh
isk-client-java

Yes it desperately needs some additional documentation, but first I want
to fix the KeyValue issue. And example of using the library from outside
openwhisk can be found in the code at: https://github.com/misl/openwh
isk-client-java/blob/master/openwhisk-api-client-retrofit/
src/test/java/SimpleTest.java

3) Fully qualified method name does not work for Java action handlers
(see: wsk action create --main)

For this I already created an issue: https://github.com/apache/incu
bator-openwhisk/issues/2590

I even tried solving this one myself, have a look at my fork at:
https://github.com/misl/incubator-openwhisk

Fixing the issue was easy, but testing it seems to be much more complex.
Maybe I need a little help here to be able to complete this one.


All this gives me the impression that the focus for Openwhisk is on a lot
of languages but not on Java. Or am I totally wrong here?

Please share your thoughts.

Kind regards,

misl

PS 1: For the interested I might have another project worth taking a look
at. Openwhisk Package and Action annotations -
https://github.com/misl/xup-openwhisk-annotations . It includes a script
to quickly upload the generated Jar file. This one is also still needs
documentation, but to see how it works have a look at the examples.

PS 2: Oh by the way, If any of these projects are of interest, I am
willing to donate.







Re: Are Java actions first class citizens?

2017-09-13 Thread Rodric Rabbah
Send a pull request :)
I would suggest adding to the docs to show this is possible now:

https://github.com/apache/incubator-openwhisk/blob/master/docs/actions.md#creating-java-actions

On Wed, Sep 13, 2017 at 12:23 PM, Minto van der Sluis  wrote:

> Hi Rodric,
>
> The complexity was not really in the code changes or in building it. But
> more I trying to get my own environment up and running and check if it
> worked with my own actions. But I have to admit I have not spent much time
> on trying to set it up after my first attempt failed.
>
> Adding the test scenario's was more like monkey see monkey do. I was only
> surprised to see the tests separated from the code. But that is probably
> due to the tests being integration test (initially I was looking for
> unittests).
>
> Since you tested my changes, I there anything I need to do to get these
> changes accepted?
>
> Regards,
>
> misl
>
>
> On 13-09-17 16:20, Rodric Rabbah wrote:
>
>> I ran your test for the fully qualified name after reviewing it and it
>> passes. Was your concern that writing the test was too hard or too coarse
>> grained to do?
>> It's true, it would be nice to just test the name resolution, as opposed
>> going through the entire flow and initializing/communicating with an
>> actual
>> container.
>> If that's what you mean by "complex" - I think adding unit tests for the
>> Java proxy makes sense. +1
>>
>> Otherwise, your test is fine. I made a small change locally just to be
>> paranoid.
>> https://github.com/rabbah/openwhisk/commit/7d6cf94fc587390ec97fe27313d352
>> 62c38dfdc9
>>
>> -r
>>
>>
>


Re: Are Java actions first class citizens?

2017-09-13 Thread Minto van der Sluis

Hi Rodric,

The complexity was not really in the code changes or in building it. But 
more I trying to get my own environment up and running and check if it 
worked with my own actions. But I have to admit I have not spent much 
time on trying to set it up after my first attempt failed.


Adding the test scenario's was more like monkey see monkey do. I was 
only surprised to see the tests separated from the code. But that is 
probably due to the tests being integration test (initially I was 
looking for unittests).


Since you tested my changes, I there anything I need to do to get these 
changes accepted?


Regards,

misl


On 13-09-17 16:20, Rodric Rabbah wrote:

I ran your test for the fully qualified name after reviewing it and it
passes. Was your concern that writing the test was too hard or too coarse
grained to do?
It's true, it would be nice to just test the name resolution, as opposed
going through the entire flow and initializing/communicating with an actual
container.
If that's what you mean by "complex" - I think adding unit tests for the
Java proxy makes sense. +1

Otherwise, your test is fine. I made a small change locally just to be
paranoid.
https://github.com/rabbah/openwhisk/commit/7d6cf94fc587390ec97fe27313d352
62c38dfdc9

-r





Re: PR feedback for SPIs

2017-09-13 Thread Markus Thömmes

Hi Tyson,

first of all: Thanks for the great effort put into all of these SPI 
implementations. Here are some general comments from myself on SPIs

The ContainerFactory SPI feels natural and makes a lot of sense to support 
different deployment models. There is no doubt about that one from my side.

For the LoadBalancer SPIs though, I am quite worried that we're silently 
rebuilding all of OpenWhisk's underlying architecture without anybody really 
noticing it. It feels to me that OpenWhisk is then becoming a set of plugins 
and you cannot compare any performance data anymore, neither do different 
implementors look at the very same bottlenecks. We talked about the direct 
Loadbalancer for instance and I still feel like it is not to be conflated with 
the use-case of having concurrent requests to containers and thus higher 
density on invokers. In fact, if you feel you need a direct Loadbalancer, would 
it maybe even make sense to have that one globally instead of just for that 
specific type of actions? I'd like to keep synergy effects high in the projects 
and I strongly feel that we're missing out on those if we start to break the 
system apart and stop being opinionated about the implementations we've chosen.

As for the logstore I kinda feel the same for now, although I haven't looked 
thoroughly. It does feel like it should at least partly be unified with the 
ContainerFactory SPI since getting to logs always is a concern of the 
underlying container implementation (i.e.: Which log drivers are supported 
etc.).

What do you think?

Cheers
Markus

Am 13. September 2017 um 07:44 schrieb Tyson Norris :

Hi -
Following SPI PRs need feedback (in order) , as interested people have time:

- LoadBalancer SPI - https://github.com/apache/incubator-openwhisk/pull/2584 - 
delegates loadbalancer creation to the SPI

- Multiple LoadBalancers SPI - 
https://github.com/apache/incubator-openwhisk/pull/2668 - allows multiple load 
balancers, loaded via the previous SPI, resolved per action via 
LoadBalancerResolver; allows either single loadbalancer (current behavior) or 
kind based loadbalancer (config maps action kinds to a specific loadbalancer); 
this will allow things like latency sensitive actions routing to containers 
directly while latency insensitive actions route via Kafka, etc. Relies on 
previous

- ContainerFactory SPI - 
https://github.com/apache/incubator-openwhisk/pull/2659 - delegates container 
instantiation to an SPI; Affected areas are InvokerReactive; also moved the 
dependent classes (Container et al) to common/scala, to allow for other cases 
(e.g. controller causes container launch, etc); TBD: checking 
maxActiveContainers and maxPoolSize should be part of this SPI too, but 
currently are not. (e.g. maxActiveContainers may be dynamic with some cluster 
managers)

- LogStore SPI - https://github.com/apache/incubator-openwhisk/pull/2695 - 
enables log collection to be delegated to an decoupled system (instead of 
consuming cycles within the invoker JVM); Affected areas are ContainerProxy 
(log collection delegates to the SPI), RestAPIs (delegate log retrieval to the 
SPI), and ContainerFactory impls (delegate docker run --log-opt parameters to 
the SPI); still needs some cleanup (WIP). Relies on ContainerFactory, mostly 
since it organizes Container classes around the ones moved to common/scala


Building on these some upcoming additions include:
- direct LoadBalancer - allow controller to route actions directly to shared 
containers (i.e. to support better throughput with fewer containers, if the 
action supports it, via multiple loadbalancers - one for kafka+invoker routing, 
and one for direct container routing)
- mesos ContainerFactory - to support launching containers in a mesos cluster 
(run more containers with fewer, or just 1, invokers per cluster, since the 
invoker has access to the entire mesos cluster for container launching)


Let me know via comments in PR (or on dev list) if you have questions on these.

Thanks in advance for feedback!
Best
Tyson


REMINDER: Apache OpenWhisk "Tech. Interchange" (bi-weekly) Zoom Meeting in 40 minutes

2017-09-13 Thread Matt Rutkowski
Reminder:
Apache OpenWhisk "Tech. Interchange" (bi-weekly) Zoom Meeting
in 45 minutes

https://zoom.us/my/asfopenwhisk


Carlos is sick today and just asked me to moderate...  Standard agenda:

Introductions of attendees
- Areas of interest in OW / describe current work / something 
interesting about yourself?
Open comments on status (e.g., raise awareness of discussion topics, 
significant PRs, personal work, etc.) in the following project areas:
- Main/core OpenWhisk 
- Kube/Mesos/Compose (Deployment) 
- API Gateway 
- Catalog/Packages/Samples
- Tooling/Utilities
Prepared agenda topics 
- None scheduled, as yet
Solicit topics for next call from attendees
(request topics for discussion or education be posted to "dev" 
list) 
- Educational: “how does this component work?”, “how to debug 
this?”, etc. 
- Feature / idea discussion:  **non-binding** discussion of 
anyone’s ideas to make any part of the project code “better”, more 
“pluggable” or integratable, etc. 
Confirm moderator for next call

Kind regards,
Matt 



Re: Are Java actions first class citizens?

2017-09-13 Thread Rodric Rabbah
I ran your test for the fully qualified name after reviewing it and it
passes. Was your concern that writing the test was too hard or too coarse
grained to do?
It's true, it would be nice to just test the name resolution, as opposed
going through the entire flow and initializing/communicating with an actual
container.
If that's what you mean by "complex" - I think adding unit tests for the
Java proxy makes sense. +1

Otherwise, your test is fine. I made a small change locally just to be
paranoid.
https://github.com/rabbah/openwhisk/commit/7d6cf94fc587390ec97fe27313d352
62c38dfdc9

-r


Re: Are Java actions first class citizens?

2017-09-13 Thread Rodric Rabbah
It will be great to see PRs for examples, client SDK, and enhancements to
the Java actions!

on examples: it is true that there is a disproportionate amount of node
examples compared to the other runtimes. I think it's a reflection of where
the majority of users are. As the Java interest grows, I would expect more
contributions and examples in this space.

on client API: the initial demand was in node, and that's really the only
client that exists (npm openwhisk). A second partial client for Swift
(which nearly half of its features contributed by the community). There is
a potential python client, because historically the CLI was implemented in
python and hence all that code can be repurposed for a python sdk. Ideally
this happens organically as the community grows and requires these
capabilities.

on fully qualified names: some history maybe you've seen:
https://github.com/apache/incubator-openwhisk/issues/1018
https://github.com/apache/incubator-openwhisk/issues/47

I can help with testing the change for fully qualifying the main method
name. It would follow a pattern like this one for Swift.
https://github.com/apache/incubator-openwhisk/blob/master/tests/src/test/scala/actionContainers/Swift3ActionContainerTests.scala#L152-L166

Reach out on slack if I can be of service.

-r


On Mon, Sep 11, 2017 at 4:15 PM, Minto van der Sluis  wrote:

> Hi,
>
> I have been scratching the surface of Openwhisk and I like it a lot. But
> since Java is the eco system (language + tooling) I am most comfortable
> with, I would like to create my actions in java. Luckily Openwhisk supports
> Java.
>
> Unfortunately diving a bit deeper somehow gives me the impression that
> Java is not really a first class citizen. Why do I get this impression?
> There are a number of reasons:
>
> 1) Examples
>
> I can hardly find any decent Java based examples beyond hello world. In
> particular how to invoke other actions from within a Java action.
>
> Seaching on Github with "Openwhisk java" results in only 4 projects :-(
> and one of them is mine (see 2)
>
> 2) Openwhisk java client API
>
> Searching for Openwhisk client libraries results in libraries for
> javascript, swift, go and python. Unfortunately none for java. There is
> however a feature request: https://github.com/apache/incu
> bator-openwhisk/issues/2466
>
> I had a little go at it myself. The API is mostly generated from the
> swagger file. Unfortunately the Swagger code generator generates unusable
> code for one the most important data structures, KeyValue.
>
> My Openwhisk Java API can be found at: https://github.com/misl/openwh
> isk-client-java
>
> Yes it desperately needs some additional documentation, but first I want
> to fix the KeyValue issue. And example of using the library from outside
> openwhisk can be found in the code at: https://github.com/misl/openwh
> isk-client-java/blob/master/openwhisk-api-client-retrofit/
> src/test/java/SimpleTest.java
>
> 3) Fully qualified method name does not work for Java action handlers
> (see: wsk action create --main)
>
> For this I already created an issue: https://github.com/apache/incu
> bator-openwhisk/issues/2590
>
> I even tried solving this one myself, have a look at my fork at:
> https://github.com/misl/incubator-openwhisk
>
> Fixing the issue was easy, but testing it seems to be much more complex.
> Maybe I need a little help here to be able to complete this one.
>
>
> All this gives me the impression that the focus for Openwhisk is on a lot
> of languages but not on Java. Or am I totally wrong here?
>
> Please share your thoughts.
>
> Kind regards,
>
> misl
>
> PS 1: For the interested I might have another project worth taking a look
> at. Openwhisk Package and Action annotations -
> https://github.com/misl/xup-openwhisk-annotations . It includes a script
> to quickly upload the generated Jar file. This one is also still needs
> documentation, but to see how it works have a look at the examples.
>
> PS 2: Oh by the way, If any of these projects are of interest, I am
> willing to donate.
>
>
>


Re: Are Java actions first class citizens?

2017-09-13 Thread Ben Browning
Is there a bug for the KeyValue class being generated incorrectly from the
Swagger spec? That's something we should be able to fix to make generating
clients in other languages, like Java, easier. At a glance it looks like
perhaps the type of the value property should be defined as object which
translates to java.lang.Object (so anything) in generated Java client code.

I'll take a look and add some comments on issue 2590 to help you get the
changes tested.

Ben


On Mon, Sep 11, 2017 at 4:15 PM, Minto van der Sluis  wrote:

> Hi,
>
> I have been scratching the surface of Openwhisk and I like it a lot. But
> since Java is the eco system (language + tooling) I am most comfortable
> with, I would like to create my actions in java. Luckily Openwhisk supports
> Java.
>
> Unfortunately diving a bit deeper somehow gives me the impression that
> Java is not really a first class citizen. Why do I get this impression?
> There are a number of reasons:
>
> 1) Examples
>
> I can hardly find any decent Java based examples beyond hello world. In
> particular how to invoke other actions from within a Java action.
>
> Seaching on Github with "Openwhisk java" results in only 4 projects :-(
> and one of them is mine (see 2)
>
> 2) Openwhisk java client API
>
> Searching for Openwhisk client libraries results in libraries for
> javascript, swift, go and python. Unfortunately none for java. There is
> however a feature request: https://github.com/apache/incu
> bator-openwhisk/issues/2466
>
> I had a little go at it myself. The API is mostly generated from the
> swagger file. Unfortunately the Swagger code generator generates unusable
> code for one the most important data structures, KeyValue.
>
> My Openwhisk Java API can be found at: https://github.com/misl/openwh
> isk-client-java
>
> Yes it desperately needs some additional documentation, but first I want
> to fix the KeyValue issue. And example of using the library from outside
> openwhisk can be found in the code at: https://github.com/misl/openwh
> isk-client-java/blob/master/openwhisk-api-client-retrofit/
> src/test/java/SimpleTest.java
>
> 3) Fully qualified method name does not work for Java action handlers
> (see: wsk action create --main)
>
> For this I already created an issue: https://github.com/apache/incu
> bator-openwhisk/issues/2590
>
> I even tried solving this one myself, have a look at my fork at:
> https://github.com/misl/incubator-openwhisk
>
> Fixing the issue was easy, but testing it seems to be much more complex.
> Maybe I need a little help here to be able to complete this one.
>
>
> All this gives me the impression that the focus for Openwhisk is on a lot
> of languages but not on Java. Or am I totally wrong here?
>
> Please share your thoughts.
>
> Kind regards,
>
> misl
>
> PS 1: For the interested I might have another project worth taking a look
> at. Openwhisk Package and Action annotations -
> https://github.com/misl/xup-openwhisk-annotations . It includes a script
> to quickly upload the generated Jar file. This one is also still needs
> documentation, but to see how it works have a look at the examples.
>
> PS 2: Oh by the way, If any of these projects are of interest, I am
> willing to donate.
>
>
>


Re: Tech Interchange Agenda and Volunteer

2017-09-13 Thread Rob Allen
Hi,

I was hoping I could take this one, but I have a client call tomorrow afternoon 
and am unlikely to make it.

Regards,

Rob...

> On 11 Sep 2017, at 20:26, Carlos Santana  wrote:
> 
> Our next meeting is this Wednesday
> 
> What Items you want to be discuss or watch demo of?
> 
> 
> I'm feeling sick this week, it must be the weather change or something.
> 
> Can someone lead the meeting Wednesday? I might not attend depending how I
> feel by then.
> 
> 
> --Carlos