You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@openwhisk.apache.org by gi...@git.apache.org on 2017/08/09 21:38:25 UTC

[GitHub] pritidesai opened a new issue #311: Action Function V/S Location

pritidesai opened a new issue #311: Action Function V/S Location
URL: https://github.com/apache/incubator-openwhisk-wskdeploy/issues/311
 
 
   We have Action field "Function" described as:
   
   function | true | string | N/A | Required source location (path inclusive) of the Action code either  								? Relative to the Package manifest file. ? Relative to the specified Repository.
   
   For a sample manifest file:
   
   ```
   package:
     name: helloworld
     actions:
       hello1:
         function: ../tests/usecases/helloworld/actions/hello.js
   ```
   
   wskdeploy fails with:
   
   ```
   2017/08/09 13:38:00 Error: Action hello1 has no source code location set.
   2017/08/09 13:38:00 Error happened during execution, please type 'wskdeploy -h' for help messages.
   ```
   
   ComposeActions initialized ActionRecord with following values, note that the code is <nil> here:
   
   ```
   (*whisk.Action)(0xc42019a1b0)({
    Namespace: (string) "",
    Name: (string) (len=6) "hello1",
    Version: (string) "",
    Exec: (*whisk.Exec)(0xc42014fa40)({
     Kind: (string) "",
     **Code: (*string)(<nil>),**
     Image: (string) "",
     Init: (string) "",
     Main: (string) "",
     Components: ([]string) <nil>
    }),
    Annotations: (whisk.KeyValueArr) <nil>,
    Parameters: (whisk.KeyValueArr) <nil>,
    Limits: (*whisk.Limits)(<nil>),
    Error: (string) "",
    Code: (int) 0,
    Publish: (*bool)(0xc42012d380)(false)
   })
   ```
   
   The same manifest file but replacing Function with Location works just fine and deploys `hello1`:
   
   ```
   package:
     name: helloworld
     actions:
       hello1:
         location: ../tests/usecases/helloworld/actions/hello.js
   ```
   
   ComposeActions produces ActionRecord:
   
   ```
   (*whisk.Action)(0xc42019a3f0)({
    Namespace: (string) "",
    Name: (string) (len=6) "hello1",
    Version: (string) "",
    Exec: (*whisk.Exec)(0xc42014fb60)({
     Kind: (string) (len=14) "nodejs:default",
     Code: (*string)(0xc42012d3c0)((len=131) "/**\n * Return a simple greeting message for the whole world.\n */\nfunction main(params) {\n    return {payload:  'Hello, world!'};\n}\n"),
     Image: (string) "",
     Init: (string) "",
     Main: (string) "",
     Components: ([]string) <nil>
    }),
    Annotations: (whisk.KeyValueArr) <nil>,
    Parameters: (whisk.KeyValueArr) <nil>,
    Limits: (*whisk.Limits)(<nil>),
    Error: (string) "",
    Code: (int) 0,
    Publish: (*bool)(0xc42012d383)(false)
   })
   ```
   
   We should either update wskdeploy specification or update code to honor "function" and "location" both.
   
   Also, in case of action files coming in from GitHub, for example, [webhook/manifest.yml](https://github.com/apache/incubator-openwhisk-wskdeploy/blob/master/tests/usecases/webhook/manifest.yml#L8), none of the fields "function" nor "location" is supported.
   
   Manifest file with `location`:
   
   ```
   package:
     name: helloworld
     actions:
       hello2:
         location: https://raw.githubusercontent.com/apache/incubator-openwhisk-wskdeploy/master/tests/usecases/helloworld/manifest.yaml
   ```
   
   ```
   2017/08/09 14:33:23 open parsers/https://raw.githubusercontent.com/apache/incubator-openwhisk-wskdeploy/master/tests/usecases/helloworld/manifest.yaml: no such file or directory
   2017/08/09 14:33:23 Error happened during execution, please type 'wskdeploy -h' for help messages.
   ```
   
   Manifest file with `function`:
   
   ```
   package:
     name: helloworld
     actions:
       hello2:
         function: https://raw.githubusercontent.com/apache/incubator-openwhisk-wskdeploy/master/tests/usecases/helloworld/manifest.yaml
   ```
   
   ```
   2017/08/09 14:35:30 Error: Action hello2 has no source code location set.
   2017/08/09 14:35:30 Error happened during execution, please type 'wskdeploy -h' for help messages.
   ```
   
   ComposeActions produces ActionRecord with a GitHub location is specified in `function`: 
   
   ```
   (*whisk.Action)(0xc42019a240)({
    Namespace: (string) "",
    Name: (string) (len=6) "hello3",
    Version: (string) "",
    Exec: (*whisk.Exec)(0xc42014faa0)({
     Kind: (string) "",
     Code: (*string)(<nil>),
     Image: (string) "",
     Init: (string) "",
     Main: (string) "",
     Components: ([]string) <nil>
    }),
    Annotations: (whisk.KeyValueArr) <nil>,
    Parameters: (whisk.KeyValueArr) <nil>,
    Limits: (*whisk.Limits)(<nil>),
    Error: (string) "",
    Code: (int) 0,
    Publish: (*bool)(0xc42012d381)(false)
   })
   ```
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services