Prepare k8s-plugin client for health check and simple status check 40/123240/6
authorGrzegorz Wielgosinski <g.wielgosins@samsung.com>
Wed, 11 Aug 2021 10:23:04 +0000 (12:23 +0200)
committerGrzegorz Wielgosinski <g.wielgosins@samsung.com>
Thu, 19 Aug 2021 07:54:03 +0000 (09:54 +0200)
Issue-ID: SO-3690

Signed-off-by: Grzegorz Wielgosinski <g.wielgosins@samsung.com>
Change-Id: I3284ef528ec2bad20adc6ba3ad88fcf4fad715ab

13 files changed:
so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/client/MulticloudClient.java [new file with mode: 0644]
so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/client/SoCallbackClient.java [new file with mode: 0644]
so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/CheckInstanceRequest.java [new file with mode: 0644]
so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceRequest.java [new file with mode: 0644]
so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/healthcheck/HealthCheckInstanceResponse.java [new file with mode: 0644]
so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/healthcheck/HealthCheckResponse.java [new file with mode: 0644]
so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/healthcheck/K8sRbInstanceHealthCheck.java [new file with mode: 0644]
so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/healthcheck/K8sRbInstanceHealthCheckSimple.java [new file with mode: 0644]
so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/statuscheck/K8sRbInstanceGvk.java [new file with mode: 0644]
so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/statuscheck/K8sRbInstanceResourceStatus.java [new file with mode: 0644]
so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/statuscheck/K8sRbInstanceStatus.java [new file with mode: 0644]
so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/statuscheck/StatusCheckInstanceResponse.java [new file with mode: 0644]
so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/statuscheck/StatusCheckResponse.java [new file with mode: 0644]

diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/client/MulticloudClient.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/client/MulticloudClient.java
new file mode 100644 (file)
index 0000000..762f192
--- /dev/null
@@ -0,0 +1,143 @@
+package org.onap.so.adapters.cnf.client;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.onap.so.adapters.cnf.MulticloudConfiguration;
+import org.onap.so.adapters.cnf.model.healthcheck.K8sRbInstanceHealthCheck;
+import org.onap.so.adapters.cnf.model.healthcheck.K8sRbInstanceHealthCheckSimple;
+import org.onap.so.adapters.cnf.model.statuscheck.K8sRbInstanceStatus;
+import org.onap.so.client.exception.BadResponseException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.springframework.http.HttpMethod.DELETE;
+import static org.springframework.http.HttpMethod.GET;
+import static org.springframework.http.HttpMethod.POST;
+
+@Component
+public class MulticloudClient {
+
+    private static final Logger log = LoggerFactory.getLogger(MulticloudClient.class);
+
+    private final RestTemplate restTemplate;
+    private final MulticloudConfiguration multicloudConfiguration;
+    private final ObjectMapper objectMapper;
+
+    public MulticloudClient(RestTemplate restTemplate, MulticloudConfiguration multicloudConfiguration) {
+        this.restTemplate = restTemplate;
+        this.multicloudConfiguration = multicloudConfiguration;
+        this.objectMapper = new ObjectMapper();
+    }
+
+    public K8sRbInstanceStatus getInstanceStatus(String instanceId) throws BadResponseException {
+        MulticloudApiUrl multicloudApiUrl = new MulticloudApiUrl(multicloudConfiguration);
+        multicloudApiUrl.setInstanceId(instanceId);
+        String endpoint = multicloudApiUrl.apiUrl() + "/status";
+        ResponseEntity<String> result = restTemplate.exchange(endpoint, GET, getHttpEntity(), String.class);
+        checkResponseStatusCode(result);
+        log.info("getInstanceStatus response status: {}", result.getStatusCode());
+        String body = result.getBody();
+        log.debug("getInstanceStatus response body: {}", body);
+
+        try {
+            return objectMapper.readValue(body, K8sRbInstanceStatus.class);
+        } catch (JsonProcessingException e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    public K8sRbInstanceHealthCheckSimple startInstanceHealthCheck(String instanceId) throws BadResponseException {
+        MulticloudApiUrl multicloudApiUrl = new MulticloudApiUrl(multicloudConfiguration);
+        multicloudApiUrl.setInstanceId(instanceId);
+        String endpoint = multicloudApiUrl.apiUrl() + "/healthcheck";
+        ResponseEntity<String> result = restTemplate.exchange(endpoint, POST, getHttpEntity(), String.class);
+        checkResponseStatusCode(result);
+        log.info("startInstanceHealthCheck response status: {}", result.getStatusCode());
+        String body = result.getBody();
+        log.debug("startInstanceHealthCheck response body: {}", body);
+
+        try {
+            return objectMapper.readValue(body, K8sRbInstanceHealthCheckSimple.class);
+        } catch (JsonProcessingException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public K8sRbInstanceHealthCheck getInstanceHealthCheck(String instanceId, String healthCheckInstance) throws BadResponseException {
+        MulticloudApiUrl multicloudApiUrl = new MulticloudApiUrl(multicloudConfiguration);
+        multicloudApiUrl.setInstanceId(instanceId);
+        String endpoint = multicloudApiUrl.apiUrl() + "/healthcheck/" + healthCheckInstance;
+        ResponseEntity<String> result = restTemplate.exchange(endpoint, GET, getHttpEntity(), String.class);
+        checkResponseStatusCode(result);
+        log.info("getInstanceHealthCheck response status: {}", result.getStatusCode());
+        String body = result.getBody();
+        log.debug("getInstanceHealthCheck response body: {}", body);
+
+        try {
+            return objectMapper.readValue(body, K8sRbInstanceHealthCheck.class);
+        } catch (JsonProcessingException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public void deleteInstanceHealthCheck(String instanceId, String healthCheckInstance) throws BadResponseException {
+        MulticloudApiUrl multicloudApiUrl = new MulticloudApiUrl(multicloudConfiguration);
+        multicloudApiUrl.setInstanceId(instanceId);
+        String endpoint = multicloudApiUrl.apiUrl() + "/healthcheck/" + healthCheckInstance;
+        ResponseEntity<String> result = restTemplate.exchange(endpoint, DELETE, getHttpEntity(), String.class);
+        checkResponseStatusCode(result);
+        log.info("deleteInstanceHealthCheck response status: {}", result.getStatusCode());
+        String body = result.getBody();
+        log.debug("deleteInstanceHealthCheck response body: {}", body);
+
+        if (!result.getStatusCode().is2xxSuccessful()) {
+            throw new IllegalStateException("Delete response different than 2xx:" + result.getStatusCode());
+        }
+    }
+
+    private HttpEntity<?> getHttpEntity() {
+        HttpHeaders headers = new HttpHeaders();
+        List<MediaType> acceptableMediaTypes = new ArrayList<>();
+        acceptableMediaTypes.add(MediaType.APPLICATION_JSON);
+        headers.setAccept(acceptableMediaTypes);
+        headers.setContentType(MediaType.APPLICATION_JSON);
+
+        return new HttpEntity<>(headers);
+    }
+
+    private void checkResponseStatusCode(ResponseEntity<String> result) throws BadResponseException {
+        HttpStatus statusCode = result.getStatusCode();
+        if (!statusCode.is2xxSuccessful()) {
+            throw new BadResponseException("Multicloud response status error", String.valueOf(statusCode.value()));
+        }
+    }
+
+    private class MulticloudApiUrl {
+
+        private String instanceId;
+        private final MulticloudConfiguration multicloudConfiguration;
+
+        MulticloudApiUrl(MulticloudConfiguration multicloudConfiguration1) {
+            this.multicloudConfiguration = multicloudConfiguration1;
+        }
+
+        String apiUrl() {
+            String instanceUri = multicloudConfiguration.getMulticloudUrl() + "/v1/instance/";
+            return instanceId.equals("") ? instanceUri : instanceUri + instanceId;
+        }
+
+        void setInstanceId(String instanceId) {
+            this.instanceId = instanceId;
+        }
+    }
+}
diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/client/SoCallbackClient.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/client/SoCallbackClient.java
new file mode 100644 (file)
index 0000000..f6e39e8
--- /dev/null
@@ -0,0 +1,41 @@
+package org.onap.so.adapters.cnf.client;
+
+import com.google.gson.Gson;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.springframework.http.HttpMethod.POST;
+
+@Component
+public class SoCallbackClient {
+
+    private final RestTemplate restTemplate;
+    private final static Gson gson = new Gson();
+
+    @Autowired
+    public SoCallbackClient(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+
+    public ResponseEntity<String> sendPostCallback(String url, Object body) {
+        return restTemplate.exchange(url, POST, httpEntity(body), String.class);
+    }
+
+    private HttpEntity<?> httpEntity(Object body) {
+        HttpHeaders headers = new HttpHeaders();
+        List<MediaType> acceptableMediaTypes = new ArrayList<>();
+        acceptableMediaTypes.add(MediaType.APPLICATION_JSON);
+        headers.setAccept(acceptableMediaTypes);
+        headers.setContentType(MediaType.APPLICATION_JSON);
+
+        return new HttpEntity<>(gson.toJson(body), headers);
+    }
+}
diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/CheckInstanceRequest.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/CheckInstanceRequest.java
new file mode 100644 (file)
index 0000000..ac8fe54
--- /dev/null
@@ -0,0 +1,42 @@
+package org.onap.so.adapters.cnf.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import java.util.List;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(value = "true")
+public class CheckInstanceRequest {
+
+    @JsonProperty("requestedInstances")
+    private List<InstanceRequest> instances;
+
+    @JsonProperty("callbackUrl")
+    private String callbackUrl;
+
+    public List<InstanceRequest> getInstances() {
+        return instances;
+    }
+
+    public void setInstances(List<InstanceRequest> instances) {
+        this.instances = instances;
+    }
+
+    public String getCallbackUrl() {
+        return callbackUrl;
+    }
+
+    public void setCallbackUrl(String callbackUrl) {
+        this.callbackUrl = callbackUrl;
+    }
+
+    @Override
+    public String toString() {
+        return "CheckInstanceRequest{" +
+                "instances=" + instances +
+                ", callbackUrl='" + callbackUrl + '\'' +
+                '}';
+    }
+}
diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceRequest.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceRequest.java
new file mode 100644 (file)
index 0000000..da34b3a
--- /dev/null
@@ -0,0 +1,28 @@
+package org.onap.so.adapters.cnf.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(value = "true")
+public class InstanceRequest {
+
+    @JsonProperty("instanceId")
+    private String instanceId;
+
+    public String getInstanceId() {
+        return instanceId;
+    }
+
+    public void setInstanceId(String instanceId) {
+        this.instanceId = instanceId;
+    }
+
+    @Override
+    public String toString() {
+        return "InstanceRequest{" +
+                "instanceId='" + instanceId + '\'' +
+                '}';
+    }
+}
diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/healthcheck/HealthCheckInstanceResponse.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/healthcheck/HealthCheckInstanceResponse.java
new file mode 100644 (file)
index 0000000..7811fe1
--- /dev/null
@@ -0,0 +1,60 @@
+package org.onap.so.adapters.cnf.model.healthcheck;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(value = "true")
+public class HealthCheckInstanceResponse {
+
+    @JsonProperty("instanceId")
+    private String instanceId;
+
+    @JsonProperty("reason")
+    private String reason;
+
+    @JsonProperty("status")
+    private String status;
+
+    public HealthCheckInstanceResponse() { }
+
+    public HealthCheckInstanceResponse(String instanceId, String reason, String status) {
+        this.instanceId = instanceId;
+        this.reason = reason;
+        this.status = status;
+    }
+
+    public String getInstanceId() {
+        return instanceId;
+    }
+
+    public void setInstanceId(String instanceId) {
+        this.instanceId = instanceId;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    @Override
+    public String toString() {
+        return "StatusCheckInstanceResponse{" +
+                "instanceId='" + instanceId + '\'' +
+                ", reason='" + reason + '\'' +
+                ", status=" + status +
+                '}';
+    }
+}
diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/healthcheck/HealthCheckResponse.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/healthcheck/HealthCheckResponse.java
new file mode 100644 (file)
index 0000000..aabd490
--- /dev/null
@@ -0,0 +1,31 @@
+package org.onap.so.adapters.cnf.model.healthcheck;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import java.util.List;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(value = "true")
+public class HealthCheckResponse {
+
+    @JsonProperty("result")
+    private List<HealthCheckInstanceResponse> instanceResponse;
+
+    public List<HealthCheckInstanceResponse> getInstanceResponse() {
+        return instanceResponse;
+    }
+
+    public void setInstanceResponse(List<HealthCheckInstanceResponse> instanceResponse) {
+        this.instanceResponse = instanceResponse;
+    }
+
+    @Override
+    public String toString() {
+        return "StatusCheckResponse{" +
+                "instanceResponse=" + instanceResponse +
+                '}';
+    }
+
+}
diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/healthcheck/K8sRbInstanceHealthCheck.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/healthcheck/K8sRbInstanceHealthCheck.java
new file mode 100644 (file)
index 0000000..bab6a5a
--- /dev/null
@@ -0,0 +1,28 @@
+package org.onap.so.adapters.cnf.model.healthcheck;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(value = "true")
+public class K8sRbInstanceHealthCheck {
+
+    @JsonProperty("status")
+    private String status;
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    @Override
+    public String toString() {
+        return "K8sRbInstanceHealthCheck{" +
+                "status='" + status + '\'' +
+                '}';
+    }
+}
diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/healthcheck/K8sRbInstanceHealthCheckSimple.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/healthcheck/K8sRbInstanceHealthCheckSimple.java
new file mode 100644 (file)
index 0000000..8a2590d
--- /dev/null
@@ -0,0 +1,37 @@
+package org.onap.so.adapters.cnf.model.healthcheck;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class K8sRbInstanceHealthCheckSimple {
+
+    @JsonProperty("healthcheck-id")
+    private String id;
+
+    @JsonProperty("status")
+    private String status;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    @Override
+    public String toString() {
+        return "K8sRbInstanceHealthCheckSimple{" +
+                "id='" + id + '\'' +
+                ", status='" + status + '\'' +
+                '}';
+    }
+
+}
diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/statuscheck/K8sRbInstanceGvk.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/statuscheck/K8sRbInstanceGvk.java
new file mode 100644 (file)
index 0000000..fee6496
--- /dev/null
@@ -0,0 +1,43 @@
+package org.onap.so.adapters.cnf.model.statuscheck;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(value = "true")
+public class K8sRbInstanceGvk {
+
+    @JsonProperty("Group")
+    private String group;
+
+    @JsonProperty("Kind")
+    private String kind;
+
+    @JsonProperty("Version")
+    private String version;
+
+    public String getGroup() {
+        return group;
+    }
+
+    public void setGroup(String group) {
+        this.group = group;
+    }
+
+    public String getKind() {
+        return kind;
+    }
+
+    public void setKind(String kind) {
+        this.kind = kind;
+    }
+
+    public String getVersion() {
+        return version;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
+    }
+}
diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/statuscheck/K8sRbInstanceResourceStatus.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/statuscheck/K8sRbInstanceResourceStatus.java
new file mode 100644 (file)
index 0000000..27a3c39
--- /dev/null
@@ -0,0 +1,47 @@
+package org.onap.so.adapters.cnf.model.statuscheck;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import java.util.Map;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(value = "true")
+public class K8sRbInstanceResourceStatus {
+
+    @JsonProperty("name")
+    private String name;
+
+    @JsonProperty("GVK")
+    private K8sRbInstanceGvk gvk;
+
+    @JsonProperty("status")
+    private Map<String, Object> status;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public K8sRbInstanceGvk getGvk() {
+        return gvk;
+    }
+
+    public void setGvk(K8sRbInstanceGvk gvk) {
+        this.gvk = gvk;
+    }
+
+    public Map<String, Object> getStatus() {
+        return status;
+    }
+
+    public void setStatus(Map<String, Object> status) {
+        this.status = status;
+    }
+
+}
diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/statuscheck/K8sRbInstanceStatus.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/statuscheck/K8sRbInstanceStatus.java
new file mode 100644 (file)
index 0000000..f8680af
--- /dev/null
@@ -0,0 +1,67 @@
+package org.onap.so.adapters.cnf.model.statuscheck;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.onap.so.adapters.cnf.model.MulticloudInstanceRequest;
+
+import java.util.List;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(value = "true")
+public class K8sRbInstanceStatus {
+
+    @JsonProperty("request")
+    private MulticloudInstanceRequest request;
+
+    @JsonProperty("resourceCount")
+    private int resourceCount;
+
+    @JsonProperty("ready")
+    private boolean ready;
+
+    @JsonProperty("resourcesStatus")
+    private List<K8sRbInstanceResourceStatus> resourcesStatus;
+
+    public MulticloudInstanceRequest getRequest() {
+        return request;
+    }
+
+    public void setRequest(MulticloudInstanceRequest request) {
+        this.request = request;
+    }
+
+    public int getResourceCount() {
+        return resourceCount;
+    }
+
+    public void setResourceCount(int resourceCount) {
+        this.resourceCount = resourceCount;
+    }
+
+    public boolean isReady() {
+        return ready;
+    }
+
+    public void setReady(boolean ready) {
+        this.ready = ready;
+    }
+
+    public List<K8sRbInstanceResourceStatus> getResourcesStatus() {
+        return resourcesStatus;
+    }
+
+    public void setResourcesStatus(List<K8sRbInstanceResourceStatus> resourcesStatus) {
+        this.resourcesStatus = resourcesStatus;
+    }
+
+    @Override
+    public String toString() {
+        return "K8sRbInstanceStatus{" +
+                "request=" + request +
+                ", resourceCount=" + resourceCount +
+                ", ready=" + ready +
+                ", resourcesStatus=" + resourcesStatus +
+                '}';
+    }
+}
diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/statuscheck/StatusCheckInstanceResponse.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/statuscheck/StatusCheckInstanceResponse.java
new file mode 100644 (file)
index 0000000..fc5da9b
--- /dev/null
@@ -0,0 +1,60 @@
+package org.onap.so.adapters.cnf.model.statuscheck;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(value = "true")
+public class StatusCheckInstanceResponse {
+
+    @JsonProperty("instanceId")
+    private String instanceId;
+
+    @JsonProperty("reason")
+    private String reason;
+
+    @JsonProperty("status")
+    private boolean status;
+
+    public StatusCheckInstanceResponse() { }
+
+    public StatusCheckInstanceResponse(String instanceId, String reason, boolean status) {
+        this.instanceId = instanceId;
+        this.reason = reason;
+        this.status = status;
+    }
+
+    public String getInstanceId() {
+        return instanceId;
+    }
+
+    public void setInstanceId(String instanceId) {
+        this.instanceId = instanceId;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    public boolean isStatus() {
+        return status;
+    }
+
+    public void setStatus(boolean status) {
+        this.status = status;
+    }
+
+    @Override
+    public String toString() {
+        return "StatusCheckInstanceResponse{" +
+                "instanceId='" + instanceId + '\'' +
+                ", reason='" + reason + '\'' +
+                ", status=" + status +
+                '}';
+    }
+}
diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/statuscheck/StatusCheckResponse.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/statuscheck/StatusCheckResponse.java
new file mode 100644 (file)
index 0000000..36c3068
--- /dev/null
@@ -0,0 +1,31 @@
+package org.onap.so.adapters.cnf.model.statuscheck;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import java.util.List;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(value = "true")
+public class StatusCheckResponse {
+
+    @JsonProperty("result")
+    private List<StatusCheckInstanceResponse> instanceResponse;
+
+    public List<StatusCheckInstanceResponse> getInstanceResponse() {
+        return instanceResponse;
+    }
+
+    public void setInstanceResponse(List<StatusCheckInstanceResponse> instanceResponse) {
+        this.instanceResponse = instanceResponse;
+    }
+
+    @Override
+    public String toString() {
+        return "StatusCheckResponse{" +
+                "instanceResponse=" + instanceResponse +
+                '}';
+    }
+
+}