apache/openwhisk

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

Open

#3,088 建立於 2017年12月11日

在 GitHub 查看
 (7 留言) (0 反應) (1 負責人)Scala (1,177 fork)batch import
help wantedneeds tests

倉庫指標

Star
 (6,777 star)
PR 合併指標
 (平均合併 17小時 31分鐘) (30 天內合併 3 個 PR)

描述

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

貢獻者指南