From 390a1ad90513cc72632bc344b7b9712f72bc67a9 Mon Sep 17 00:00:00 2001 From: Luis Pollo <1323478+luispollo@users.noreply.github.com> Date: Mon, 22 Feb 2021 14:54:37 -0800 Subject: [PATCH] feat(reports): Add Front50 API to retrieve all apps + fields in Application model (#1818) * feat(reports): Add Front50 API to retrieve all apps, add fields to Application model * fix(pr): Default Application.createTs to null --- .../spinnaker/keel/front50/Front50Service.kt | 5 +++++ .../spinnaker/keel/front50/model/Application.kt | 17 +++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/keel-front50/src/main/kotlin/com/netflix/spinnaker/keel/front50/Front50Service.kt b/keel-front50/src/main/kotlin/com/netflix/spinnaker/keel/front50/Front50Service.kt index 663efe327c..afd4d832e5 100644 --- a/keel-front50/src/main/kotlin/com/netflix/spinnaker/keel/front50/Front50Service.kt +++ b/keel-front50/src/main/kotlin/com/netflix/spinnaker/keel/front50/Front50Service.kt @@ -20,4 +20,9 @@ interface Front50Service { @Path("name") name: String, @Header("X-SPINNAKER-USER") user: String = DEFAULT_SERVICE_ACCOUNT ): Application + + @GET("/v2/applications") + suspend fun allApplications( + @Header("X-SPINNAKER-USER") user: String = DEFAULT_SERVICE_ACCOUNT + ): List } diff --git a/keel-front50/src/main/kotlin/com/netflix/spinnaker/keel/front50/model/Application.kt b/keel-front50/src/main/kotlin/com/netflix/spinnaker/keel/front50/model/Application.kt index dc595fd25c..d265eaf06b 100644 --- a/keel-front50/src/main/kotlin/com/netflix/spinnaker/keel/front50/model/Application.kt +++ b/keel-front50/src/main/kotlin/com/netflix/spinnaker/keel/front50/model/Application.kt @@ -1,13 +1,26 @@ package com.netflix.spinnaker.keel.front50.model +import com.fasterxml.jackson.annotation.JsonAnyGetter +import com.fasterxml.jackson.annotation.JsonAnySetter + +/** + * A Spinnaker application, as represented in Front50. + */ data class Application( val name: String, val email: String, val dataSources: DataSources?, val repoProjectKey: String? = null, val repoSlug: String? = null, - val repoType: String? = null -) + val repoType: String? = null, + val createTs: String? = null, + @get:JsonAnyGetter val details: MutableMap = mutableMapOf() +) { + @JsonAnySetter + fun setDetail(key: String, value: Any?) { + details[key] = value + } +} data class DataSources( val enabled: List,