1 package org.onap.ccsdk.cds.blueprintsprocessor.functions.k8s.query;
3 import org.onap.ccsdk.cds.blueprintsprocessor.functions.k8s.K8sConnectionPluginConfiguration
4 import org.onap.ccsdk.cds.blueprintsprocessor.rest.service.BlueprintWebClientService
5 import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
6 import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
7 import org.slf4j.LoggerFactory
8 import org.springframework.http.HttpMethod.GET
10 public class K8sPluginQueryApi(
11 private val k8sConfiguration: K8sConnectionPluginConfiguration
13 private val log = LoggerFactory.getLogger(K8sPluginQueryApi::class.java)!!
15 fun queryK8sResources(
20 namespace: String? = null,
21 labels: Map<String, String>? = null
22 ): K8sResourceStatus? {
23 val rbQueryService = K8sQueryRestClient(k8sConfiguration)
25 var path: String = "?CloudRegion=$cloudRegion&ApiVersion=$apiVersion&Kind=$kind"
27 path = path.plus("&Name=$name")
28 if (namespace != null)
29 path = path.plus("&Namespace=$name")
30 if (labels != null && labels.isNotEmpty()) {
31 path = path.plus("&Labels=")
32 for ((name, value) in labels)
33 path = path.plus("$name%3D$value,")
34 path = path.trimEnd(',')
36 val result: BlueprintWebClientService.WebClientResponse<String> = rbQueryService.exchangeResource(
41 log.debug(result.toString())
42 return if (result.status in 200..299) {
43 val parsedObject: K8sResourceStatus? = JacksonUtils.readValue(
44 result.body, K8sResourceStatus::class.java
47 } else if (result.status == 500 && result.body.contains("Error finding master table"))
50 throw BluePrintProcessorException(result.body)
51 } catch (e: Exception) {
52 log.error("Caught exception trying to get k8s rb instance")
53 throw BluePrintProcessorException("${e.message}")