apache/openwhisk

add test to enforce rule cannot be created for action used as trigger

Open

#3088 aperta il 11 dic 2017

Vedi su GitHub
 (7 commenti) (0 reazioni) (1 assegnatario)Scala (1177 fork)batch import
help wantedneeds tests

Metriche repository

Star
 (6777 star)
Metriche merge PR
 (Merge medio 17h 31m) (3 PR mergiate in 30 g)

Descrizione

When I create Rule Follow the steps below, my action was overwritten.

  1. create 'A' action
  2. create rule : wsk rule create myRule A myAction
  3. 'A' action is overwritten. It change to trigger

When openwhisk create rule, it just check documet is exist. not check it is action or trigger. (https://github.com/apache/incubator-openwhisk/blob/master/core/controller/src/main/scala/whisk/core/controller/Rules.scala#L378)

after that, add rule property to my 'A' action. and store it to couch db as trigger. (https://github.com/apache/incubator-openwhisk/blob/master/core/controller/src/main/scala/whisk/core/controller/Rules.scala#L280)

i tried to check before add rule to action by use trigger views rule.

var isTrigger = function (doc) { return (doc.exec === undefined && doc.binding === undefined && doc.parameters !== undefined) };

but the result of select already lost that properties.

(https://github.com/apache/incubator-openwhisk/blob/master/core/controller/src/main/scala/whisk/core/controller/Rules.scala#L382)

so, i think openwhisk have to add entity type property(action , trigger , rule) when entities are created.

after that, we can check entity type before make trigger.

what do you think about this idea??

Guida contributor