openwhisk-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michele Sciabarra <mich...@sciabarra.com>
Subject Re: A problem in changing the signature of the action for the Golang runtime
Date Sat, 01 Sep 2018 12:16:05 GMT
I am also updating the PR for the swift runtime :) 

-- 
  Michele Sciabarra
  michele@sciabarra.com

----- Original message -----
From: Carlos Santana <csantana23@gmail.com>
To: dev@openwhisk.apache.org
Subject: Re: A problem in changing the signature of the action for the Golang runtime
Date: Sat, 1 Sep 2018 08:09:18 -0400

Hi Michael

I’m glad to hear your working on this.

Good observation if Json mean Json object or a Json value.

I think me an others do this when we refer to Json we mean Json object. Now
I would keep this in the back of my head.

Like Rodric said is OK to skip this particular test in case by case.

Maybe we can add a note in the doc or code to make it clear it for the next
new runtime

I will help review the changes, let me know if we need changes first in the
go client first.

— Carlos


On Sat, Sep 1, 2018 at 7:31 AM Michele Sciabarra <michele@sciabarra.com>
wrote:

> Definitely yes :) thx!!!
>
> --
>   Michele Sciabarra
>   michele@sciabarra.com
>
> ----- Original message -----
> From: Rodric Rabbah <rodric@gmail.com>
> To: dev@openwhisk.apache.org
> Subject: Re: A problem in changing the signature of the action for the
> Golang runtime
> Date: Sat, 1 Sep 2018 05:31:57 -0400
>
> Hey Michele
>
> The particular test you mention has a bypass feature for languages which
> prevent you from returning invalid json (statically typed ones). You can
> set the skip flag for the test and you’re done. The swift runtime does this
> for example. In java I also skipped this test but added a second explicit
> test where I returned null and checked the error handling accordingly.
>
> See here for swift test bypass
>
> https://github.com/apache/incubator-openwhisk-runtime-swift/blob/2b9bad5b2cc1e273fc61109a6d96c742578cbf1a/tests/src/test/scala/runtime/actionContainers/SwiftActionContainerTests.scala#L48
>
> And here for java null test
> https://
> .com/apache/incubator-openwhisk-runtime-java/blob/7cd17899c4a06198fa0d783df8520dfe92352954/tests/src/test/scala/actionContainers/JavaActionContainerTests.scala#L317
> https://g://
> ithub.com/apache/incubator-openwhisk-runtime-java/blob/7cd17899c4a06198fa0d783df8520dfe92352954/tests/src/test/scala/actionContainers/JavaActionContainerTests.scala#L317ahttps://github.com/apache/incubator-openwhisk-runtime-java/blob/7cd17899c4a06198fa0d783df8520dfe92352954/tests/src/test/scala/actionContainers/JavaActionContainerTests.scala#L317che/incubator-openwhisk-runtime-java/blob/7cd17899c4a06198fa0d783df8520dfe92352954/tests/src/test/scala/actionContainers/JavaActionContainerTests.scala#L317
> <http://ithub.com/apache/incubator-openwhisk-runtime-java/blob/7cd17899c4a06198fa0d783df8520dfe92352954/tests/src/test/scala/actionContainers/JavaActionContainerTests.scala#L317ahttps://github.com/apache/incubator-openwhisk-runtime-java/blob/7cd17899c4a06198fa0d783df8520dfe92352954/tests/src/test/scala/actionContainers/JavaActionContainerTests.scala%23L317che/incubator-openwhisk-runtime-java/blob/7cd17899c4a06198fa0d783df8520dfe92352954/tests/src/test/scala/actionContainers/JavaActionContainerTests.scala%23L317>
>
> https://github.com/apache/incubator-openwhisk-runtime-java/blob/7cd17899c4a06198fa0d783df8520dfe92352954/tests/src/test/scala/actionContainers/JavaActionContainerTests.scala#L317
>
>
> Does this help?
>
> -r
>
> > On Sep 1, 2018, at 5:24 AM, Michele Sciabarra <michele@sciabarra.com>
> wrote:
> >
> > Hello, I am in the process of cleaning the Golang runtime, and I am
> implementing the tests in the trait BasicActionRunnerTests.
> >
> > In the process, I am cleaning a number of things.
> > I have now a "stupid" problem.
> >
> > I would like to change (as suggested by Carlos) the signature of an
> action from the current
> >
> >   func Main(event json.RawMessage) (json.RawMessage, error)
> >
> > to
> >
> >  func Main(event map[string]interface{}) map[string]interface{}
> >
> > this express better the fact the input and the output are expected to be
> object, and is also saves a "json.Marshal" and "json.Unmarshal" in the
> main. It is helpful for simple cases.
> >
> > However, I cannot do it! Because of this (mandatory) test for runtimes:
> "testNotReturningJson"
> >
> > The test checks that the runtime can reject an action that returns
> something like a  simple string and not a json object ( BTW, a string IS
> valid JSON, so test is not named properly: should be:
> testNotRetuningObjectJson)
> >
> > In any case changing the signature I do not have any more any way to
> have a misbehaving action that produces something that is not valid object,
> because if I force the action to return a map of strings, it will be always
> serialized back to a json object.
> >
> > Hence I have no way to pass this test!  What I can do?
> >
> > --
> >  Michele Sciabarra
> >  michele@sciabarra.com
>

Mime
View raw message