Introduce ReferencedEntities trait to compute referenced entities for a PUT request.
Refactor packages API handler to use new trait and simplify create/update logic.
Mixin ReferencedEntities trait with Rules and Actions API handler.
diff --git a/tests/src/whisk/core/controller/test/PackagesApiTests.scala b/tests/src/whisk/core/controller/test/PackagesApiTests.scala
index a8e4754..f33ccaa 100644
--- a/tests/src/whisk/core/controller/test/PackagesApiTests.scala
+++ b/tests/src/whisk/core/controller/test/PackagesApiTests.scala
@@ -530,6 +530,7 @@
put(entityStore, provider)
Put(s"$collectionPath/${provider.name}?overwrite=true", content) ~> sealRoute(routes(creds)) ~> check {
status should be(Conflict)
+ responseAs[ErrorResponse].error should include(Messages.packageCannotBecomeBinding)
}
}
@@ -541,6 +542,7 @@
put(entityStore, reference)
Put(s"$collectionPath/${reference.name}?overwrite=true", content) ~> sealRoute(routes(creds)) ~> check {
status should be(BadRequest)
+ responseAs[ErrorResponse].error should include(Messages.bindingDoesNotExist)
}
}
@@ -614,10 +616,8 @@
it should "reject delete non-empty package" in {
implicit val tid = transid()
val provider = WhiskPackage(namespace, aname)
- val reference = WhiskPackage(namespace, aname, provider.bind)
val action = WhiskAction(provider.namespace.addpath(provider.name), aname, Exec.js("??"))
put(entityStore, provider)
- put(entityStore, reference)
put(entityStore, action)
whisk.utils.retry {
Get(s"$collectionPath/${provider.name}") ~> sealRoute(routes(creds)) ~> check {