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)
 

Reply via email to