diff options
Diffstat (limited to 'plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org')
7 files changed, 272 insertions, 35 deletions
diff --git a/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/controller/OperationsController.java b/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/controller/OperationsController.java index 00740298..2d901c42 100644 --- a/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/controller/OperationsController.java +++ b/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/controller/OperationsController.java @@ -23,6 +23,7 @@ import static org.onap.so.sdncsimulator.utils.Constants.OPERATIONS_URL; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.core.MediaType; import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceOperationInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfOperationInformation; import org.onap.so.sdncsimulator.models.InputRequest; import org.onap.so.sdncsimulator.models.Output; import org.onap.so.sdncsimulator.models.OutputRequest; @@ -55,15 +56,17 @@ public class OperationsController { } @PostMapping(value = "/GENERIC-RESOURCE-API:service-topology-operation/", + consumes = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}, produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) public ResponseEntity<?> postServiceOperationInformation( @RequestBody final InputRequest<GenericResourceApiServiceOperationInformation> inputRequest, final HttpServletRequest request) { - LOGGER.info("Request Received {} ...", inputRequest); + LOGGER.info("Request Received: {} ...", inputRequest); final GenericResourceApiServiceOperationInformation apiServiceOperationInformation = inputRequest.getInput(); if (apiServiceOperationInformation == null) { + LOGGER.error("Invalid input request: {}", inputRequest); return ResponseEntity.badRequest().build(); } @@ -71,9 +74,37 @@ public class OperationsController { final OutputRequest outputRequest = new OutputRequest(output); if (output.getResponseCode().equals(HttpStatus.OK.toString())) { + LOGGER.info("Sucessfully added service in cache sending response: {}", outputRequest); + return ResponseEntity.ok(outputRequest); + } + LOGGER.error("Unable to add input request: {}, will send OutputRequest: {}", inputRequest, outputRequest); + return ResponseEntity.badRequest().body(outputRequest); + + } + + @PostMapping(value = "/GENERIC-RESOURCE-API:vnf-topology-operation/", + consumes = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}, + produces = {MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) + public ResponseEntity<?> postVnfOperationInformation( + @RequestBody final InputRequest<GenericResourceApiVnfOperationInformation> inputRequest, + final HttpServletRequest request) { + LOGGER.info("Request Received: {} ...", inputRequest); + + final GenericResourceApiVnfOperationInformation apiVnfOperationInformation = inputRequest.getInput(); + if (apiVnfOperationInformation == null) { + LOGGER.error("Invalid input request: {}", inputRequest); + return ResponseEntity.badRequest().build(); + } + + final Output output = cacheServiceProvider.putVnfOperationInformation(apiVnfOperationInformation); + final OutputRequest outputRequest = new OutputRequest(output); + + if (output.getResponseCode().equals(HttpStatus.OK.toString())) { + LOGGER.info("Sucessfully added vnf in cache sending response: {}", outputRequest); return ResponseEntity.ok(outputRequest); } + LOGGER.error("Unable to add input request: {}, will send OutputRequest: {}", inputRequest, outputRequest); return ResponseEntity.badRequest().body(outputRequest); } diff --git a/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/models/InputRequest.java b/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/models/InputRequest.java index d4e83fce..3d415202 100644 --- a/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/models/InputRequest.java +++ b/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/models/InputRequest.java @@ -19,13 +19,16 @@ */ package org.onap.so.sdncsimulator.models; +import java.io.Serializable; import com.fasterxml.jackson.annotation.JsonIgnore; /** * @author Waqas Ikram (waqas.ikram@est.tech) * */ -public class InputRequest<T> { +public class InputRequest<T> implements Serializable { + + private static final long serialVersionUID = -3408332422970506740L; private T input; @@ -46,7 +49,11 @@ public class InputRequest<T> { @JsonIgnore @Override public String toString() { - return "Input [input=" + input + "]"; + final StringBuilder sb = new StringBuilder(); + sb.append("class InputRequest {\n"); + sb.append(" input: ").append(input).append("\n"); + sb.append("}"); + return sb.toString(); } } diff --git a/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/models/Output.java b/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/models/Output.java index 554989db..d64b0b0c 100644 --- a/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/models/Output.java +++ b/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/models/Output.java @@ -19,6 +19,7 @@ */ package org.onap.so.sdncsimulator.models; +import java.io.Serializable; import org.onap.sdnc.northbound.client.model.GenericResourceApiInstanceReference; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; @@ -27,7 +28,9 @@ import com.fasterxml.jackson.annotation.JsonProperty; * @author Waqas Ikram (waqas.ikram@est.tech) * */ -public class Output { +public class Output implements Serializable { + + private static final long serialVersionUID = 3838047042980836468L; @JsonProperty("response-message") private String responseMessage; @@ -44,6 +47,9 @@ public class Output { @JsonProperty("service-response-information") private GenericResourceApiInstanceReference serviceResponseInformation = null; + @JsonProperty("vnf-response-information") + private GenericResourceApiInstanceReference vnfResponseInformation = null; + /** * @return the responseMessage */ @@ -114,6 +120,21 @@ public class Output { this.serviceResponseInformation = serviceResponseInformation; } + /** + * @return the vnfResponseInformation + */ + public GenericResourceApiInstanceReference getVnfResponseInformation() { + return vnfResponseInformation; + } + + /** + * @param vnfResponseInformation the vnfResponseInformation to set + */ + public void setVnfResponseInformation(final GenericResourceApiInstanceReference vnfResponseInformation) { + this.vnfResponseInformation = vnfResponseInformation; + } + + public Output responseMessage(final String responseMessage) { this.responseMessage = responseMessage; return this; @@ -139,13 +160,25 @@ public class Output { return this; } + public Output vnfResponseInformation(final GenericResourceApiInstanceReference vnfResponseInformation) { + this.vnfResponseInformation = vnfResponseInformation; + return this; + + } @JsonIgnore @Override public String toString() { - return "OutputRequest [responseMessage=" + responseMessage + ", ackFinalIndicator=" + ackFinalIndicator - + ", svcRequestId=" + svcRequestId + ", responseCode=" + responseCode + ", serviceResponseInformation=" - + serviceResponseInformation + "]"; + final StringBuilder sb = new StringBuilder(); + sb.append("class OutputRequest {\n"); + sb.append(" responseMessage: ").append(responseMessage).append("\n"); + sb.append(" ackFinalIndicator: ").append(ackFinalIndicator).append("\n"); + sb.append(" svcRequestId: ").append(svcRequestId).append("\n"); + sb.append(" responseCode: ").append(responseCode).append("\n"); + sb.append(" serviceResponseInformation: ").append(serviceResponseInformation).append("\n"); + sb.append(" vnfResponseInformation: ").append(vnfResponseInformation).append("\n"); + sb.append("}"); + return sb.toString(); } diff --git a/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/models/OutputRequest.java b/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/models/OutputRequest.java index 97d20568..1dcd427d 100644 --- a/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/models/OutputRequest.java +++ b/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/models/OutputRequest.java @@ -19,14 +19,17 @@ */ package org.onap.so.sdncsimulator.models; +import java.io.Serializable; import com.fasterxml.jackson.annotation.JsonProperty; /** * @author Waqas Ikram (waqas.ikram@est.tech) * */ +public class OutputRequest implements Serializable { + + private static final long serialVersionUID = -6702076913290110397L; -public class OutputRequest { @JsonProperty("output") private Output output; @@ -47,7 +50,11 @@ public class OutputRequest { @Override public String toString() { - return "OutputRequest [output=" + output + "]"; + final StringBuilder sb = new StringBuilder(); + sb.append("class OutputRequest {\n"); + sb.append(" output: ").append(output).append("\n"); + sb.append("}"); + return sb.toString(); } } diff --git a/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/providers/ServiceOperationsCacheServiceProvider.java b/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/providers/ServiceOperationsCacheServiceProvider.java index a0116c48..97dc7b11 100644 --- a/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/providers/ServiceOperationsCacheServiceProvider.java +++ b/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/providers/ServiceOperationsCacheServiceProvider.java @@ -20,8 +20,9 @@ package org.onap.so.sdncsimulator.providers; import java.util.Optional; -import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceModelInfrastructure; import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceOperationInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiServicemodelinfrastructureService; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfOperationInformation; import org.onap.so.sdncsimulator.models.Output; /** @@ -33,10 +34,11 @@ public interface ServiceOperationsCacheServiceProvider { Output putServiceOperationInformation( final GenericResourceApiServiceOperationInformation apiServiceOperationInformation); - Optional<GenericResourceApiServiceModelInfrastructure> getGenericResourceApiServiceModelInfrastructure( + Optional<GenericResourceApiServicemodelinfrastructureService> getGenericResourceApiServicemodelinfrastructureService( final String serviceInstanceId); - void clearAll(); + Output putVnfOperationInformation(final GenericResourceApiVnfOperationInformation apiVnfOperationInformation); + void clearAll(); } diff --git a/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/providers/ServiceOperationsCacheServiceProviderimpl.java b/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/providers/ServiceOperationsCacheServiceProviderimpl.java index 620742ab..2281d0ab 100644 --- a/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/providers/ServiceOperationsCacheServiceProviderimpl.java +++ b/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/providers/ServiceOperationsCacheServiceProviderimpl.java @@ -19,33 +19,47 @@ */ package org.onap.so.sdncsimulator.providers; +import static org.onap.sdnc.northbound.client.model.GenericResourceApiOrderStatusEnumeration.CREATED; +import static org.onap.sdnc.northbound.client.model.GenericResourceApiOrderStatusEnumeration.PENDINGCREATE; +import static org.onap.sdnc.northbound.client.model.GenericResourceApiRequestStatusEnumeration.SYNCCOMPLETE; import static org.onap.so.sdncsimulator.utils.Constants.RESTCONF_CONFIG_END_POINT; +import static org.onap.so.sdncsimulator.utils.Constants.SERVICE_DATA_VNFS_VNF; import static org.onap.so.sdncsimulator.utils.Constants.SERVICE_TOPOLOGY_OPERATION; import static org.onap.so.sdncsimulator.utils.Constants.SERVICE_TOPOLOGY_OPERATION_CACHE; +import static org.onap.so.sdncsimulator.utils.Constants.VNF_DATA_VNF_TOPOLOGY; import static org.onap.so.sdncsimulator.utils.Constants.YES; import static org.onap.so.sdncsimulator.utils.ObjectUtils.getString; import static org.onap.so.sdncsimulator.utils.ObjectUtils.getStringOrNull; import static org.onap.so.sdncsimulator.utils.ObjectUtils.isValid; import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; +import javax.validation.Valid; import org.onap.sdnc.northbound.client.model.GenericResourceApiInstanceReference; import org.onap.sdnc.northbound.client.model.GenericResourceApiLastActionEnumeration; import org.onap.sdnc.northbound.client.model.GenericResourceApiLastRpcActionEnumeration; import org.onap.sdnc.northbound.client.model.GenericResourceApiOnapmodelinformationOnapModelInformation; import org.onap.sdnc.northbound.client.model.GenericResourceApiOperStatusData; import org.onap.sdnc.northbound.client.model.GenericResourceApiOrderStatusEnumeration; -import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestStatusEnumeration; import org.onap.sdnc.northbound.client.model.GenericResourceApiRequestinformationRequestInformation; import org.onap.sdnc.northbound.client.model.GenericResourceApiRpcActionEnumeration; import org.onap.sdnc.northbound.client.model.GenericResourceApiSdncrequestheaderSdncRequestHeader; -import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceModelInfrastructure; import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceOperationInformation; import org.onap.sdnc.northbound.client.model.GenericResourceApiServicedataServiceData; +import org.onap.sdnc.northbound.client.model.GenericResourceApiServicedataServicedataVnfs; +import org.onap.sdnc.northbound.client.model.GenericResourceApiServicedataServicedataVnfsVnf; +import org.onap.sdnc.northbound.client.model.GenericResourceApiServicedataServicedataVnfsVnfVnfData; import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceinformationServiceInformation; import org.onap.sdnc.northbound.client.model.GenericResourceApiServicemodelinfrastructureService; import org.onap.sdnc.northbound.client.model.GenericResourceApiServicestatusServiceStatus; import org.onap.sdnc.northbound.client.model.GenericResourceApiServicetopologyServiceTopology; import org.onap.sdnc.northbound.client.model.GenericResourceApiServicetopologyidentifierServiceTopologyIdentifier; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfOperationInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfinformationVnfInformation; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfrequestinputVnfRequestInput; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVnftopologyVnfTopology; +import org.onap.sdnc.northbound.client.model.GenericResourceApiVnftopologyidentifierstructureVnfTopologyIdentifierStructure; import org.onap.so.sdncsimulator.models.Output; import org.onap.so.simulator.cache.provider.AbstractCacheServiceProvider; import org.slf4j.Logger; @@ -64,7 +78,6 @@ import org.springframework.stereotype.Service; public class ServiceOperationsCacheServiceProviderimpl extends AbstractCacheServiceProvider implements ServiceOperationsCacheServiceProvider { - private static final Logger LOGGER = LoggerFactory.getLogger(ServiceOperationsCacheServiceProviderimpl.class); @Autowired @@ -85,45 +98,181 @@ public class ServiceOperationsCacheServiceProviderimpl extends AbstractCacheServ LOGGER.info("Adding GenericResourceApiServiceOperationInformation to cache with key: {}", serviceInstanceId); - final GenericResourceApiServiceModelInfrastructure serviceModelInfrastructure = - new GenericResourceApiServiceModelInfrastructure(); - - final GenericResourceApiServicemodelinfrastructureService service = getServiceItem(input); - serviceModelInfrastructure.addServiceItem(service); - cache.put(serviceInstanceId, serviceModelInfrastructure); + final GenericResourceApiServicemodelinfrastructureService service = + getServiceItem(input, serviceInstanceId); + cache.put(serviceInstanceId, service); final GenericResourceApiServicestatusServiceStatus serviceStatus = service.getServiceStatus(); return new Output().ackFinalIndicator(serviceStatus.getFinalIndicator()) .responseCode(serviceStatus.getResponseCode()).responseMessage(serviceStatus.getResponseMessage()) .svcRequestId(svcRequestId).serviceResponseInformation(new GenericResourceApiInstanceReference() - .instanceId(serviceInstanceId).objectPath(RESTCONF_CONFIG_END_POINT + serviceInstanceId)); + .instanceId(serviceInstanceId).objectPath(getObjectPath(serviceInstanceId))); } + LOGGER.error( + "Unable to add GenericResourceApiServiceOperationInformation in cache due to invalid input: {}... ", + input); return new Output().ackFinalIndicator(YES).responseCode(HttpStatus.BAD_REQUEST.toString()) .responseMessage("Service instance not found").svcRequestId(svcRequestId); } @Override - public Optional<GenericResourceApiServiceModelInfrastructure> getGenericResourceApiServiceModelInfrastructure( + public Optional<GenericResourceApiServicemodelinfrastructureService> getGenericResourceApiServicemodelinfrastructureService( final String serviceInstanceId) { final Cache cache = getCache(SERVICE_TOPOLOGY_OPERATION_CACHE); - final GenericResourceApiServiceModelInfrastructure value = - cache.get(serviceInstanceId, GenericResourceApiServiceModelInfrastructure.class); + final GenericResourceApiServicemodelinfrastructureService value = + cache.get(serviceInstanceId, GenericResourceApiServicemodelinfrastructureService.class); if (value != null) { + LOGGER.info("Found {} in cahce for service instance id: {}", value, serviceInstanceId); return Optional.of(value); } + LOGGER.error("Unable to find GenericResourceApiServiceModelInfrastructure in cache for service instance id: {}", + serviceInstanceId); return Optional.empty(); } @Override + public Output putVnfOperationInformation(final GenericResourceApiVnfOperationInformation input) { + + final GenericResourceApiServiceinformationServiceInformation serviceInformation = input.getServiceInformation(); + final GenericResourceApiVnfinformationVnfInformation vnfInformation = input.getVnfInformation(); + + final GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader = input.getSdncRequestHeader(); + final String svcRequestId = requestHeader != null ? requestHeader.getSvcRequestId() : null; + + if (serviceInformation != null && isValid(serviceInformation.getServiceInstanceId()) && vnfInformation != null + && isValid(vnfInformation.getVnfId())) { + final String serviceInstanceId = serviceInformation.getServiceInstanceId(); + final String vnfId = vnfInformation.getVnfId(); + final Optional<GenericResourceApiServicemodelinfrastructureService> optional = + getGenericResourceApiServicemodelinfrastructureService(serviceInstanceId); + if (optional.isPresent()) { + final GenericResourceApiServicemodelinfrastructureService service = optional.get(); + final GenericResourceApiServicedataServiceData serviceData = service.getServiceData(); + if (serviceData != null) { + final List<GenericResourceApiServicedataServicedataVnfsVnf> vnfsList = getVnfs(serviceData); + if (ifVnfNotExists(vnfId, vnfsList)) { + + vnfsList.add(getGenericResourceApiServicedataVnf(serviceInstanceId, vnfId, input)); + + final GenericResourceApiServicestatusServiceStatus serviceStatus = service.getServiceStatus(); + + return new Output().ackFinalIndicator(serviceStatus.getFinalIndicator()) + .responseCode(serviceStatus.getResponseCode()) + .responseMessage(serviceStatus.getResponseMessage()).svcRequestId(svcRequestId) + .serviceResponseInformation(new GenericResourceApiInstanceReference() + .instanceId(serviceInstanceId).objectPath(getObjectPath(serviceInstanceId))) + .vnfResponseInformation(new GenericResourceApiInstanceReference().instanceId(vnfId) + .objectPath(getObjectPath(serviceInstanceId, vnfId))); + } + LOGGER.error("vnfId: {} already exists", vnfId); + return new Output().ackFinalIndicator(YES).responseCode(HttpStatus.BAD_REQUEST.toString()) + .responseMessage("vnfId: " + vnfId + " already exists").svcRequestId(svcRequestId); + } + } + LOGGER.error( + "Unable to find existing GenericResourceApiServiceModelInfrastructure in cache using service instance id: {}", + serviceInstanceId); + + } + LOGGER.error( + "Unable to add GenericResourceApiServiceOperationInformation in cache due to invalid input: {}... ", + input); + return new Output().ackFinalIndicator(YES).responseCode(HttpStatus.BAD_REQUEST.toString()) + .responseMessage("Unable to add vnf").svcRequestId(svcRequestId); + } + + @Override public void clearAll() { - clearCahce(SERVICE_TOPOLOGY_OPERATION_CACHE); + clearCache(SERVICE_TOPOLOGY_OPERATION_CACHE); + } + + private String getObjectPath(final String serviceInstanceId, final String vnfId) { + return getObjectPath(serviceInstanceId) + SERVICE_DATA_VNFS_VNF + vnfId + VNF_DATA_VNF_TOPOLOGY; + } + + private String getObjectPath(final String serviceInstanceId) { + return RESTCONF_CONFIG_END_POINT + serviceInstanceId; + } + + + private boolean ifVnfNotExists(final String vnfId, + final List<GenericResourceApiServicedataServicedataVnfsVnf> vnfsList) { + final Optional<GenericResourceApiServicedataServicedataVnfsVnf> optional = + vnfsList.stream().filter(vnf -> vnf.getVnfId() != null && vnf.getVnfId().equals(vnfId)).findFirst(); + return !optional.isPresent(); + } + + private List<GenericResourceApiServicedataServicedataVnfsVnf> getVnfs( + final GenericResourceApiServicedataServiceData serviceData) { + GenericResourceApiServicedataServicedataVnfs vnfs = serviceData.getVnfs(); + if (vnfs == null) { + vnfs = new GenericResourceApiServicedataServicedataVnfs(); + serviceData.setVnfs(vnfs); + } + + List<GenericResourceApiServicedataServicedataVnfsVnf> vnfsList = vnfs.getVnf(); + if (vnfsList == null) { + vnfsList = new ArrayList<>(); + vnfs.setVnf(vnfsList); + } + return vnfsList; + } + + private GenericResourceApiServicedataServicedataVnfsVnf getGenericResourceApiServicedataVnf( + final String serviceInstanceId, final String vnfId, final GenericResourceApiVnfOperationInformation input) { + return new GenericResourceApiServicedataServicedataVnfsVnf().vnfId(vnfId).vnfData(getVnfData(input)); + } + + private GenericResourceApiServicedataServicedataVnfsVnfVnfData getVnfData( + final GenericResourceApiVnfOperationInformation input) { + + final GenericResourceApiServicedataServicedataVnfsVnfVnfData vnfData = + new GenericResourceApiServicedataServicedataVnfsVnfVnfData(); + + vnfData.vnfLevelOperStatus( + getServiceLevelOperStatus(PENDINGCREATE, input.getRequestInformation(), input.getSdncRequestHeader())); + vnfData.serviceInformation(input.getServiceInformation()); + vnfData.sdncRequestHeader(input.getSdncRequestHeader()); + vnfData.vnfInformation(input.getVnfInformation()); + vnfData.requestInformation(input.getRequestInformation()); + vnfData.vnfRequestInput(input.getVnfRequestInput()); + + vnfData.vnfTopology(getVnfTopology(input.getVnfInformation(), input.getVnfRequestInput())); + + return vnfData; + } + + private GenericResourceApiVnftopologyVnfTopology getVnfTopology( + final GenericResourceApiVnfinformationVnfInformation vnfInformation, + final GenericResourceApiVnfrequestinputVnfRequestInput vnfRequestInput) { + + final GenericResourceApiVnftopologyVnfTopology apiVnftopologyVnfTopology = + new GenericResourceApiVnftopologyVnfTopology(); + + if (vnfInformation != null) { + apiVnftopologyVnfTopology.onapModelInformation(vnfInformation.getOnapModelInformation()); + apiVnftopologyVnfTopology.vnfTopologyIdentifierStructure(getTopologyIdentifierStructure(vnfInformation)); + } + if (vnfRequestInput != null) { + apiVnftopologyVnfTopology.tenant(vnfRequestInput.getTenant()); + apiVnftopologyVnfTopology.aicClli(vnfRequestInput.getAicClli()); + apiVnftopologyVnfTopology.aicCloudRegion(vnfRequestInput.getAicCloudRegion()); + } + return apiVnftopologyVnfTopology; + } + + private GenericResourceApiVnftopologyidentifierstructureVnfTopologyIdentifierStructure getTopologyIdentifierStructure( + @Valid final GenericResourceApiVnfinformationVnfInformation vnfInformation) { + return new GenericResourceApiVnftopologyidentifierstructureVnfTopologyIdentifierStructure() + .vnfId(vnfInformation.getVnfId()).vnfName(vnfInformation.getVnfName()) + .vnfType(vnfInformation.getVnfType()); } private GenericResourceApiServicemodelinfrastructureService getServiceItem( - final GenericResourceApiServiceOperationInformation input) { + final GenericResourceApiServiceOperationInformation input, final String serviceInstanceId) { final GenericResourceApiServicedataServiceData apiServicedataServiceData = new GenericResourceApiServicedataServiceData(); @@ -140,7 +289,7 @@ public class ServiceOperationsCacheServiceProviderimpl extends AbstractCacheServ HttpStatus.OK.toString()); return new GenericResourceApiServicemodelinfrastructureService().serviceData(apiServicedataServiceData) - .serviceStatus(serviceStatus); + .serviceStatus(serviceStatus).serviceInstanceId(serviceInstanceId); } private String getAction(final GenericResourceApiRequestinformationRequestInformation input) { @@ -156,17 +305,21 @@ public class ServiceOperationsCacheServiceProviderimpl extends AbstractCacheServ return new GenericResourceApiServicestatusServiceStatus().finalIndicator(YES) .rpcAction(GenericResourceApiRpcActionEnumeration.fromValue(rpcAction)) .rpcName(SERVICE_TOPOLOGY_OPERATION).responseTimestamp(LocalDateTime.now().toString()) - .responseCode(responseCode).requestStatus(GenericResourceApiRequestStatusEnumeration.SYNCCOMPLETE) - .responseMessage("").action(action); + .responseCode(responseCode).requestStatus(SYNCCOMPLETE).responseMessage("").action(action); } private GenericResourceApiOperStatusData getServiceLevelOperStatus( final GenericResourceApiServiceOperationInformation input) { - return new GenericResourceApiOperStatusData().orderStatus(GenericResourceApiOrderStatusEnumeration.CREATED) - .lastAction(GenericResourceApiLastActionEnumeration - .fromValue(getRequestAction(input.getRequestInformation()))) - .lastRpcAction(GenericResourceApiLastRpcActionEnumeration - .fromValue(getSvcAction(input.getSdncRequestHeader()))); + return getServiceLevelOperStatus(CREATED, input.getRequestInformation(), input.getSdncRequestHeader()); + } + + private GenericResourceApiOperStatusData getServiceLevelOperStatus( + final GenericResourceApiOrderStatusEnumeration statusEnumeration, + final GenericResourceApiRequestinformationRequestInformation requestInformation, + final GenericResourceApiSdncrequestheaderSdncRequestHeader sdncRequestHeader) { + return new GenericResourceApiOperStatusData().orderStatus(statusEnumeration) + .lastAction(GenericResourceApiLastActionEnumeration.fromValue(getRequestAction(requestInformation))) + .lastRpcAction(GenericResourceApiLastRpcActionEnumeration.fromValue(getSvcAction(sdncRequestHeader))); } private String getRequestAction(final GenericResourceApiRequestinformationRequestInformation input) { diff --git a/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/utils/Constants.java b/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/utils/Constants.java index 2d774edd..21d0d7a2 100644 --- a/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/utils/Constants.java +++ b/plans/so/integration-etsi-testing/so-simulators/sdnc-simulator/src/main/java/org/onap/so/sdncsimulator/utils/Constants.java @@ -39,5 +39,9 @@ public class Constants { public static final String RESTCONF_CONFIG_END_POINT = "restconf/config/GENERIC-RESOURCE-API:services/service/"; + public static final String VNF_DATA_VNF_TOPOLOGY = "/vnf-data/vnf-topology/"; + + public static final String SERVICE_DATA_VNFS_VNF = "/service-data/vnfs/vnf/"; + private Constants() {} } |