Do not emit log marker on a re-init. (#52)
Do not emit log marker on a re-init and adjust tests for upstream changes
diff --git a/README.md b/README.md
index 32f61cb..c01c912 100644
--- a/README.md
+++ b/README.md
@@ -36,7 +36,7 @@
Create the action using the docker image for the runtime
```
-wsk action update myAction myAction.zip --docker openwhisk/dockerskeleton:1.3.1
+wsk action update myAction myAction.zip --docker openwhisk/dockerskeleton:1.3.2
```
This works on any deployment of Apache OpenWhisk
diff --git a/core/CHANGELOG.md b/core/CHANGELOG.md
index 8712a33..fa09b5d 100644
--- a/core/CHANGELOG.md
+++ b/core/CHANGELOG.md
@@ -19,6 +19,10 @@
# Apache OpenWhisk Docker Runtime Container
+## 1.3.2
+Changes:
+ - Fixes bug where a log maker is emitted more than once.
+
## 1.3.1
Changes:
- Disallow re-initialization by default. Added environment variable to enable re-initialization for local development.
diff --git a/core/actionProxy/actionproxy.py b/core/actionProxy/actionproxy.py
index 0bca409..9d34776 100644
--- a/core/actionProxy/actionproxy.py
+++ b/core/actionProxy/actionproxy.py
@@ -221,7 +221,7 @@
sys.stderr.write(msg + '\n')
response = flask.jsonify({'error': msg})
response.status_code = 403
- return complete(response)
+ return response
message = flask.request.get_json(force=True, silent=True)
if message and not isinstance(message, dict):
diff --git a/tests/src/test/scala/runtime/actionContainers/ActionProxyContainerTests.scala b/tests/src/test/scala/runtime/actionContainers/ActionProxyContainerTests.scala
index 52022ee..383f43b 100644
--- a/tests/src/test/scala/runtime/actionContainers/ActionProxyContainerTests.scala
+++ b/tests/src/test/scala/runtime/actionContainers/ActionProxyContainerTests.scala
@@ -30,13 +30,7 @@
import common.WskActorSystem
import spray.json._
-@RunWith(classOf[JUnitRunner])
-class ActionProxyContainerTests extends BasicActionRunnerTests with WskActorSystem {
-
- override def withActionContainer(env: Map[String, String] = Map.empty)(code: ActionContainer => Unit) = {
- withContainer("dockerskeleton", env)(code)
- }
-
+object CodeSamples {
val codeNotReturningJson = """
|#!/bin/sh
|echo not a json object
@@ -149,6 +143,25 @@
Seq(("bash", bash), ("python", python), ("perl", perl))
}
+}
+
+@RunWith(classOf[JUnitRunner])
+class ActionProxyContainerTests extends BasicActionRunnerTests with WskActorSystem {
+
+ override def withActionContainer(env: Map[String, String] = Map.empty)(code: ActionContainer => Unit) = {
+ withContainer("dockerskeleton", env)(code)
+ }
+
+ override val testNoSourceOrExec = TestConfig("", hasCodeStub = true)
+ override val testNotReturningJson = TestConfig(CodeSamples.codeNotReturningJson, enforceEmptyOutputStream = false)
+ override val testInitCannotBeCalledMoreThanOnce = TestConfig(CodeSamples.codeNotReturningJson)
+ // the skeleton requires the executable to be called /action/exec, this test will pass with any "main"
+ override val testEntryPointOtherThanMain =
+ TestConfig(CodeSamples.stdLargeInputSamples(0)._2, main = "exec", false, true)
+ override val testEcho = TestConfig(CodeSamples.stdCodeSamples(0)._2)
+ override val testUnicode = TestConfig(CodeSamples.stdUnicodeSamples(0)._2)
+ override val testEnv = TestConfig(CodeSamples.stdEnvSamples(0)._2)
+ override val testLargeInput = TestConfig(CodeSamples.stdLargeInputSamples(0)._2)
behavior of "openwhisk/dockerskeleton"
@@ -239,11 +252,4 @@
e shouldBe empty
})
}
-
- testNotReturningJson(codeNotReturningJson, checkResultInLogs = true)
- testEcho(stdCodeSamples)
- testUnicode(stdUnicodeSamples)
- testEnv(stdEnvSamples)
- testLargeInput(stdLargeInputSamples)
- testInitCannotBeCalledMoreThanOnce(codeNotReturningJson) // any code sample will do
}