diff --git a/echo-rest/src/main/groovy/com/netflix/spinnaker/echo/config/RestProperties.groovy b/echo-rest/src/main/groovy/com/netflix/spinnaker/echo/config/RestProperties.groovy index cea008ca3..fec169ddc 100644 --- a/echo-rest/src/main/groovy/com/netflix/spinnaker/echo/config/RestProperties.groovy +++ b/echo-rest/src/main/groovy/com/netflix/spinnaker/echo/config/RestProperties.groovy @@ -39,6 +39,7 @@ class RestProperties { Boolean wrap = false @NotEmpty String url + Boolean flatten = false } } diff --git a/echo-rest/src/main/groovy/com/netflix/spinnaker/echo/events/RestEventListener.groovy b/echo-rest/src/main/groovy/com/netflix/spinnaker/echo/events/RestEventListener.groovy index 895bd0208..009659df7 100644 --- a/echo-rest/src/main/groovy/com/netflix/spinnaker/echo/events/RestEventListener.groovy +++ b/echo-rest/src/main/groovy/com/netflix/spinnaker/echo/events/RestEventListener.groovy @@ -55,11 +55,18 @@ class RestEventListener implements EchoEventListener { sentEvent = [ "eventName": "${service.config.eventName ?: eventName}" as String, ] + + if (service.config.flatten) { + eventAsMap.content = mapper.writeValueAsString(eventAsMap.content) + eventAsMap.details = mapper.writeValueAsString(eventAsMap.details) + } + sentEvent["${service.config.fieldName ?: fieldName}" as String] = eventAsMap + } service.client.recordEvent(sentEvent) } catch (e) { - log.error("Could not send event ${eventAsMap} to ${service.config.url}") + log.error("Could not send event ${eventAsMap} to ${service.config.url}", e) } } }