This is an automated email from the ASF dual-hosted git repository.

markusthoemmes pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk.git


The following commit(s) were added to refs/heads/master by this push:
     new d6edfde  Patch posting of trigger activation. (#2613)
d6edfde is described below

commit d6edfde20b3fbaa5ff173761717e8158f28910b3
Author: rodric rabbah <rod...@gmail.com>
AuthorDate: Thu Aug 17 11:45:43 2017 -0400

    Patch posting of trigger activation. (#2613)
---
 .../scala/whisk/core/controller/Triggers.scala     | 30 ++++++++++++----------
 1 file changed, 17 insertions(+), 13 deletions(-)

diff --git 
a/core/controller/src/main/scala/whisk/core/controller/Triggers.scala 
b/core/controller/src/main/scala/whisk/core/controller/Triggers.scala
index 6e0028c..fe5304f 100644
--- a/core/controller/src/main/scala/whisk/core/controller/Triggers.scala
+++ b/core/controller/src/main/scala/whisk/core/controller/Triggers.scala
@@ -24,12 +24,10 @@ import scala.concurrent.Future
 import scala.util.{ Failure, Success }
 
 import akka.actor.ActorSystem
+import akka.stream.ActorMaterializer
 import akka.http.scaladsl.model.headers.BasicHttpCredentials
 import akka.http.scaladsl.model.HttpRequest
-import akka.http.scaladsl.model.StatusCodes
-import akka.http.scaladsl.model.StatusCodes.BadRequest
-import akka.http.scaladsl.model.StatusCodes.InternalServerError
-import akka.http.scaladsl.model.StatusCodes.OK
+import akka.http.scaladsl.model.StatusCodes._
 import akka.http.scaladsl.model.Uri
 import akka.http.scaladsl.model.Uri.Path
 import akka.http.scaladsl.server.RouteResult
@@ -40,9 +38,8 @@ import akka.http.scaladsl.model.MediaTypes
 import akka.http.scaladsl.model.HttpEntity
 import akka.http.scaladsl.server.RequestContext
 import akka.http.scaladsl.Http
-import akka.http.scaladsl.model.HttpResponse
-import akka.stream.ActorMaterializer
 import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport._
+import akka.http.scaladsl.unmarshalling.Unmarshal
 
 import spray.json._
 import spray.json.DefaultJsonProtocol.RootJsObjectFormat
@@ -144,6 +141,7 @@ trait WhiskTriggersApi extends WhiskCollectionAPI {
                         val saveTriggerActivation = 
WhiskActivation.put(activationStore, triggerActivation) map {
                             _ => triggerActivationId
                         }
+
                         val url = 
Uri(s"http://localhost:${whiskConfig.servicePort}";)
 
                         trigger.rules.map {
@@ -173,6 +171,7 @@ trait WhiskTriggersApi extends WhiskCollectionAPI {
                                             Path.SingleSlash + 
rule.action.name.asString
                                         }
                                     }.toString
+
                                     val actionUrl = Path("/api/v1") / 
"namespaces" / actionNamespace / "actions"
                                     val request = HttpRequest(
                                         method = POST,
@@ -180,13 +179,18 @@ trait WhiskTriggersApi extends WhiskCollectionAPI {
                                         headers = 
List(Authorization(BasicHttpCredentials(user.authkey.uuid.asString, 
user.authkey.key.asString))),
                                         entity = 
HttpEntity(MediaTypes.`application/json`, 
args.getOrElse(JsObject()).compactPrint))
 
-                                    Http().singleRequest(request).map {
-                                        case HttpResponse(StatusCodes.OK, 
headers, entity, _) =>
-                                            logging.info(this, s"successfully 
invoked ${rule.action} -> ")
-                                        case 
HttpResponse(StatusCodes.NotFound, _, _, _) =>
-                                            logging.info(this, s"action 
${rule.action} could not be found")
-                                        case HttpResponse(code, _, entity, _) 
=>
-                                            logging.warn(this, s"action 
${rule.action} could not be invoked due to ${entity.getDataBytes.toString}")
+                                    Http().singleRequest(request).map { 
response =>
+                                        response.status match {
+                                            case OK | Accepted => 
Unmarshal(response.entity).to[JsObject].map { a =>
+                                                logging.info(this, 
s"${rule.action} activated ${a.fields("activationId")}")
+                                            }
+                                            case NotFound =>
+                                                response.discardEntityBytes()
+                                                logging.info(this, 
s"${rule.action} failed, action not found")
+                                            case _ => 
Unmarshal(response.entity).to[String].map { error =>
+                                                logging.warn(this, 
s"${rule.action} failed due to $error")
+                                            }
+                                        }
                                     }
                             }
                         }

-- 
To stop receiving notification emails like this one, please contact
['"commits@openwhisk.apache.org" <commits@openwhisk.apache.org>'].

Reply via email to