apache/openwhisk

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

Open

#3,088 opened on Dec 11, 2017

View on GitHub
 (7 comments) (0 reactions) (1 assignee)Scala (1,177 forks)batch import
help wantedneeds tests

Repository metrics

Stars
 (6,777 stars)
PR merge metrics
 (Avg merge 17h 31m) (3 merged PRs in 30d)

Description

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??

Contributor guide