diff options
Diffstat (limited to 'so-cnf-adapter-application/src/main/java/org/onap')
4 files changed, 178 insertions, 145 deletions
diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/aai/AaiRequestSender.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/aai/AaiRequestSender.java new file mode 100644 index 0000000..8dd7647 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/aai/AaiRequestSender.java @@ -0,0 +1,40 @@ +package org.onap.so.adapters.cnf.service.aai; + +import com.google.gson.Gson; +import org.onap.aaiclient.client.aai.AAIResourcesClient; +import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri; +import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory; +import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder; +import org.onap.so.adapters.cnf.model.instantiation.AaiRequest; +import org.springframework.stereotype.Component; + +@Component +class AaiRequestSender { + + private final static Gson gson = new Gson(); + private AAIResourcesClient aaiClient; + + void sendUpdateRequestToAai(ParseResult parseResult, AaiRequest aaiRequest) { + AAIResourceUri aaiUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure() + .cloudRegion(aaiRequest.getCloudOwner(), aaiRequest.getCloudRegion()) + .tenant(aaiRequest.getTenantId()) + .build()); + String payload = gson.toJson(parseResult); + getAaiClient().create(aaiUri, payload); + } + + void sendDeleteRequestToAai(AaiRequest aaiRequest) { + AAIResourceUri aaiUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure() + .cloudRegion(aaiRequest.getCloudOwner(), aaiRequest.getCloudRegion()) + .tenant(aaiRequest.getTenantId()) + .build()); + getAaiClient().delete(aaiUri); + } + + private AAIResourcesClient getAaiClient() { + if (aaiClient == null) { + aaiClient = new AAIResourcesClient(); + } + return aaiClient; + } +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/aai/AaiResponseParser.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/aai/AaiResponseParser.java new file mode 100644 index 0000000..304c023 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/aai/AaiResponseParser.java @@ -0,0 +1,44 @@ +package org.onap.so.adapters.cnf.service.aai; + +import org.onap.so.adapters.cnf.model.instantiation.AaiRequest; +import org.onap.so.adapters.cnf.model.statuscheck.K8sRbInstanceGvk; +import org.onap.so.adapters.cnf.model.statuscheck.K8sRbInstanceResourceStatus; +import org.onap.so.adapters.cnf.model.statuscheck.K8sStatus; +import org.onap.so.adapters.cnf.model.statuscheck.K8sStatusMetadata; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.Collection; + +@Component +public class AaiResponseParser { + + private final AaiIdGeneratorService aaiIdGeneratorService; + + public AaiResponseParser(AaiIdGeneratorService aaiIdGeneratorService) { + this.aaiIdGeneratorService = aaiIdGeneratorService; + } + + ParseResult parse(K8sRbInstanceResourceStatus status, AaiRequest aaiRequest) { + ParseResult result = new ParseResult(); + K8sRbInstanceGvk gvk = status.getGvk(); + K8sStatus k8sStatus = status.getStatus(); + K8sStatusMetadata metadata = k8sStatus.getK8sStatusMetadata(); + String id = aaiIdGeneratorService.generateId(status, aaiRequest); + result.setId(id); + result.setName(status.getName()); + result.setGroup(gvk.getGroup()); + result.setVersion(gvk.getVersion()); + result.setKind(gvk.getKind()); + result.setNamespace(metadata.getNamespace()); + Collection<String> labels = new ArrayList<>(); + metadata.getLabels().forEach((key, value) -> { + labels.add(key); + labels.add(value); + }); + result.setLabels(labels); + result.setK8sResourceSelfLink(String.format("http://so-cnf-adapter:8090/api/cnf-adapter/v1/instance/%s/query", aaiRequest.getInstanceId())); + return result; + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/aai/AaiService.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/aai/AaiService.java index effecce..4827578 100644 --- a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/aai/AaiService.java +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/aai/AaiService.java @@ -1,176 +1,47 @@ package org.onap.so.adapters.cnf.service.aai; -import com.google.gson.Gson; -import org.onap.aaiclient.client.aai.AAIResourcesClient; -import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri; -import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory; -import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder; import org.onap.so.adapters.cnf.client.MulticloudClient; import org.onap.so.adapters.cnf.model.instantiation.AaiRequest; -import org.onap.so.adapters.cnf.model.statuscheck.K8sRbInstanceGvk; import org.onap.so.adapters.cnf.model.statuscheck.K8sRbInstanceResourceStatus; import org.onap.so.adapters.cnf.model.statuscheck.K8sRbInstanceStatus; -import org.onap.so.adapters.cnf.model.statuscheck.K8sStatusMetadata; import org.onap.so.client.exception.BadResponseException; import org.springframework.stereotype.Service; -import java.util.*; +import java.util.List; import java.util.stream.Collectors; @Service public class AaiService { - private final static Gson gson = new Gson(); private final MulticloudClient multicloudClient; - private final AaiIdGeneratorService aaiIdGeneratorService; - private AAIResourcesClient aaiClient; + private final AaiRequestSender aaiRequestSender; + private final AaiResponseParser responseParser; - public AaiService(MulticloudClient multicloudClient, AaiIdGeneratorService aaiIdGeneratorService) { + public AaiService(MulticloudClient multicloudClient, AaiRequestSender aaiRequestSender, AaiResponseParser responseParser) { this.multicloudClient = multicloudClient; - this.aaiIdGeneratorService = aaiIdGeneratorService; + this.aaiRequestSender = aaiRequestSender; + this.responseParser = responseParser; } public void aaiUpdate(AaiRequest aaiRequest) throws BadResponseException { - String instanceId = aaiRequest.getInstanceId(); - K8sRbInstanceStatus instanceStatus = multicloudClient.getInstanceStatus(instanceId); - - List<K8sRbInstanceResourceStatus> resourcesStatus = instanceStatus.getResourcesStatus(); - List<ParseResult> parsedStatus = resourcesStatus.stream() - .map(status -> parse(status, aaiRequest)) - .collect(Collectors.toList()); + List<ParseResult> parseStatus = parseStatus(aaiRequest); - parsedStatus.forEach(status -> sendUpdateRequestToAai(status, aaiRequest)); + parseStatus.forEach(status -> aaiRequestSender.sendUpdateRequestToAai(status, aaiRequest)); } public void aaiDelete(AaiRequest aaiRequest) throws BadResponseException { + List<ParseResult> parseStatus = parseStatus(aaiRequest); + + parseStatus.forEach(status -> aaiRequestSender.sendDeleteRequestToAai(aaiRequest)); + } + + private List<ParseResult> parseStatus(AaiRequest aaiRequest) throws BadResponseException { String instanceId = aaiRequest.getInstanceId(); K8sRbInstanceStatus instanceStatus = multicloudClient.getInstanceStatus(instanceId); List<K8sRbInstanceResourceStatus> resourcesStatus = instanceStatus.getResourcesStatus(); - List<ParseResult> parsedStatus = resourcesStatus.stream() - .map(status -> parse(status, aaiRequest)) + return resourcesStatus.stream() + .map(status -> responseParser.parse(status, aaiRequest)) .collect(Collectors.toList()); - - parsedStatus.forEach(status -> sendDeleteRequestToAai(aaiRequest)); - } - - private void sendDeleteRequestToAai(AaiRequest aaiRequest) { - AAIResourceUri aaiUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure() - .cloudRegion(aaiRequest.getCloudOwner(), aaiRequest.getCloudRegion()) - .tenant(aaiRequest.getTenantId()) - .build()); - getAaiClient().delete(aaiUri); - } - - private void sendUpdateRequestToAai(ParseResult parseResult, AaiRequest aaiRequest) { - AAIResourceUri aaiUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure() - .cloudRegion(aaiRequest.getCloudOwner(), aaiRequest.getCloudRegion()) - .tenant(aaiRequest.getTenantId()) - .build()); - String payload = gson.toJson(parseResult); - getAaiClient().create(aaiUri, payload); - } - - private AAIResourcesClient getAaiClient() { - if (aaiClient == null) { - aaiClient = new AAIResourcesClient(); - } - return aaiClient; - } - - private ParseResult parse(K8sRbInstanceResourceStatus status, AaiRequest aaiRequest) { - ParseResult result = new ParseResult(); - K8sRbInstanceGvk gvk = status.getGvk(); - K8sStatusMetadata metadata = status.getStatus().getK8sStatusMetadata(); - String id = aaiIdGeneratorService.generateId(status, aaiRequest); - result.setId(id); - result.setName(status.getName()); - result.setGroup(gvk.getGroup()); - result.setVersion(gvk.getVersion()); - result.setKind(gvk.getKind()); - result.setNamespace(metadata.getNamespace()); - Collection<String> labels = new ArrayList<>(); - metadata.getLabels().forEach((key, value) -> { - labels.add(key); - labels.add(value); - }); - result.setLabels(labels); - result.setK8sResourceSelfLink(String.format("http://so-cnf-adapter:8090/api/cnf-adapter/v1/instance/%s/query", aaiRequest.getInstanceId())); - return result; - } - - private class ParseResult { - private String id; - private String name; - private String group; - private String version; - private String kind; - private String namespace; - private Collection<String> labels; - private String k8sResourceSelfLink; - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getGroup() { - return group; - } - - public void setGroup(String group) { - this.group = group; - } - - public String getVersion() { - return version; - } - - public void setVersion(String version) { - this.version = version; - } - - public String getKind() { - return kind; - } - - public void setKind(String kind) { - this.kind = kind; - } - - public String getNamespace() { - return namespace; - } - - public void setNamespace(String namespace) { - this.namespace = namespace; - } - - public Collection<String> getLabels() { - return labels; - } - - public void setLabels(Collection<String> labels) { - this.labels = labels; - } - - public String getK8sResourceSelfLink() { - return k8sResourceSelfLink; - } - - public void setK8sResourceSelfLink(String k8sResourceSelfLink) { - this.k8sResourceSelfLink = k8sResourceSelfLink; - } } } diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/aai/ParseResult.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/aai/ParseResult.java new file mode 100644 index 0000000..e44a885 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/aai/ParseResult.java @@ -0,0 +1,78 @@ +package org.onap.so.adapters.cnf.service.aai; + +import java.util.Collection; + +class ParseResult { + private String id; + private String name; + private String group; + private String version; + private String kind; + private String namespace; + private Collection<String> labels; + private String k8sResourceSelfLink; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getGroup() { + return group; + } + + public void setGroup(String group) { + this.group = group; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public String getKind() { + return kind; + } + + public void setKind(String kind) { + this.kind = kind; + } + + public String getNamespace() { + return namespace; + } + + public void setNamespace(String namespace) { + this.namespace = namespace; + } + + public Collection<String> getLabels() { + return labels; + } + + public void setLabels(Collection<String> labels) { + this.labels = labels; + } + + public String getK8sResourceSelfLink() { + return k8sResourceSelfLink; + } + + public void setK8sResourceSelfLink(String k8sResourceSelfLink) { + this.k8sResourceSelfLink = k8sResourceSelfLink; + } +}
\ No newline at end of file |