This is an automated email from the ASF dual-hosted git repository.
slange pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openwhisk.git
The following commit(s) were added to refs/heads/master by this push:
new a581bea Add namespace field to activation log (#4609)
a581bea is described below
commit a581bea7c64677fb5a22d453f1e8c7dbcee0232d
Author: jiangpch <[email protected]>
AuthorDate: Thu Sep 26 20:21:25 2019 +0800
Add namespace field to activation log (#4609)
Add the activation namespace to all activation log lines forwarded to
external logging solutions.
---
.../logging/DockerToActivationFileLogStore.scala | 3 ++-
.../database/ArtifactWithFileStorageActivationStore.scala | 10 ++++++++--
.../logging/test/DockerToActivationFileLogStoreTests.scala | 12 ++++--------
.../ArtifactWithFileStorageActivationStoreTests.scala | 6 +++---
4 files changed, 17 insertions(+), 14 deletions(-)
diff --git
a/common/scala/src/main/scala/org/apache/openwhisk/core/containerpool/logging/DockerToActivationFileLogStore.scala
b/common/scala/src/main/scala/org/apache/openwhisk/core/containerpool/logging/DockerToActivationFileLogStore.scala
index 1d68710..deab30b 100644
---
a/common/scala/src/main/scala/org/apache/openwhisk/core/containerpool/logging/DockerToActivationFileLogStore.scala
+++
b/common/scala/src/main/scala/org/apache/openwhisk/core/containerpool/logging/DockerToActivationFileLogStore.scala
@@ -131,7 +131,8 @@ class DockerToActivationFileLogStore(system: ActorSystem,
destinationDirectory:
val additionalMetadata = Map(
"activationId" -> activation.activationId.asString.toJson,
- "action" -> action.fullyQualifiedName(false).asString.toJson) ++
userIdField
+ "action" -> action.fullyQualifiedName(false).asString.toJson,
+ "namespace" -> user.namespace.name.asString.toJson) ++ userIdField
val augmentedActivation = JsObject(activation.toJson.fields ++ userIdField)
diff --git
a/common/scala/src/main/scala/org/apache/openwhisk/core/database/ArtifactWithFileStorageActivationStore.scala
b/common/scala/src/main/scala/org/apache/openwhisk/core/database/ArtifactWithFileStorageActivationStore.scala
index c621cc6..93d3dcf 100644
---
a/common/scala/src/main/scala/org/apache/openwhisk/core/database/ArtifactWithFileStorageActivationStore.scala
+++
b/common/scala/src/main/scala/org/apache/openwhisk/core/database/ArtifactWithFileStorageActivationStore.scala
@@ -55,9 +55,15 @@ class ArtifactWithFileStorageActivationStore(
override def store(activation: WhiskActivation, context: UserContext)(
implicit transid: TransactionId,
notifier: Option[CacheChangeNotification]): Future[DocInfo] = {
- val additionalFields = Map(config.userIdField ->
context.user.namespace.uuid.toJson)
+ val additionalFieldsForLogs =
+ Map(config.userIdField -> context.user.namespace.uuid.toJson,
"namespace" -> context.user.namespace.name.toJson)
+ val additionalFieldsForActivation = Map(config.userIdField ->
context.user.namespace.uuid.toJson)
- activationFileStorage.activationToFile(activation, context,
additionalFields)
+ activationFileStorage.activationToFileExtended(
+ activation,
+ context,
+ additionalFieldsForLogs,
+ additionalFieldsForActivation)
super.store(activation, context)
}
diff --git
a/tests/src/test/scala/org/apache/openwhisk/core/containerpool/logging/test/DockerToActivationFileLogStoreTests.scala
b/tests/src/test/scala/org/apache/openwhisk/core/containerpool/logging/test/DockerToActivationFileLogStoreTests.scala
index 92ded44..38d5f83 100644
---
a/tests/src/test/scala/org/apache/openwhisk/core/containerpool/logging/test/DockerToActivationFileLogStoreTests.scala
+++
b/tests/src/test/scala/org/apache/openwhisk/core/containerpool/logging/test/DockerToActivationFileLogStoreTests.scala
@@ -47,12 +47,12 @@ class DockerToActivationFileLogStoreTests
override def createStore() = new TestLogStoreTo(Sink.ignore)
def toLoggedEvent(line: LogLine,
- userId: UUID,
+ namespace: Namespace,
activationId: ActivationId,
actionName: FullyQualifiedEntityName): String = {
val event = line.toJson.compactPrint
val concatenated =
-
s""","activationId":"${activationId.asString}","action":"${actionName.asString}","namespaceId":"${userId.asString}""""
+
s""","activationId":"${activationId.asString}","action":"${actionName.asString}","namespace":"${namespace.name.asString}","namespaceId":"${namespace.uuid.asString}""""
event.dropRight(1) ++ concatenated ++ "}\n"
}
@@ -78,7 +78,7 @@ class DockerToActivationFileLogStoreTests
await(collected) shouldBe
ActivationLogs(logs.map(_.toFormattedString).toVector)
logs.foreach { line =>
testActor.expectMsg(
- toLoggedEvent(line, user.namespace.uuid,
successfulActivation.activationId, action.fullyQualifiedName(false)))
+ toLoggedEvent(line, user.namespace, successfulActivation.activationId,
action.fullyQualifiedName(false)))
}
// Last message should be the full activation
@@ -111,11 +111,7 @@ class DockerToActivationFileLogStoreTests
withClue("Provided logs should be received by log store:") {
logs.foreach { line =>
testActor.expectMsg(
- toLoggedEvent(
- line,
- user.namespace.uuid,
- developerErrorActivation.activationId,
- action.fullyQualifiedName(false)))
+ toLoggedEvent(line, user.namespace,
developerErrorActivation.activationId, action.fullyQualifiedName(false)))
}
}
diff --git
a/tests/src/test/scala/org/apache/openwhisk/core/database/ArtifactWithFileStorageActivationStoreTests.scala
b/tests/src/test/scala/org/apache/openwhisk/core/database/ArtifactWithFileStorageActivationStoreTests.scala
index 84e2f1b..2425290 100644
---
a/tests/src/test/scala/org/apache/openwhisk/core/database/ArtifactWithFileStorageActivationStoreTests.scala
+++
b/tests/src/test/scala/org/apache/openwhisk/core/database/ArtifactWithFileStorageActivationStoreTests.scala
@@ -59,7 +59,7 @@ class ArtifactWithFileStorageActivationStoreTests()
private val uuid = UUID()
private val subject = Subject()
private val user =
- Identity(subject, Namespace(EntityName("testSpace"), uuid),
BasicAuthenticationAuthKey(uuid, Secret()))
+ Identity(subject, Namespace(EntityName(subject.asString), uuid),
BasicAuthenticationAuthKey(uuid, Secret()))
private val context = UserContext(user, HttpRequest())
override def afterAll(): Unit = {
@@ -99,9 +99,9 @@ class ArtifactWithFileStorageActivationStoreTests()
"type" -> "user_log".toJson,
"message" -> log.toJson,
"activationId" -> activation.activationId.toJson,
+ "namespace" -> activation.namespace.asString.toJson,
"namespaceId" -> user.namespace.uuid.toJson)
++ additionalFieldsForLogs: _*)
-
}
}
val expectedResult = if (includeResult) {
@@ -282,7 +282,7 @@ class ArtifactWithFileStorageActivationStoreTests()
activationFileStorage.activationToFileExtended(
activation,
context,
- additionalFields ++ additionalFieldsForLogs,
+ additionalFields ++ additionalFieldsForLogs ++ Map("namespace" ->
JsString(subject.asString)),
additionalFields ++ additionalFieldsForActivation,
shallResultBeIncluded)