K8sPlugin Query API endpoint added 24/118124/1
authorLukasz Rajewski <lukasz.rajewski@orange.com>
Fri, 19 Feb 2021 18:23:11 +0000 (19:23 +0100)
committerLukasz Rajewski <lukasz.rajewski@orange.com>
Fri, 19 Feb 2021 18:24:06 +0000 (19:24 +0100)
K8sPlugin Query API endpoint added

Issue-ID: CCSDK-3146
Signed-off-by: Lukasz Rajewski <lukasz.rajewski@orange.com>
Change-Id: I10abfd986de0df0069b258276fe0ec0fc9b76bff

ms/blueprintsprocessor/functions/k8s-connection-plugin/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/k8s/instance/K8sPluginInstanceApi.kt

index 120c380..e0366f9 100644 (file)
@@ -120,6 +120,35 @@ class K8sPluginInstanceApi(
         }
     }
 
+    fun queryInstanceStatus(instanceId: String, kind: String, apiVersion: String, name: String?, labels: String?): K8sRbInstanceStatus? {
+        val rbInstanceService = K8sRbInstanceRestClient(k8sConfiguration, instanceId)
+        try {
+            var path: String = "/query?ApiVersion=$apiVersion&Kind=$kind"
+            if (name != null)
+                path = path.plus("&Name=$name")
+            if (labels != null)
+                path = path.plus("&Labels=$labels")
+            val result: BlueprintWebClientService.WebClientResponse<String> = rbInstanceService.exchangeResource(
+                GET.name,
+                path,
+                ""
+            )
+            log.debug(result.toString())
+            return if (result.status in 200..299) {
+                val parsedObject: K8sRbInstanceStatus? = JacksonUtils.readValue(
+                    result.body, K8sRbInstanceStatus::class.java
+                )
+                parsedObject
+            } else if (result.status == 500 && result.body.contains("Error finding master table"))
+                null
+            else
+                throw BlueprintProcessorException(result.body)
+        } catch (e: Exception) {
+            log.error("Caught exception trying to get k8s rb instance")
+            throw BlueprintProcessorException("${e.message}")
+        }
+    }
+
     fun getInstanceHealthCheckList(instanceId: String): List<K8sRbInstanceHealthCheck>? {
         val rbInstanceService = K8sRbInstanceRestClient(k8sConfiguration, instanceId)
         try {