17 months agoAdd Apache 2 License badge to README. (#9) master
Matt Rutkowski [Mon, 10 Jul 2017 15:10:01 +0000 (10:10 -0500)] 
Add Apache 2 License badge to README. (#9)

17 months agoUpdate (#8)
Matt Rutkowski [Fri, 23 Jun 2017 02:48:37 +0000 (21:48 -0500)] 
Update (#8)


17 months agoExplain how OpenWhisk API can be used from Python (#7)
Alex Glikson [Mon, 19 Jun 2017 15:30:05 +0000 (18:30 +0300)] 
Explain how OpenWhisk API can be used from Python (#7)

* Explain how OpenWhisk API can be used from Python

Inspired by by @jthomas

* typo

* fixed links and wording in

17 months agoupdate Travis to include scancode utility. (#6)
Matt Rutkowski [Fri, 16 Jun 2017 23:41:18 +0000 (18:41 -0500)] 
update Travis to include scancode utility. (#6)

21 months agoUpdate (#5)
cclauss [Wed, 8 Mar 2017 09:20:05 +0000 (10:20 +0100)] 
Update (#5)

* Update

* Update

* Update

21 months agoPython 3 and flake8 updates (#3)
cclauss [Wed, 8 Mar 2017 07:19:12 +0000 (08:19 +0100)] 
Python 3 and flake8 updates (#3)

* Python 3 and flake8 updates


* Update

* Create

* Delete

* Update

* Update

* Update

* Update

* Update

* Update

* Update

* Update

* Update

* Update

* Update

* Update

* Update .travis.yml

* Create

* Update

* Update

* Update

* Update

* Update

21 months agoPython 3 plus flake8 changes (#2)
cclauss [Tue, 7 Mar 2017 20:06:54 +0000 (21:06 +0100)] 
Python 3 plus flake8 changes (#2)

* Python 3 plus flake8 changes

* Create .travis to run flake8 on pull requests

Use `--exit-zero` to silence all flake8 errors.

* Update .travis

* Rename .travis to .travis.yml

* revert wsk changes

* Turn off slack notification

22 months agoCreate LICENSE.txt
Matt Rutkowski [Wed, 25 Jan 2017 19:54:19 +0000 (13:54 -0600)] 
Create LICENSE.txt

22 months agoCreate
Matt Rutkowski [Wed, 25 Jan 2017 19:53:58 +0000 (13:53 -0600)] 

2 years agoFix spelling mistakes.
Josh Soref [Fri, 26 Aug 2016 02:06:54 +0000 (02:06 +0000)] 
Fix spelling mistakes.

spelling: accessible
spelling: address
spelling: already
spelling: ambiguous
spelling: name
spelling: available
spelling: basic
spelling: blackbox
spelling: characters
spelling: chosen
spelling: comma
spelling: components
spelling: constructor
spelling: cloudant
spelling: couldn't
spelling: current
spelling: before
spelling: disconnect
spelling: entities
spelling: environment
spelling: exhausted
spelling: explicit
spelling: execute
spelling: extension
spelling: expected
spelling: failure
spelling: gzipping
spelling: loadbalancer
spelling: milliseconds
spelling: namespace
spelling: namespaces
spelling: namespace
spelling: offset
spelling: omitempty
spelling: output
spelling: overridden
spelling: overwritten
spelling: precedence
spelling: remaining
spelling: seconds
spelling: repository
spelling: restarting
spelling: stderr
spelling: stdout
spelling: subject (API)
spelling: the
spelling: untarring
spelling: utilities
spelling: zookeeper

2 years agoMake image prefix configurable.
Markus Thoemmes [Mon, 8 Aug 2016 17:24:44 +0000 (19:24 +0200)] 
Make image prefix configurable.

Adds a new parameter to docker.gradle `dockerImagePrefix` which specifies the PREFIX part in the following format: {REGISTRY}/{PREFIX}/{IMAGE}:{TAG}. This used to be hardcoded to "whisk", e.g. whisk/controller.

Implements a parameter for ansible to pull an image prefixed by "docker_image_prefix" (PREFIX in the following format): {REGISTRY}/{PREFIX}/{IMAGE}:{TAG}. Was previously hardcoded as "whisk".

Writes the parameter into and makes the invoker pick it up for spawning containers.

Add different tag in travis to flesh out problems.

2 years agoissue #1081 pushImage finalize instead of distDocker
Dominik Jall [Thu, 18 Aug 2016 13:50:51 +0000 (09:50 -0400)] 
issue #1081 pushImage finalize instead of distDocker

2 years agoFixed typo in 'package update' usage help
Alex Glikson [Tue, 16 Aug 2016 14:20:46 +0000 (17:20 +0300)] 
Fixed typo in 'package update' usage help

2 years agoSplit CLI tests into basic usage and integration tests.
Rodric Rabbah [Wed, 27 Jul 2016 20:49:48 +0000 (16:49 -0400)] 
Split CLI tests into basic usage and integration tests.

Change units from Int to ByteSize for byte-sized-limited, update comments and json serdes, add byte size subtraction, update tests.

Make some const values core package visible.

Make memory option byte-sizes.

Add toString on byte-size and update error messages.

Remove printlns.

Update and move tests around between packages.

Make TimeLimit constructor accept only a duration.

Revert change to log/memory limit constructor so that the type is int not bytesize (really would want to constrain this to be MB but the type conversions aren't that rich and arguably not worth it as this can be hidden behind the private constructor).

Change Bytes to B in toString to avoid 1 bytes vs 1 byte. Should it be byte[s] and append the s only when necessary?

Emit parameters should test fail.

Use python CLI for http test as go cli assumes https.

Add some more tests for limits.

Use Python CLI for two tests that do not work with Go CLI.

Add retry on list operations which might need some time to be consistent.

2 years agoFix link to CLI and add API host tip.
Rodric Rabbah [Wed, 3 Aug 2016 14:13:00 +0000 (10:13 -0400)] 
Fix link to CLI and add API host tip.
Fix link to db README.

Remove deadcode.

Move gradle helper to gradle directory and update all path.

2 years agoMake logsize settable for each action
Markus Thoemmes [Tue, 26 Jul 2016 12:35:30 +0000 (14:35 +0200)] 
Make logsize settable for each action

Adds the logsize as a limit that is settable per action and thus included in the quota for each action.
Document logsize.
Handle limit flags as pointers to get proper null values.
Adding ActionLimit permutation tests.

Signed-off-by: Christian Bickel <>
2 years agoAllow CLI to set API host including protocol and port - this removes the hardcoded...
Rodric Rabbah [Wed, 20 Jul 2016 01:03:25 +0000 (21:03 -0400)] 
Allow CLI to set API host including protocol and port - this removes the hardcoded https dependence for the API base.
Add tests for using CLI with API host that specifies protocol and port. Enabled only for Python CLI as it fails with Go CLI - see issue #924.
Remove redundant required properties in Controller/Loadbalancer. Do not startup an actor system if the configuration is not valid. Allow controller to run without container.
Since errors are now printed to stderr, remove the colon which will appear out of place on stdout in CLI error message.

2 years agoFurther post-ant cleanup
Markus Thoemmes [Fri, 8 Jul 2016 23:10:33 +0000 (01:10 +0200)] 
Further post-ant cleanup

This removes duplication introduced in the ant -> ansible migration.

2 years agoRemove all ant build files.
Rodric Rabbah [Sat, 2 Jul 2016 10:24:26 +0000 (06:24 -0400)] 
Remove all ant build files.

Remove ant from ubuuntu setup.

2 years agoAdds `action update` test that expects failure when missing file is specified
Mark Deuser [Wed, 29 Jun 2016 20:29:13 +0000 (16:29 -0400)] 
Adds `action update` test that expects failure when missing file is specified

Removes deadcode from

2 years agoResolve "nodejs:default" kind into "nodejs:6"
Justin Berstler [Fri, 24 Jun 2016 20:12:36 +0000 (16:12 -0400)] 
Resolve "nodejs:default" kind into "nodejs:6"

This mapping is separated out into a trait called DefaultRuntimeVersions which can be used to map kind aliases for other runtimes as well.

Update swagger doc to include the "nodejs:6" and "nodejs:default" kind values

Add unit tests to ensure correct behavior of "nodejs:default" kind: Explicitly using this kind value should result in a resolved kind of "nodejs:6"; Not specifying any kind value for .js actions should also result in a kind of "nodejs:6"

Update both Python and Go CLIs to utilize "nodejs:default" kind. This kind can be explicitly supplied by the user, or it will be inferred for .js actions where the kind is not explicitly supplied.

2 years agoAdd -i/-s for allowing/disallowing untrusted certificates when connecting over HTTPS.
Rodric Rabbah [Sat, 25 Jun 2016 21:43:56 +0000 (17:43 -0400)] 
Add -i/-s for allowing/disallowing untrusted certificates when connecting over HTTPS.

Fix comment. Remove status from rule schema conformance test.

Add test for wskadmin create with explicit uuid:key.

2 years agoAdd a switch to all the tests to toggle between Python and GO CLI version.
James Dubee [Fri, 10 Jun 2016 05:53:08 +0000 (01:53 -0400)] 
Add a switch to all the tests to toggle between Python and GO CLI version.
Fixed use of static python/go CLI switch; replaced with instance variable. Add missing wsk properties overrides in one test. Fix singleton object methods to accept required switch as argument. Add exemption for go cli link.

2 years agoAdd --insecure|-i flag to the python CLI for CLI syntax parity with the Go CLI.
Mark Deuser [Fri, 24 Jun 2016 19:35:48 +0000 (15:35 -0400)] 
Add --insecure|-i flag to the python CLI for CLI syntax parity with the Go CLI.
This flag is simply ignored by the python CLI; previously it caused a failure.

2 years agoFix active ack's completion of the promise. While the promise's future was bounded...
Rodric Rabbah [Fri, 24 Jun 2016 03:44:11 +0000 (23:44 -0400)] 
Fix active ack's completion of the promise. While the promise's future was bounded by timeout, it in fact would not fail as expected by the controller since the promise was never completed.
Addressed by completing the promise on timeout (i.e., when active ack expiration has occurred).

2 years agoRemove CLI manual use of pipe.js and use of parameters and use a new sequence kind...
Perry Cheng [Fri, 10 Jun 2016 19:47:59 +0000 (15:47 -0400)] 
Remove CLI manual use of pipe.js and use of parameters and use a new sequence kind and components field.
Use SequenceExec for sequences but with a NodejsExec-like implementation for now where the compoments meta-data is converted to parameters.

2 years agoFix all parts of the docker skeleton action which were completely broken.
Rodric Rabbah [Tue, 14 Jun 2016 11:48:01 +0000 (07:48 -0400)] 
Fix all parts of the docker skeleton action which were completely broken.
Check clientApp returns a JSON parsable object and if not, report error and log a message.
Update example to show how params are received and return a proper JSON.
Fix space in path in various build scripts.
Add gradle build for docker skeleton - to enable testing locally.
Replace broken docker action tests with test that verifies the docker skeleton can tolerate an init message and can receive/respond with JSON objects. This test suite is not complete in that the docker skeleton hardcodes an example and the tests are specific to that example so cannot test that failure modes are correct yet.
Add CLI tests to download sdks and verify them.
Move sdk/docker/dockerSkeleton to sdk/docker.
Renamed clientApp to action.
Moved SDK tests.

2 years agoAllow for HTTPS proxy to openwhisk via env var, using https_proxy var name matching...
Rodric Rabbah [Thu, 9 Jun 2016 05:15:33 +0000 (01:15 -0400)] 
Allow for HTTPS proxy to openwhisk via env var, using https_proxy var name matching cloudfoundy
Supported only for HTTPS endpoints. Fixes issue #586.

2 years agoIgnoring errors on cleanup measures for CLI build, fixes #626
Markus Thoemmes [Mon, 13 Jun 2016 09:39:29 +0000 (11:39 +0200)] 
Ignoring errors on cleanup measures for CLI build, fixes #626

2 years agoAdd the iOS app examples and the sdk to local deploy
Vincent Hou [Thu, 26 May 2016 14:29:17 +0000 (10:29 -0400)] 
Add the iOS app examples and the sdk to local deploy

Currently iOS is not an available SDK for download. This patch adds the
iOS package when the deploy target is located locally. Remote deploy needs
the users to copy the iOS artifact to correct location.

Closes-Bug: #502

2 years agoUpdate wskadmin
jeremiaswerner [Thu, 9 Jun 2016 20:13:10 +0000 (22:13 +0200)] 
Update wskadmin

2 years agoRemoved Cloudant SDK dependency
Philippe Suter [Thu, 2 Jun 2016 16:30:09 +0000 (12:30 -0400)] 
Removed Cloudant SDK dependency

2 years agoAdd Node.js 6 runtime
Jason Peterson [Mon, 23 May 2016 20:38:10 +0000 (16:38 -0400)] 
Add Node.js 6 runtime

2 years agoAdds support to retrieve logs for a transaction from controller or invoker logs.
Rodric Rabbah [Sat, 28 May 2016 17:13:29 +0000 (13:13 -0400)] 
Adds support to retrieve logs for a transaction from controller or invoker logs.

2 years agoFixes issue #352.
Rodric Rabbah [Thu, 19 May 2016 05:01:52 +0000 (01:01 -0400)] 
Fixes issue #352.

AuthenticatedRoute overrides BasicHttpAuthenticator.apply to provide a custom rejection (either 500 or 503 response).
Added unit tests for authenticated route to confirm custom rejection is generated and served as HTTP response by custom rejection handler.

2 years agoBump test grace period for swift actions.
Rodric Rabbah [Sun, 22 May 2016 01:13:49 +0000 (21:13 -0400)] 
Bump test grace period for swift actions.
Rewrite activation console tests in scala with some hardening.
Fix #417 along the way (activation console when time traveling shows activations in correct order).
Organize imports.

2 years agoFactored common shell bits to '' from db scripts.
Rodric Rabbah [Sun, 15 May 2016 13:48:28 +0000 (09:48 -0400)] 
Factored common shell bits to '' from db scripts.
Added 'wskadmin db get' operation to list db or view contents.
Removed response logging on get.
Fixed: copy action helper assumed copying sequence.
Tweaked error message in CLI on copy.
Added Apache 2.0 badge.

2 years agoAdd tests for creating trigger with an invalid feed from CLI.
Rodric Rabbah [Fri, 13 May 2016 23:28:23 +0000 (19:28 -0400)] 
Add tests for creating trigger with an invalid feed from CLI.
Modified CLI output on action invoke so that the activation result is projected correctly for 200, 500 and 502 activations.
Removed "response:" prefix on blocking activation result.

2 years agoFixing issue #132. actions/name?blocking=true&result=true returns the result.
Fatih Ulusoy [Tue, 5 Apr 2016 08:30:06 +0000 (10:30 +0200)] 
Fixing issue #132. actions/name?blocking=true&result=true returns the result.

2 years agoOptimize docker images and travis build
Markus Thoemmes [Mon, 18 Apr 2016 19:04:15 +0000 (21:04 +0200)] 
Optimize docker images and travis build

- whisk/scala: installing jre instead of jdk and nuke scala
- better base images: buildpack-deps
- drop maven from kafka and use wget instead
- install nodejs binary directly instead of apt-get it
- @rabbah consolidated common python build steps to elevate docker caching

2 years agoMoved Swift3 test, fixed formatting issues and extraneous white space in Swift code...
Rodric Rabbah [Thu, 5 May 2016 21:58:43 +0000 (17:58 -0400)] 
Moved Swift3 test, fixed formatting issues and extraneous white space in Swift code. Fixed up the CLI comments. Tweaked the Swagger docs more but these are a mess we need to fix more systematically.

Refactored Swift tests so that swift:3 extends swift tests. Rewrite Swift CLI tests in Scala and make Swift:3 test actually run the action.

Organize Docker to hit in cache on python layer.

2 years agoCreate Swift 3 runtime with KituraNet. Update CLI, add CLI and container tests.
Paul Castro [Fri, 29 Apr 2016 21:39:39 +0000 (17:39 -0400)] 
Create Swift 3 runtime with KituraNet. Update CLI, add CLI and container tests.

2 years agoAdding support for native python actions. Issue #16
Ioana Baldini [Tue, 19 Apr 2016 19:21:02 +0000 (15:21 -0400)] 
Adding support for native python actions. Issue #16

Fix hello python sample action to fit the same pattern as the js and swift actions.

2 years agoPrint stack trace on one line.
Rodric Rabbah [Wed, 27 Apr 2016 12:52:55 +0000 (08:52 -0400)] 
Print stack trace on one line.
On blocking invoke, CLI reports full activation unless --result is used.
Cleanup uses of duration DSL.
Fix typo in catalog doc.
Fix comment.
Tweak test to print error message if defined.

2 years agoissue #291 allow api host to be set if nothing else was set yet.
Dominik Jall [Mon, 2 May 2016 07:44:44 +0000 (09:44 +0200)] 
issue #291 allow api host to be set if nothing else was set yet.

2 years agoConsolidated .gitignore files
Markus Thoemmes [Wed, 20 Apr 2016 15:32:20 +0000 (17:32 +0200)] 
Consolidated .gitignore files

2 years agoissue #197 restructure ansible deployment. using modes for deploy, clean, initdb.
Dominik Jall [Wed, 6 Apr 2016 12:48:55 +0000 (14:48 +0200)] 
issue #197 restructure ansible deployment. using modes for deploy, clean, initdb.
adding roles for prereq and postdeploy as well as db role for local CouchDB.

issue #197 introduce deploy and clean mode for each role

issue #197 ignore errors on cleanup. invoker mounts provoke some device busy errors.

issue #197 remove logs on cleanup.

issue #197 don't create retry files

issue #197 merge loadbalancer into controller. remove loadbalancer role.

issue #197 createImmortalDBs, generate, env for travis

issue #197 install ansible via pip on travis.

issue #197 travis does not like us using port 53. changing back to 8600. we are not using consul dns anyway atm.

issue #197 fix cli test

issue #197 fix and

issue #197 fix db prefix if hostname has uppercase letters

issue #197 add db role to launch CouchDB if needed.

issue #197 generate db env file to make ant build happy.

issue #197 re-add CLI Dockerfile for now

Signed-off-by: Hoang Anh Le <>
issue #197 replace with playbook to reduce dependency on code.

Signed-off-by: Hoang Anh Le <>
issue #197 add openwhisk.home to

Signed-off-by: Hoang Anh Le <>
issue #197 disable ansible on travis for now. enable when team decides to go with ansible.

Signed-off-by: Hoang Anh Le <>
issue #197 applied code review feedback: modularize deployment into individual playbooks, factored out initdb mode into db role, created separate roles for db providers which allows us to add more providers in the future, added user prommpt before dropping immortal db (can be overriden via cmd line param for travis)

2 years agoMake the new build.gradle non-invasive. To be updated later
Markus Thoemmes [Fri, 8 Apr 2016 12:42:04 +0000 (14:42 +0200)] 
Make the new build.gradle non-invasive. To be updated later

2 years agoBuild CLI using Gradle
Markus Thoemmes [Wed, 6 Apr 2016 12:48:55 +0000 (14:48 +0200)] 
Build CLI using Gradle

issue #185: introduce playbook for generating and deploying the CLI tarball

issue #185 don't deploy consul on ansible host

issue #187 add old Dockerfile for now. will be removed later.

issue #185 fix travis test

Signed-off-by: Hoang Anh Le <>
2 years agoNormalized whitespaces.
Philippe Suter [Tue, 5 Apr 2016 21:04:47 +0000 (17:04 -0400)] 
Normalized whitespaces.

1. Removed all trailing spaces.
2. Ensured all files end with EOL.
3. Turned tabs into spaces.

2 years agoMaking CouchDB accessible over HTTP (instead of HTTPS)
Philippe Suter [Fri, 1 Apr 2016 22:02:53 +0000 (18:02 -0400)] 
Making CouchDB accessible over HTTP (instead of HTTPS)

This introduces a new configuration setting `db.procotol`, whose value should be `http` or `https`. It defaults to `https`. The Cloudant client will not initialize if the protocol is not set to `https`.

It also makes the convenience container `whisk/couchdb` work over HTTP rather than HTTPS. The main motivation is to allow REST calls to such local CouchDB deployments (interestingly, the CouchDB Java API was apparently happily ignoring the invalid certificates the whole time).

2 years agoRemove relative path dependences.
Rodric Rabbah [Thu, 24 Mar 2016 16:02:11 +0000 (12:02 -0400)] 
Remove relative path dependences.

Export openwhisk home as environemnt variable for required shell script.

Adjust openwhisk home resolution to use envar, or system property before trying to find property file.

Rename openwhisk.dir to openwhisk.home.

Make method protected.

2 years agoadd new property whisk.version.tag with image tag and expose on /api/v1 endpoint...
Jeremias Werner [Wed, 16 Mar 2016 14:30:41 +0000 (15:30 +0100)] 
add new property whisk.version.tag with image tag and expose on /api/v1 endpoint in controller

expose in cli and add test case

2 years agoSupport for Java actions throughout the system
Philippe Suter [Thu, 3 Mar 2016 04:30:01 +0000 (23:30 -0500)] 
Support for Java actions throughout the system

2 years agoBumping gradle version to 2.11
Markus Thoemmes [Thu, 17 Mar 2016 21:57:19 +0000 (22:57 +0100)] 
Bumping gradle version to 2.11

Refactoring docker tasks, adding dockerWithRetry back in

Run gradle clean in ant clean

Adding missing dependencies on common scala

Remove CMD from Dockerfile since further specification is needed by the caller

More idiomatic usage of gradle to generate eclipse project files for all projects (root and cli stay for the moment)

Using the configured SSL certificate in tests

Prevent travis from running gradle assemble, as it is not expected by our current build

Higher verbosity for test logs to make spotting issues from logs alone possible

Idiomatic configuration of scala compilation using resources

Setting DOCKER_HOST to mainmachine to build there

2 years agoMake up for cloudant returning 202 in a cluster setting
Markus Thoemmes [Thu, 17 Mar 2016 10:15:51 +0000 (11:15 +0100)] 
Make up for cloudant returning 202 in a cluster setting

Signed-off-by: Dominik Jall <>
2 years agoWhen setting properties, if apihost is given, use it for namespace lookip.
Rodric Rabbah [Tue, 8 Mar 2016 04:32:58 +0000 (23:32 -0500)] 
When setting properties, if apihost is given, use it for namespace lookip.

Noisy was renamed Debug. Use Loud for log messages in rate throttling, which is the default level everywhere else.

2 years agoReport HTTP error if possible on CLI commands.
Rodric Rabbah [Mon, 7 Mar 2016 20:08:06 +0000 (15:08 -0500)] 
Report HTTP error if possible on CLI commands.

Separated the reading of the HTTP response from the JSON parsing and on error, repor the HTTP response body as it may be useful to see the raw response when the API call fails.
For example, if the host is unreachable.

2 years agoSupport for CouchDb
Philippe Suter [Fri, 26 Feb 2016 16:10:47 +0000 (11:10 -0500)] 
Support for CouchDb

The most obvious change is a refactoring of CloudantStore into
CouchDbLikeStore.  Most complex code is shared between CouchDb and Cloudant
providers. This is relatively difficult to achieve due to the fact that the
CouchDb and Cloudant APIs are type-incompatible, despite performing basically
the exact same operations. The consequence is the existence of the classes
`CouchDbProvider` and `CloudantProvider` which expose all operations through
type members.

2 years agoRemove references to unsupported python versions.
Rodric Rabbah [Fri, 4 Mar 2016 22:40:38 +0000 (17:40 -0500)] 
Remove references to unsupported python versions.

2 years agoAdd unit test for missing authentication on required authenticated command.
Rodric Rabbah [Tue, 1 Mar 2016 15:34:12 +0000 (10:34 -0500)] 
Add unit test for missing authentication on required authenticated command.

2 years agoPrevent API request if authkey is not set and print error if API host is not set.
Rodric Rabbah [Sat, 27 Feb 2016 22:57:38 +0000 (17:57 -0500)] 
Prevent API request if authkey is not set and print error if API host is not set.

The authentication key may be derived from a saved property file or from the command line as an optional argument to override the property file.
But if the property file does not exist, and the command line override is not set, then the API request is made and fails with "authentication

This commit factors all the authenticated commands so that there is a single point where the authentication argument is added to a command or sub-command.
It is more convenient then to make the auth key a required positional argument. This is not done at this point however as it will require some changes to the
unit tests.

This commit also includes a fix for issue #29. If default.props does not exist because CLI was not built, then CLI should still be usable if user provides an API host override. Hence, allow for missing default properties file but raise an error if trying to do any operation against the API.

2 years agoPass authkey to feed delete.
Rodric Rabbah [Sat, 20 Feb 2016 13:44:17 +0000 (08:44 -0500)] 
Pass authkey to feed delete.

2 years agoInitial OpenWhisk commit
OpenWhisk [Fri, 19 Feb 2016 22:47:33 +0000 (17:47 -0500)] 
Initial OpenWhisk commit