diff options
50 files changed, 3119 insertions, 271 deletions
diff --git a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/EtsiSubscriptionNotificationControllerTest.java b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/EtsiSubscriptionNotificationControllerTest.java index 8012f7e6cf..322251e753 100644 --- a/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/EtsiSubscriptionNotificationControllerTest.java +++ b/adapters/mso-vnfm-adapter/mso-vnfm-etsi-adapter/src/test/java/org/onap/so/adapters/vnfmadapter/rest/EtsiSubscriptionNotificationControllerTest.java @@ -24,6 +24,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.onap.so.adapters.vnfmadapter.Constants.ETSI_SUBSCRIPTION_NOTIFICATION_CONTROLLER_BASE_URL; import static org.onap.so.client.RestTemplateConfig.CONFIGURABLE_REST_TEMPLATE; +import static org.springframework.test.annotation.DirtiesContext.ClassMode.BEFORE_CLASS; import static org.springframework.test.web.client.match.MockRestRequestMatchers.*; import static org.springframework.test.web.client.response.MockRestResponseCreators.withStatus; import static org.springframework.test.web.client.response.MockRestResponseCreators.withSuccess; @@ -57,6 +58,7 @@ import org.springframework.boot.web.server.LocalServerPort; import org.springframework.cache.Cache; import org.springframework.cache.CacheManager; import org.springframework.http.*; +import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.client.MockRestServiceServer; @@ -74,6 +76,7 @@ import com.google.gson.GsonBuilder; @RunWith(SpringRunner.class) @SpringBootTest(classes = VnfmAdapterApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @ActiveProfiles("test") +@DirtiesContext(classMode = BEFORE_CLASS) public class EtsiSubscriptionNotificationControllerTest { @LocalServerPort diff --git a/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/RequestDBUtil.groovy b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/RequestDBUtil.groovy new file mode 100644 index 0000000000..ce474fa713 --- /dev/null +++ b/bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/RequestDBUtil.groovy @@ -0,0 +1,119 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + # Copyright (c) 2019, CMCC Technologies Co., Ltd. + # + # Licensed under the Apache License, Version 2.0 (the "License") + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.so.bpmn.common.scripts + +import org.camunda.bpm.engine.delegate.DelegateExecution +import org.onap.so.bpmn.core.UrnPropertiesReader +import org.onap.so.db.request.beans.OperationStatus +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import org.springframework.web.util.UriUtils + +class RequestDBUtil { + private static final Logger logger = LoggerFactory.getLogger( RequestDBUtil.class); + private ExceptionUtil exceptionUtil = new ExceptionUtil() + + /** + * update operation status in requestDB + * @param execution + * @param operationStatus + */ + void prepareUpdateOperationStatus(DelegateExecution execution, final OperationStatus operationStatus){ + logger.debug("start prepareUpdateOperationStatus") + try{ + def dbAdapterEndpoint = UrnPropertiesReader.getVariable("mso.adapters.openecomp.db.endpoint", execution) + execution.setVariable("dbAdapterEndpoint", dbAdapterEndpoint) + logger.debug("DB Adapter Endpoint is: " + dbAdapterEndpoint) + + String serviceId = operationStatus.getServiceId() + serviceId = UriUtils.encode(serviceId,"UTF-8") + String operationId = operationStatus.getOperationId() + String userId = operationStatus.getUserId() + String operationType = operationStatus.getOperation() + String result = operationStatus.getResult() + String progress = operationStatus.getProgress() + String operationContent = operationStatus.getOperationContent() + String reason = operationStatus.getReason() + + String payload = + """<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" + xmlns:ns="http://org.onap.so/requestsdb"> + <soapenv:Header/> + <soapenv:Body> + <ns:updateServiceOperationStatus xmlns:ns="http://org.onap.so/requestsdb"> + <serviceId>${MsoUtils.xmlEscape(serviceId)}</serviceId> + <operationId>${MsoUtils.xmlEscape(operationId)}</operationId> + <operationType>${MsoUtils.xmlEscape(operationType)}</operationType> + <userId>${MsoUtils.xmlEscape(userId)}</userId> + <result>${MsoUtils.xmlEscape(result)}</result> + <operationContent>${MsoUtils.xmlEscape(operationContent)}</operationContent> + <progress>${MsoUtils.xmlEscape(progress)}</progress> + <reason>${MsoUtils.xmlEscape(reason)}</reason> + </ns:updateServiceOperationStatus> + </soapenv:Body> + </soapenv:Envelope> + """ + execution.setVariable("updateOperationStatus", payload) + + }catch(any){ + String exceptionMessage = "Prepare update ServiceOperationStatus failed. cause - " + any.getMessage() + logger.debug(exceptionMessage) + exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage) + } + logger.trace("finished update OperationStatus") + } + + + /** + * get operation status from requestDB by serviceId and operationId + * @param execution + * @param serviceId + * @param operationId + */ + void getOperationStatus(DelegateExecution execution, String serviceId, String operationId) { + logger.trace("start getOperationStatus") + try { + def dbAdapterEndpoint = UrnPropertiesReader.getVariable("mso.adapters.openecomp.db.endpoint", execution) + execution.setVariable("dbAdapterEndpoint", dbAdapterEndpoint) + logger.trace("DB Adapter Endpoint is: " + dbAdapterEndpoint) + + serviceId = UriUtils.encode(serviceId,"UTF-8") + operationId = UriUtils.encode(operationId,"UTF-8") + String payload = + """<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" + xmlns:ns="http://org.onap.so/requestsdb"> + <soapenv:Header/> + <soapenv:Body> + <ns:getServiceOperationStatus xmlns:ns="http://org.onap.so/requestsdb"> + <serviceId>${MsoUtils.xmlEscape(serviceId)}</serviceId> + <operationId>${MsoUtils.xmlEscape(operationId)}</operationId> + </ns:getServiceOperationStatus> + </soapenv:Body> + </soapenv:Envelope> + """ + execution.setVariable("getOperationStatus", payload) + + } catch(any){ + String exceptionMessage = "Get ServiceOperationStatus failed. cause - " + any.getMessage() + logger.error(exceptionMessage) + exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage) + } + } +} diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtils.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtils.java index ec7b613727..e004e10cf0 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtils.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtils.java @@ -24,6 +24,7 @@ package org.onap.so.bpmn.servicedecomposition.tasks; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Optional; @@ -398,68 +399,37 @@ public class BBInputSetupUtils { } public Configuration getAAIConfiguration(String configurationId) { - return this.injectionHelper.getAaiClient() - .get(Configuration.class, - AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId).depth(Depth.ONE)) - .orElseGet(() -> { - logger.debug("No Configuration matched by id"); - return null; - }); + return this.getConcreteAAIResource(Configuration.class, AAIObjectType.CONFIGURATION, configurationId); } public GenericVnf getAAIGenericVnf(String vnfId) { - - return this.injectionHelper.getAaiClient() - .get(GenericVnf.class, - AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId).depth(Depth.ONE)) - .orElseGet(() -> { - logger.debug("No Generic Vnf matched by id"); - return null; - }); + return getConcreteAAIResource(GenericVnf.class, AAIObjectType.GENERIC_VNF, vnfId); } public VpnBinding getAAIVpnBinding(String vpnBindingId) { - - return this.injectionHelper.getAaiClient() - .get(VpnBinding.class, - AAIUriFactory.createResourceUri(AAIObjectType.VPN_BINDING, vpnBindingId).depth(Depth.ONE)) - .orElseGet(() -> { - logger.debug("No VpnBinding matched by id"); - return null; - }); + return getConcreteAAIResource(VpnBinding.class, AAIObjectType.VPN_BINDING, vpnBindingId); } public VolumeGroup getAAIVolumeGroup(String cloudOwnerId, String cloudRegionId, String volumeGroupId) { - return this.injectionHelper.getAaiClient() - .get(VolumeGroup.class, AAIUriFactory - .createResourceUri(AAIObjectType.VOLUME_GROUP, cloudOwnerId, cloudRegionId, volumeGroupId) - .depth(Depth.ONE)) - .orElseGet(() -> { - logger.debug("No Generic Vnf matched by id"); - return null; - }); + return getConcreteAAIResource(VolumeGroup.class, AAIObjectType.VOLUME_GROUP, cloudOwnerId, cloudRegionId, + volumeGroupId); } public VfModule getAAIVfModule(String vnfId, String vfModuleId) { - return this.injectionHelper.getAaiClient() - .get(VfModule.class, - AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId).depth(Depth.ONE)) - .orElseGet(() -> { - logger.debug("No Generic Vnf matched by id"); - return null; - }); + return getConcreteAAIResource(VfModule.class, AAIObjectType.VF_MODULE, vnfId, vfModuleId); } public L3Network getAAIL3Network(String networkId) { + return getConcreteAAIResource(L3Network.class, AAIObjectType.L3_NETWORK, networkId); + } - return this.injectionHelper.getAaiClient() - .get(L3Network.class, - AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId).depth(Depth.ONE)) - .orElseGet(() -> { - logger.debug("No Generic Vnf matched by id"); + private <T> T getConcreteAAIResource(Class<T> clazz, AAIObjectType objectType, Object... ids) { + return injectionHelper.getAaiClient() + .get(clazz, AAIUriFactory.createResourceUri(objectType, ids).depth(Depth.ONE)).orElseGet(() -> { + logger.debug("No resource of type: {} matched by ids: {}", objectType.typeName(), + Arrays.toString(ids)); return null; }); - } public Optional<ServiceInstance> getRelatedServiceInstanceFromInstanceGroup(String instanceGroupId) diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/appc/tasks/AppcRunTasks.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/appc/tasks/AppcRunTasks.java index 79ccd9216f..00d0fdc01d 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/appc/tasks/AppcRunTasks.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/appc/tasks/AppcRunTasks.java @@ -6,12 +6,14 @@ * ================================================================================ * Modifications Copyright (c) 2019 Samsung * ================================================================================ + * Modifications Copyright (c) 2020 Nokia + * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -29,7 +31,6 @@ import java.util.Optional; import org.onap.so.logger.LoggingAnchor; import org.json.JSONArray; import org.json.JSONObject; -import org.onap.aai.domain.yang.Vserver; import org.onap.appc.client.lcm.model.Action; import org.onap.so.bpmn.common.BuildingBlockExecution; import org.onap.so.bpmn.core.json.JsonUtils; @@ -143,7 +144,7 @@ public class AppcRunTasks { ControllerSelectionReference controllerSelectionReference = catalogDbClient .getControllerSelectionReferenceByVnfTypeAndActionCategory(vnfType, action.toString()); - String controllerType = null; + String controllerType; if (controllerSelectionReference != null) { controllerType = controllerSelectionReference.getControllerName(); } else { @@ -191,13 +192,13 @@ public class AppcRunTasks { logger.error("Error Message: {}", appcMessage); logger.error("ERROR CODE: {}", appcCode); logger.trace("End of runAppCommand "); - if (appcCode != null && !appcCode.equals("0")) { + if (appcCode != null && !"0".equals(appcCode)) { exceptionUtil.buildAndThrowWorkflowException(execution, Integer.parseInt(appcCode), appcMessage); } } protected void mapRollbackVariables(BuildingBlockExecution execution, Action action, String appcCode) { - if (appcCode != null && appcCode.equals("0") && action != null) { + if ("0".equals(appcCode) && action != null) { if (action.equals(Action.Lock)) { execution.setVariable(ROLLBACK_VNF_LOCK, true); } else if (action.equals(Action.Unlock)) { @@ -216,7 +217,7 @@ public class AppcRunTasks { private HashMap<String, String> buildPayloadInfo(String vnfName, String aicIdentity, String vnfHostIpAddress, String vmIdList, String vserverIdList, String identityUrl, String vfModuleId) { - HashMap<String, String> payloadInfo = new HashMap<String, String>(); + HashMap<String, String> payloadInfo = new HashMap<>(); payloadInfo.put("vnfName", vnfName); payloadInfo.put("aicIdentity", aicIdentity); payloadInfo.put("vnfHostIpAddress", vnfHostIpAddress); @@ -242,44 +243,39 @@ public class AppcRunTasks { return payload; } - protected void getVserversForAppc(BuildingBlockExecution execution, GenericVnf vnf) throws Exception { + protected void getVserversForAppc(BuildingBlockExecution execution, GenericVnf vnf) throws RuntimeException { AAIResultWrapper aaiRW = aaiVnfResources.queryVnfWrapperById(vnf); - if (aaiRW != null && aaiRW.getRelationships() != null && aaiRW.getRelationships().isPresent()) { - Relationships relationships = aaiRW.getRelationships().get(); - if (relationships != null) { - List<AAIResourceUri> vserverUris = relationships.getRelatedAAIUris(AAIObjectType.VSERVER); - JSONArray vserverIds = new JSONArray(); - JSONArray vserverSelfLinks = new JSONArray(); - if (vserverUris != null) { - for (AAIResourceUri j : vserverUris) { - if (j != null) { - if (j.getURIKeys() != null) { - String vserverId = j.getURIKeys().get("vserver-id"); - vserverIds.put(vserverId); - } - Optional<Vserver> oVserver = aaiVnfResources.getVserver(j); - if (oVserver.isPresent()) { - Vserver vserver = oVserver.get(); - if (vserver != null) { - String vserverSelfLink = vserver.getVserverSelflink(); - vserverSelfLinks.put(vserverSelfLink); - } - } - } + if (aaiRW == null || aaiRW.getRelationships() == null || !aaiRW.getRelationships().isPresent()) { + return; + } + Relationships relationships = aaiRW.getRelationships().get(); + List<AAIResourceUri> vserverUris = relationships.getRelatedAAIUris(AAIObjectType.VSERVER); + JSONArray vserverIds = new JSONArray(); + JSONArray vserverSelfLinks = new JSONArray(); + if (vserverUris != null) { + for (AAIResourceUri j : vserverUris) { + if (j != null) { + if (j.getURIKeys() != null) { + String vserverId = j.getURIKeys().get("vserver-id"); + vserverIds.put(vserverId); } + aaiVnfResources.getVserver(j).ifPresent((vserver) -> { + String vserverSelfLink = vserver.getVserverSelflink(); + vserverSelfLinks.put(vserverSelfLink); + }); } - - JSONObject vmidsArray = new JSONObject(); - JSONObject vserveridsArray = new JSONObject(); - vmidsArray.put("vmIds", vserverSelfLinks.toString()); - vserveridsArray.put("vserverIds", vserverIds.toString()); - logger.debug("vmidsArray is: {}", vmidsArray.toString()); - logger.debug("vserveridsArray is: {}", vserveridsArray.toString()); - - execution.setVariable("vmIdList", vmidsArray.toString()); - execution.setVariable("vserverIdList", vserveridsArray.toString()); } } + + JSONObject vmidsArray = new JSONObject(); + JSONObject vserveridsArray = new JSONObject(); + vmidsArray.put("vmIds", vserverSelfLinks.toString()); + vserveridsArray.put("vserverIds", vserverIds.toString()); + logger.debug("vmidsArray is: {}", vmidsArray.toString()); + logger.debug("vserveridsArray is: {}", vserveridsArray.toString()); + + execution.setVariable("vmIdList", vmidsArray.toString()); + execution.setVariable("vserverIdList", vserveridsArray.toString()); } } diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/OrchestrationStatusValidator.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/OrchestrationStatusValidator.java index 64f0072991..1cde9fb8f6 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/OrchestrationStatusValidator.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/OrchestrationStatusValidator.java @@ -6,6 +6,8 @@ * ================================================================================ * Modifications Copyright (c) 2019 Samsung * ================================================================================ + * Modifications Copyright (c) 2020 Nokia + * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -29,11 +31,9 @@ import org.onap.so.client.exception.BBObjectNotFoundException; import org.onap.so.client.exception.ExceptionBuilder; import org.onap.so.client.exception.OrchestrationStatusValidationException; import org.onap.so.db.catalog.beans.BuildingBlockDetail; -import org.onap.so.db.catalog.beans.OrchestrationAction; import org.onap.so.db.catalog.beans.OrchestrationStatus; import org.onap.so.db.catalog.beans.OrchestrationStatusStateTransitionDirective; import org.onap.so.db.catalog.beans.OrchestrationStatusValidationDirective; -import org.onap.so.db.catalog.beans.ResourceType; import org.onap.so.db.catalog.client.CatalogDbClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,8 +52,6 @@ public class OrchestrationStatusValidator { "Orchestration Status Validation failed. ResourceType=(%s), TargetAction=(%s), OrchestrationStatus=(%s)"; private static final String ORCHESTRATION_STATUS_VALIDATION_RESULT = "orchestrationStatusValidationResult"; private static final String ALACARTE = "aLaCarte"; - private static final String MULTI_STAGE_DESIGN_OFF = "false"; - private static final String MULTI_STAGE_DESIGN_ON = "true"; @Autowired private ExtractPojosForBB extractPojosForBB; @@ -86,7 +84,7 @@ public class OrchestrationStatusValidator { String.format(BUILDING_BLOCK_DETAIL_NOT_FOUND, buildingBlockFlowName)); } - OrchestrationStatus orchestrationStatus = null; + OrchestrationStatus orchestrationStatus; switch (buildingBlockDetail.getResourceType()) { case SERVICE: diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java index 9ee0104a5f..f8a4d910f4 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowAction.java @@ -47,6 +47,7 @@ import org.onap.aai.domain.yang.Vnfc; import org.onap.aai.domain.yang.VolumeGroup; import org.onap.aai.domain.yang.VpnBinding; import org.onap.so.bpmn.common.BBConstants; +import org.onap.so.bpmn.infrastructure.workflow.tasks.utils.WorkflowResourceIdsUtils; import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration; import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule; import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock; @@ -185,7 +186,7 @@ public class WorkflowAction { List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>(); WorkflowResourceIds workflowResourceIds = populateResourceIdsFromApiHandler(execution); List<Pair<WorkflowType, String>> aaiResourceIds = new ArrayList<>(); - List<Resource> resourceCounter = new ArrayList<>(); + List<Resource> resourceList = new ArrayList<>(); execution.setVariable("sentSyncResponse", false); execution.setVariable("homing", false); execution.setVariable("calledHoming", false); @@ -304,7 +305,7 @@ public class WorkflowAction { } } if (containsService) { - traverseUserParamsService(execution, resourceCounter, sIRequest, requestAction); + traverseUserParamsService(execution, resourceList, sIRequest, requestAction); } } else { buildAndThrowException(execution, @@ -327,11 +328,10 @@ public class WorkflowAction { } } if (containsService) { - foundRelated = - traverseUserParamsService(execution, resourceCounter, sIRequest, requestAction); + foundRelated = traverseUserParamsService(execution, resourceList, sIRequest, requestAction); } if (!foundRelated) { - traverseCatalogDbService(execution, sIRequest, resourceCounter, aaiResourceIds); + traverseCatalogDbService(execution, sIRequest, resourceList, aaiResourceIds); } } else if (resourceType == WorkflowType.SERVICE && ("activateInstance".equalsIgnoreCase(requestAction) @@ -342,20 +342,20 @@ public class WorkflowAction { // SERVICE-MACRO-DELETE // Will never get user params with service, macro will have // to query the SI in AAI to find related instances. - traverseAAIService(execution, resourceCounter, resourceId, aaiResourceIds); + traverseAAIService(execution, resourceList, resourceId, aaiResourceIds); } else if (resourceType == WorkflowType.SERVICE && "deactivateInstance".equalsIgnoreCase(requestAction)) { - resourceCounter.add(new Resource(WorkflowType.SERVICE, "", false)); + resourceList.add(new Resource(WorkflowType.SERVICE, "", false)); } else if (resourceType == WorkflowType.VNF && ("replaceInstance".equalsIgnoreCase(requestAction) || ("recreateInstance".equalsIgnoreCase(requestAction)))) { - traverseAAIVnf(execution, resourceCounter, workflowResourceIds.getServiceInstanceId(), + traverseAAIVnf(execution, resourceList, workflowResourceIds.getServiceInstanceId(), workflowResourceIds.getVnfId(), aaiResourceIds); } else { buildAndThrowException(execution, "Current Macro Request is not supported"); } String foundObjects = ""; for (WorkflowType type : WorkflowType.values()) { - foundObjects = foundObjects + type + " - " + resourceCounter.stream() + foundObjects = foundObjects + type + " - " + resourceList.stream() .filter(x -> type.equals(x.getResourceType())).collect(Collectors.toList()).size() + " "; } @@ -370,9 +370,9 @@ public class WorkflowAction { || "replaceInstanceRetainAssignments".equalsIgnoreCase(requestAction))) { vnfReplace = true; } - flowsToExecute = buildExecuteBuildingBlockList(orchFlows, resourceCounter, requestId, apiVersion, + flowsToExecute = buildExecuteBuildingBlockList(orchFlows, resourceList, requestId, apiVersion, resourceId, requestAction, vnfType, workflowResourceIds, requestDetails, vnfReplace); - if (!resourceCounter.stream().filter(x -> WorkflowType.NETWORKCOLLECTION == x.getResourceType()) + if (!resourceList.stream().filter(x -> WorkflowType.NETWORKCOLLECTION == x.getResourceType()) .collect(Collectors.toList()).isEmpty()) { logger.info("Sorting for Vlan Tagging"); flowsToExecute = sortExecutionPathByObjectForVlanTagging(flowsToExecute, requestAction); @@ -380,16 +380,16 @@ public class WorkflowAction { // By default, enable homing at VNF level for CREATEINSTANCE and ASSIGNINSTANCE if (resourceType == WorkflowType.SERVICE && (requestAction.equals(CREATEINSTANCE) || requestAction.equals(ASSIGNINSTANCE)) - && !resourceCounter.stream().filter(x -> WorkflowType.VNF.equals(x.getResourceType())) + && !resourceList.stream().filter(x -> WorkflowType.VNF.equals(x.getResourceType())) .collect(Collectors.toList()).isEmpty()) { execution.setVariable("homing", true); execution.setVariable("calledHoming", false); } if (resourceType == WorkflowType.SERVICE && (requestAction.equalsIgnoreCase(ASSIGNINSTANCE) || requestAction.equalsIgnoreCase(CREATEINSTANCE))) { - generateResourceIds(flowsToExecute, resourceCounter, serviceInstanceId); + generateResourceIds(flowsToExecute, resourceList, serviceInstanceId); } else { - updateResourceIdsFromAAITraversal(flowsToExecute, resourceCounter, aaiResourceIds, + updateResourceIdsFromAAITraversal(flowsToExecute, resourceList, aaiResourceIds, serviceInstanceId); } } @@ -471,9 +471,7 @@ public class WorkflowAction { List<AAIResultWrapper> vnfcResultWrappers = relationships.getByType(type); for (AAIResultWrapper vnfcResultWrapper : vnfcResultWrappers) { Optional<T> vnfcOp = vnfcResultWrapper.asBean(resultClass); - if (vnfcOp.isPresent()) { - vnfcs.add(vnfcOp.get()); - } + vnfcOp.ifPresent(vnfcs::add); } } return vnfcs; @@ -493,9 +491,7 @@ public class WorkflowAction { this.getResultWrappersFromRelationships(relationships, type); for (AAIResultWrapper configurationResultWrapper : configurationResultWrappers) { Optional<T> configurationOp = configurationResultWrapper.asBean(resultClass); - if (configurationOp.isPresent()) { - configurations.add(configurationOp.get()); - } + configurationOp.ifPresent(configurations::add); } } return configurations; @@ -574,8 +570,6 @@ public class WorkflowAction { protected List<OrchestrationFlow> getVfModuleReplaceBuildingBlocks(ConfigBuildingBlocksDataObject dataObj) throws Exception { - List<ExecuteBuildingBlock> flowsToExecuteConfigs = new ArrayList<>(); - String vnfId = dataObj.getWorkflowResourceIds().getVnfId(); String vfModuleId = dataObj.getWorkflowResourceIds().getVfModuleId(); @@ -639,19 +633,15 @@ public class WorkflowAction { if (!relationshipsOp.isPresent()) { logger.debug("No relationships were found for Configuration in AAI"); return null; - } else { - Relationships relationships = relationshipsOp.get(); - List<AAIResultWrapper> vnfcResultWrappers = relationships.getByType(AAIObjectType.VNFC); - if (vnfcResultWrappers.size() > 1 || vnfcResultWrappers.isEmpty()) { - logger.debug("Too many vnfcs or no vnfc found that are related to configuration"); - } - Optional<Vnfc> vnfcOp = vnfcResultWrappers.get(0).asBean(Vnfc.class); - if (vnfcOp.isPresent()) { - return vnfcOp.get().getVnfcName(); - } else { - return null; - } } + Relationships relationships = relationshipsOp.get(); + List<AAIResultWrapper> vnfcResultWrappers = relationships.getByType(AAIObjectType.VNFC); + if (vnfcResultWrappers.size() > 1 || vnfcResultWrappers.isEmpty()) { + logger.debug("Too many vnfcs or no vnfc found that are related to configuration"); + } + Optional<Vnfc> vnfcOp = vnfcResultWrappers.get(0).asBean(Vnfc.class); + return vnfcOp.map(Vnfc::getVnfcName).orElse(null); + } protected List<Resource> sortVfModulesByBaseFirst(List<Resource> vfModuleResources) { @@ -679,18 +669,15 @@ public class WorkflowAction { } private void updateResourceIdsFromAAITraversal(List<ExecuteBuildingBlock> flowsToExecute, - List<Resource> resourceCounter, List<Pair<WorkflowType, String>> aaiResourceIds, String serviceInstanceId) { + List<Resource> resourceList, List<Pair<WorkflowType, String>> aaiResourceIds, String serviceInstanceId) { for (Pair<WorkflowType, String> pair : aaiResourceIds) { logger.debug(pair.getValue0() + ", " + pair.getValue1()); } Arrays.stream(WorkflowType.values()).filter(type -> !type.equals(WorkflowType.SERVICE)).forEach(type -> { - List<Resource> resources = - resourceCounter.stream().filter(x -> type.equals(x.getResourceType())).collect(Collectors.toList()); - for (int i = 0; i < resources.size(); i++) { - updateWorkflowResourceIds(flowsToExecute, type, resources.get(i).getResourceId(), - retrieveAAIResourceId(aaiResourceIds, type), null, serviceInstanceId); - } + resourceList.stream().filter(resource -> type.equals(resource.getResourceType())) + .forEach(resource -> updateWorkflowResourceIds(flowsToExecute, type, resource.getResourceId(), + retrieveAAIResourceId(aaiResourceIds, type), null, serviceInstanceId)); }); } @@ -706,21 +693,16 @@ public class WorkflowAction { return id; } - private void generateResourceIds(List<ExecuteBuildingBlock> flowsToExecute, List<Resource> resourceCounter, + private void generateResourceIds(List<ExecuteBuildingBlock> flowsToExecute, List<Resource> resourceList, String serviceInstanceId) { Arrays.stream(WorkflowType.values()).filter(type -> !type.equals(WorkflowType.SERVICE)).forEach(type -> { - List<Resource> resources = - resourceCounter.stream().filter(x -> type.equals(x.getResourceType())).collect(Collectors.toList()); - for (int i = 0; i < resources.size(); i++) { - Resource resource = resourceCounter.stream().filter(x -> type.equals(x.getResourceType())) - .collect(Collectors.toList()).get(i); - updateWorkflowResourceIds(flowsToExecute, type, resource.getResourceId(), null, - resource.getVirtualLinkKey(), serviceInstanceId); - } + resourceList.stream().filter(resource -> type.equals(resource.getResourceType())) + .forEach(resource -> updateWorkflowResourceIds(flowsToExecute, type, resource.getResourceId(), null, + resource.getVirtualLinkKey(), serviceInstanceId)); }); } - protected void updateWorkflowResourceIds(List<ExecuteBuildingBlock> flowsToExecute, WorkflowType resource, + protected void updateWorkflowResourceIds(List<ExecuteBuildingBlock> flowsToExecute, WorkflowType resourceType, String key, String id, String virtualLinkKey, String serviceInstanceId) { String resourceId = id; if (resourceId == null) { @@ -728,24 +710,10 @@ public class WorkflowAction { } for (ExecuteBuildingBlock ebb : flowsToExecute) { if (key != null && key.equalsIgnoreCase(ebb.getBuildingBlock().getKey()) - && ebb.getBuildingBlock().getBpmnFlowName().contains(resource.toString())) { + && ebb.getBuildingBlock().getBpmnFlowName().contains(resourceType.toString())) { WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds(); workflowResourceIds.setServiceInstanceId(serviceInstanceId); - if (resource == WorkflowType.VNF) { - workflowResourceIds.setVnfId(resourceId); - } else if (resource == WorkflowType.PNF) { - workflowResourceIds.setPnfId(resourceId); - } else if (resource == WorkflowType.VFMODULE) { - workflowResourceIds.setVfModuleId(resourceId); - } else if (resource == WorkflowType.VOLUMEGROUP) { - workflowResourceIds.setVolumeGroupId(resourceId); - } else if (resource == WorkflowType.NETWORK) { - workflowResourceIds.setNetworkId(resourceId); - } else if (resource == WorkflowType.NETWORKCOLLECTION) { - workflowResourceIds.setNetworkCollectionId(resourceId); - } else if (resource == WorkflowType.CONFIGURATION) { - workflowResourceIds.setConfigurationId(resourceId); - } + WorkflowResourceIdsUtils.setResourceIdByWorkflowType(workflowResourceIds, resourceType, resourceId); ebb.setWorkflowResourceIds(workflowResourceIds); } if (virtualLinkKey != null && ebb.getBuildingBlock().isVirtualLink() @@ -779,29 +747,28 @@ public class WorkflowAction { } protected void traverseCatalogDbService(DelegateExecution execution, ServiceInstancesRequest sIRequest, - List<Resource> resourceCounter, List<Pair<WorkflowType, String>> aaiResourceIds) + List<Resource> resourceList, List<Pair<WorkflowType, String>> aaiResourceIds) throws JsonProcessingException, VrfBondingServiceException { String modelUUID = sIRequest.getRequestDetails().getModelInfo().getModelVersionId(); org.onap.so.db.catalog.beans.Service service = catalogDbClient.getServiceByID(modelUUID); if (service == null) { buildAndThrowException(execution, "Could not find the service model in catalog db."); } else { - resourceCounter.add(new Resource(WorkflowType.SERVICE, service.getModelUUID(), false)); + resourceList.add(new Resource(WorkflowType.SERVICE, service.getModelUUID(), false)); RelatedInstance relatedVpnBinding = bbInputSetupUtils.getRelatedInstanceByType(sIRequest.getRequestDetails(), ModelType.vpnBinding); RelatedInstance relatedLocalNetwork = bbInputSetupUtils.getRelatedInstanceByType(sIRequest.getRequestDetails(), ModelType.network); if (relatedVpnBinding != null && relatedLocalNetwork != null) { - traverseVrfConfiguration(aaiResourceIds, resourceCounter, service, relatedVpnBinding, - relatedLocalNetwork); + traverseVrfConfiguration(aaiResourceIds, resourceList, service, relatedVpnBinding, relatedLocalNetwork); } else { - traverseNetworkCollection(execution, resourceCounter, service); + traverseNetworkCollection(execution, resourceList, service); } } } protected void traverseVrfConfiguration(List<Pair<WorkflowType, String>> aaiResourceIds, - List<Resource> resourceCounter, org.onap.so.db.catalog.beans.Service service, + List<Resource> resourceList, org.onap.so.db.catalog.beans.Service service, RelatedInstance relatedVpnBinding, RelatedInstance relatedLocalNetwork) throws VrfBondingServiceException, JsonProcessingException { org.onap.aai.domain.yang.L3Network aaiLocalNetwork = @@ -816,9 +783,9 @@ public class WorkflowAction { vrfValidation.aaiRouteTargetValidation(aaiLocalNetwork); String existingAAIVrfConfiguration = getExistingAAIVrfConfiguration(relatedVpnBinding, aaiLocalNetwork); if (existingAAIVrfConfiguration != null) { - aaiResourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, existingAAIVrfConfiguration)); + aaiResourceIds.add(new Pair<>(WorkflowType.CONFIGURATION, existingAAIVrfConfiguration)); } - resourceCounter.add(new Resource(WorkflowType.CONFIGURATION, + resourceList.add(new Resource(WorkflowType.CONFIGURATION, service.getConfigurationCustomizations().get(0).getModelCustomizationUUID(), false)); } @@ -869,7 +836,7 @@ public class WorkflowAction { return false; } - protected void traverseNetworkCollection(DelegateExecution execution, List<Resource> resourceCounter, + protected void traverseNetworkCollection(DelegateExecution execution, List<Resource> resourceList, org.onap.so.db.catalog.beans.Service service) { if (service.getVnfCustomizations() == null || service.getVnfCustomizations().isEmpty()) { List<CollectionResourceCustomization> customizations = service.getCollectionResourceCustomizations(); @@ -879,7 +846,7 @@ public class WorkflowAction { CollectionResourceCustomization collectionResourceCustomization = findCatalogNetworkCollection(execution, service); if (collectionResourceCustomization != null) { - resourceCounter.add(new Resource(WorkflowType.NETWORKCOLLECTION, + resourceList.add(new Resource(WorkflowType.NETWORKCOLLECTION, collectionResourceCustomization.getModelCustomizationUUID(), false)); logger.debug("Found a network collection"); if (collectionResourceCustomization.getCollectionResource() != null) { @@ -921,7 +888,7 @@ public class WorkflowAction { Resource resource = new Resource(WorkflowType.VIRTUAL_LINK, collectionNetworkResourceCust.getModelCustomizationUUID(), false); resource.setVirtualLinkKey(Integer.toString(i)); - resourceCounter.add(resource); + resourceList.add(resource); } } } else { @@ -938,13 +905,13 @@ public class WorkflowAction { logger.debug("No Network Collection Customization found"); } } - if (resourceCounter.stream().filter(x -> WorkflowType.NETWORKCOLLECTION == x.getResourceType()) + if (resourceList.stream().filter(x -> WorkflowType.NETWORKCOLLECTION == x.getResourceType()) .collect(Collectors.toList()).isEmpty()) { if (service.getNetworkCustomizations() == null) { logger.debug("No networks were found on this service model"); } else { for (int i = 0; i < service.getNetworkCustomizations().size(); i++) { - resourceCounter.add(new Resource(WorkflowType.NETWORK, + resourceList.add(new Resource(WorkflowType.NETWORK, service.getNetworkCustomizations().get(i).getModelCustomizationUUID(), false)); } } @@ -955,32 +922,30 @@ public class WorkflowAction { } } - protected void traverseAAIService(DelegateExecution execution, List<Resource> resourceCounter, String resourceId, + protected void traverseAAIService(DelegateExecution execution, List<Resource> resourceList, String resourceId, List<Pair<WorkflowType, String>> aaiResourceIds) { try { ServiceInstance serviceInstanceAAI = bbInputSetupUtils.getAAIServiceInstanceById(resourceId); org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO = bbInputSetup.getExistingServiceInstance(serviceInstanceAAI); - resourceCounter.add(new Resource(WorkflowType.SERVICE, serviceInstanceMSO.getServiceInstanceId(), false)); + resourceList.add(new Resource(WorkflowType.SERVICE, serviceInstanceMSO.getServiceInstanceId(), false)); if (serviceInstanceMSO.getVnfs() != null) { for (org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf : serviceInstanceMSO.getVnfs()) { - aaiResourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VNF, vnf.getVnfId())); - resourceCounter.add(new Resource(WorkflowType.VNF, vnf.getVnfId(), false)); + aaiResourceIds.add(new Pair<>(WorkflowType.VNF, vnf.getVnfId())); + resourceList.add(new Resource(WorkflowType.VNF, vnf.getVnfId(), false)); if (vnf.getVfModules() != null) { for (VfModule vfModule : vnf.getVfModules()) { - aaiResourceIds.add( - new Pair<WorkflowType, String>(WorkflowType.VFMODULE, vfModule.getVfModuleId())); + aaiResourceIds.add(new Pair<>(WorkflowType.VFMODULE, vfModule.getVfModuleId())); Resource resource = new Resource(WorkflowType.VFMODULE, vfModule.getVfModuleId(), false); resource.setBaseVfModule(vfModule.getModelInfoVfModule().getIsBaseBoolean()); - resourceCounter.add(resource); + resourceList.add(resource); } } if (vnf.getVolumeGroups() != null) { for (org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup : vnf .getVolumeGroups()) { - aaiResourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VOLUMEGROUP, - volumeGroup.getVolumeGroupId())); - resourceCounter + aaiResourceIds.add(new Pair<>(WorkflowType.VOLUMEGROUP, volumeGroup.getVolumeGroupId())); + resourceList .add(new Resource(WorkflowType.VOLUMEGROUP, volumeGroup.getVolumeGroupId(), false)); } } @@ -989,15 +954,15 @@ public class WorkflowAction { if (serviceInstanceMSO.getNetworks() != null) { for (org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network : serviceInstanceMSO .getNetworks()) { - aaiResourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORK, network.getNetworkId())); - resourceCounter.add(new Resource(WorkflowType.NETWORK, network.getNetworkId(), false)); + aaiResourceIds.add(new Pair<>(WorkflowType.NETWORK, network.getNetworkId())); + resourceList.add(new Resource(WorkflowType.NETWORK, network.getNetworkId(), false)); } } if (serviceInstanceMSO.getCollection() != null) { logger.debug("found networkcollection"); - aaiResourceIds.add(new Pair<WorkflowType, String>(WorkflowType.NETWORKCOLLECTION, - serviceInstanceMSO.getCollection().getId())); - resourceCounter.add(new Resource(WorkflowType.NETWORKCOLLECTION, + aaiResourceIds + .add(new Pair<>(WorkflowType.NETWORKCOLLECTION, serviceInstanceMSO.getCollection().getId())); + resourceList.add(new Resource(WorkflowType.NETWORKCOLLECTION, serviceInstanceMSO.getCollection().getId(), false)); } if (serviceInstanceMSO.getConfigurations() != null) { @@ -1008,9 +973,8 @@ public class WorkflowAction { for (Relationship relationship : aaiConfig.get().getRelationshipList().getRelationship()) { if (relationship.getRelatedTo().contains("vnfc") || relationship.getRelatedTo().contains("vpn-binding")) { - aaiResourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, - config.getConfigurationId())); - resourceCounter.add( + aaiResourceIds.add(new Pair<>(WorkflowType.CONFIGURATION, config.getConfigurationId())); + resourceList.add( new Resource(WorkflowType.CONFIGURATION, config.getConfigurationId(), false)); break; } @@ -1025,34 +989,32 @@ public class WorkflowAction { } } - private void traverseAAIVnf(DelegateExecution execution, List<Resource> resourceCounter, String serviceId, + private void traverseAAIVnf(DelegateExecution execution, List<Resource> resourceList, String serviceId, String vnfId, List<Pair<WorkflowType, String>> aaiResourceIds) { try { ServiceInstance serviceInstanceAAI = bbInputSetupUtils.getAAIServiceInstanceById(serviceId); org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance serviceInstanceMSO = bbInputSetup.getExistingServiceInstance(serviceInstanceAAI); - resourceCounter.add(new Resource(WorkflowType.SERVICE, serviceInstanceMSO.getServiceInstanceId(), false)); + resourceList.add(new Resource(WorkflowType.SERVICE, serviceInstanceMSO.getServiceInstanceId(), false)); if (serviceInstanceMSO.getVnfs() != null) { for (org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf vnf : serviceInstanceMSO.getVnfs()) { if (vnf.getVnfId().equals(vnfId)) { - aaiResourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VNF, vnf.getVnfId())); - resourceCounter.add(new Resource(WorkflowType.VNF, vnf.getVnfId(), false)); + aaiResourceIds.add(new Pair<>(WorkflowType.VNF, vnf.getVnfId())); + resourceList.add(new Resource(WorkflowType.VNF, vnf.getVnfId(), false)); if (vnf.getVfModules() != null) { for (VfModule vfModule : vnf.getVfModules()) { - aaiResourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VFMODULE, - vfModule.getVfModuleId())); - resourceCounter - .add(new Resource(WorkflowType.VFMODULE, vfModule.getVfModuleId(), false)); + aaiResourceIds.add(new Pair<>(WorkflowType.VFMODULE, vfModule.getVfModuleId())); + resourceList.add(new Resource(WorkflowType.VFMODULE, vfModule.getVfModuleId(), false)); findConfigurationsInsideVfModule(execution, vnf.getVnfId(), vfModule.getVfModuleId(), - resourceCounter, aaiResourceIds); + resourceList, aaiResourceIds); } } if (vnf.getVolumeGroups() != null) { for (org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup volumeGroup : vnf .getVolumeGroups()) { - aaiResourceIds.add(new Pair<WorkflowType, String>(WorkflowType.VOLUMEGROUP, - volumeGroup.getVolumeGroupId())); - resourceCounter.add( + aaiResourceIds + .add(new Pair<>(WorkflowType.VOLUMEGROUP, volumeGroup.getVolumeGroupId())); + resourceList.add( new Resource(WorkflowType.VOLUMEGROUP, volumeGroup.getVolumeGroupId(), false)); } } @@ -1068,7 +1030,7 @@ public class WorkflowAction { } private void findConfigurationsInsideVfModule(DelegateExecution execution, String vnfId, String vfModuleId, - List<Resource> resourceCounter, List<Pair<WorkflowType, String>> aaiResourceIds) { + List<Resource> resourceList, List<Pair<WorkflowType, String>> aaiResourceIds) { try { org.onap.aai.domain.yang.VfModule aaiVfModule = bbInputSetupUtils.getAAIVfModule(vnfId, vfModuleId); AAIResultWrapper vfModuleWrapper = new AAIResultWrapper( @@ -1081,9 +1043,8 @@ public class WorkflowAction { Optional<Configuration> config = workflowActionUtils.extractRelationshipsConfiguration(relationshipsOp.get()); if (config.isPresent()) { - aaiResourceIds.add(new Pair<WorkflowType, String>(WorkflowType.CONFIGURATION, - config.get().getConfigurationId())); - resourceCounter.add( + aaiResourceIds.add(new Pair<>(WorkflowType.CONFIGURATION, config.get().getConfigurationId())); + resourceList.add( new Resource(WorkflowType.CONFIGURATION, config.get().getConfigurationId(), false)); } } @@ -1094,7 +1055,7 @@ public class WorkflowAction { } } - protected boolean traverseUserParamsService(DelegateExecution execution, List<Resource> resourceCounter, + protected boolean traverseUserParamsService(DelegateExecution execution, List<Resource> resourceList, ServiceInstancesRequest sIRequest, String requestAction) throws IOException { boolean foundRelated = false; boolean foundVfModuleOrVG = false; @@ -1107,11 +1068,11 @@ public class WorkflowAction { ObjectMapper obj = new ObjectMapper(); String input = obj.writeValueAsString(params.get(USERPARAMSERVICE)); Service validate = obj.readValue(input, Service.class); - resourceCounter.add( + resourceList.add( new Resource(WorkflowType.SERVICE, validate.getModelInfo().getModelVersionId(), false)); if (validate.getResources().getVnfs() != null) { for (Vnfs vnf : validate.getResources().getVnfs()) { - resourceCounter.add(new Resource(WorkflowType.VNF, + resourceList.add(new Resource(WorkflowType.VNF, vnf.getModelInfo().getModelCustomizationId(), false)); foundRelated = true; if (vnf.getModelInfo() != null && vnf.getModelInfo().getModelCustomizationUuid() != null) { @@ -1127,7 +1088,7 @@ public class WorkflowAction { if (vfModuleCustomization.getVfModule() != null && vfModuleCustomization.getVfModule().getVolumeHeatTemplate() != null && vfModuleCustomization.getVolumeHeatEnv() != null) { - resourceCounter.add(new Resource(WorkflowType.VOLUMEGROUP, + resourceList.add(new Resource(WorkflowType.VOLUMEGROUP, vfModuleCustomization.getModelCustomizationUUID(), false)); foundRelated = true; foundVfModuleOrVG = true; @@ -1146,7 +1107,7 @@ public class WorkflowAction { } else { resource.setBaseVfModule(false); } - resourceCounter.add(resource); + resourceList.add(resource); if (vfModule.getModelInfo() != null && vfModule.getModelInfo().getModelCustomizationUuid() != null) { vfModuleCustomizationUUID = @@ -1165,7 +1126,7 @@ public class WorkflowAction { vnf.getModelInfo().getModelCustomizationId()); resource.setVfModuleCustomizationId( vfModule.getModelInfo().getModelCustomizationId()); - resourceCounter.add(configResource); + resourceList.add(configResource); } } } @@ -1180,22 +1141,21 @@ public class WorkflowAction { } if (validate.getResources().getPnfs() != null) { for (Pnfs pnf : validate.getResources().getPnfs()) { - resourceCounter.add(new Resource(WorkflowType.PNF, + resourceList.add(new Resource(WorkflowType.PNF, pnf.getModelInfo().getModelCustomizationId(), false)); foundRelated = true; } } if (validate.getResources().getNetworks() != null) { for (Networks network : validate.getResources().getNetworks()) { - resourceCounter.add(new Resource(WorkflowType.NETWORK, + resourceList.add(new Resource(WorkflowType.NETWORK, network.getModelInfo().getModelCustomizationId(), false)); foundRelated = true; } if (requestAction.equals(CREATEINSTANCE)) { String networkColCustId = queryCatalogDBforNetworkCollection(execution, sIRequest); if (networkColCustId != null) { - resourceCounter - .add(new Resource(WorkflowType.NETWORKCOLLECTION, networkColCustId, false)); + resourceList.add(new Resource(WorkflowType.NETWORKCOLLECTION, networkColCustId, false)); foundRelated = true; } } @@ -1242,21 +1202,14 @@ public class WorkflowAction { } protected WorkflowResourceIds populateResourceIdsFromApiHandler(DelegateExecution execution) { - WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds(); - workflowResourceIds.setServiceInstanceId((String) execution.getVariable("serviceInstanceId")); - workflowResourceIds.setNetworkId((String) execution.getVariable("networkId")); - workflowResourceIds.setVfModuleId((String) execution.getVariable("vfModuleId")); - workflowResourceIds.setVnfId((String) execution.getVariable("vnfId")); - workflowResourceIds.setVolumeGroupId((String) execution.getVariable("volumeGroupId")); - workflowResourceIds.setInstanceGroupId((String) execution.getVariable("instanceGroupId")); - return workflowResourceIds; + return WorkflowResourceIdsUtils.getWorkflowResourceIdsFromExecution(execution); } protected Resource extractResourceIdAndTypeFromUri(String uri) { Pattern patt = Pattern.compile("[vV]\\d+.*?(?:(?:/(?<type>" + SUPPORTEDTYPES + ")(?:/(?<id>[^/]+))?)(?:/(?<action>[^/]+))?(?:/resume)?)?$"); Matcher m = patt.matcher(uri); - Boolean generated = false; + boolean generated = false; if (m.find()) { logger.debug("found match on {} : {} ", uri, m); @@ -1366,7 +1319,7 @@ public class WorkflowAction { } else if (ebb.getBuildingBlock().getBpmnFlowName().equals(CREATENETWORKBB) || ebb.getBuildingBlock().getBpmnFlowName().equals(ACTIVATENETWORKBB)) { continue; - } else if (!ebb.getBuildingBlock().getBpmnFlowName().equals("")) { + } else if (!"".equals(ebb.getBuildingBlock().getBpmnFlowName())) { sortedOrchFlows.add(ebb); } } @@ -1405,11 +1358,10 @@ public class WorkflowAction { String resourceId, String requestAction, String vnfType, WorkflowResourceIds workflowResourceIds, RequestDetails requestDetails, boolean isVirtualLink, boolean isConfiguration) { - List<Resource> serviceResources = resourceList.stream() - .filter(resource -> resource.getResourceType().equals(workflowType)).collect(Collectors.toList()); - serviceResources.forEach(resource -> flowsToExecute.add(buildExecuteBuildingBlock(orchFlow, requestId, resource, - apiVersion, resourceId, requestAction, false, vnfType, workflowResourceIds, requestDetails, - isVirtualLink, resource.getVirtualLinkKey(), null, isConfiguration))); + resourceList.stream().filter(resource -> resource.getResourceType().equals(workflowType)) + .forEach(resource -> flowsToExecute.add(buildExecuteBuildingBlock(orchFlow, requestId, resource, + apiVersion, resourceId, requestAction, false, vnfType, workflowResourceIds, requestDetails, + isVirtualLink, resource.getVirtualLinkKey(), null, isConfiguration))); } protected List<ExecuteBuildingBlock> buildExecuteBuildingBlockList(List<OrchestrationFlow> orchFlows, @@ -1539,13 +1491,8 @@ public class WorkflowAction { requestAction, resourceName.toString(), aLaCarte, CLOUD_OWNER); } if (northBoundRequest == null) { - if (aLaCarte) { - buildAndThrowException(execution, - "The request: ALaCarte " + resourceName + " " + requestAction + " is not supported by GR_API."); - } else { - buildAndThrowException(execution, - "The request: Macro " + resourceName + " " + requestAction + " is not supported by GR_API."); - } + buildAndThrowException(execution, String.format("The request: %s %s %s is not supported by GR_API.", + (aLaCarte ? "AlaCarte" : "Macro"), resourceName, requestAction)); } else { if (northBoundRequest.getIsToplevelflow() != null) { execution.setVariable(BBConstants.G_ISTOPLEVELFLOW, northBoundRequest.getIsToplevelflow()); @@ -1557,9 +1504,7 @@ public class WorkflowAction { if (!flow.getFlowName().contains("BB") && !flow.getFlowName().contains("Activity")) { List<OrchestrationFlow> macroQueryFlows = catalogDbClient.getOrchestrationFlowByAction(flow.getFlowName()); - for (OrchestrationFlow macroFlow : macroQueryFlows) { - listToExecute.add(macroFlow); - } + listToExecute.addAll(macroQueryFlows); } else { listToExecute.add(flow); } @@ -1582,11 +1527,11 @@ public class WorkflowAction { public void handleRuntimeException(DelegateExecution execution) { StringBuilder wfeExpMsg = new StringBuilder("Runtime error "); - String runtimeErrorMessage = null; + String runtimeErrorMessage; try { String javaExpMsg = (String) execution.getVariable("BPMN_javaExpMsg"); if (javaExpMsg != null && !javaExpMsg.isEmpty()) { - wfeExpMsg = wfeExpMsg.append(": ").append(javaExpMsg); + wfeExpMsg.append(": ").append(javaExpMsg); } runtimeErrorMessage = wfeExpMsg.toString(); logger.error(runtimeErrorMessage); diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/utils/WorkflowResourceIdsUtils.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/utils/WorkflowResourceIdsUtils.java new file mode 100644 index 0000000000..d16eac147e --- /dev/null +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/utils/WorkflowResourceIdsUtils.java @@ -0,0 +1,77 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Nokia Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.bpmn.infrastructure.workflow.tasks.utils; + +import org.camunda.bpm.engine.delegate.DelegateExecution; +import org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowType; +import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds; + +public final class WorkflowResourceIdsUtils { + + private WorkflowResourceIdsUtils() { + throw new IllegalStateException("Utility class"); + } + + public static void setResourceIdByWorkflowType(WorkflowResourceIds workflowResourceIds, WorkflowType resourceType, + String resourceId) { + switch (resourceType) { + case SERVICE: + workflowResourceIds.setServiceInstanceId(resourceId); + break; + case VNF: + workflowResourceIds.setVnfId(resourceId); + break; + case PNF: + workflowResourceIds.setPnfId(resourceId); + break; + case VFMODULE: + workflowResourceIds.setVfModuleId(resourceId); + break; + case VOLUMEGROUP: + workflowResourceIds.setVolumeGroupId(resourceId); + break; + case NETWORK: + workflowResourceIds.setNetworkId(resourceId); + break; + case NETWORKCOLLECTION: + workflowResourceIds.setNetworkCollectionId(resourceId); + break; + case CONFIGURATION: + workflowResourceIds.setConfigurationId(resourceId); + break; + case INSTANCE_GROUP: + workflowResourceIds.setInstanceGroupId(resourceId); + break; + } + } + + public static WorkflowResourceIds getWorkflowResourceIdsFromExecution(DelegateExecution execution) { + WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds(); + workflowResourceIds.setServiceInstanceId((String) execution.getVariable("serviceInstanceId")); + workflowResourceIds.setNetworkId((String) execution.getVariable("networkId")); + workflowResourceIds.setVfModuleId((String) execution.getVariable("vfModuleId")); + workflowResourceIds.setVnfId((String) execution.getVariable("vnfId")); + workflowResourceIds.setVolumeGroupId((String) execution.getVariable("volumeGroupId")); + workflowResourceIds.setInstanceGroupId((String) execution.getVariable("instanceGroupId")); + return workflowResourceIds; + } + +} diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/network/mapper/NetworkAdapterObjectMapper.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/network/mapper/NetworkAdapterObjectMapper.java index d78fa69680..3f81e432e1 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/network/mapper/NetworkAdapterObjectMapper.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/network/mapper/NetworkAdapterObjectMapper.java @@ -4,12 +4,14 @@ * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright (c) 2020 Nokia + * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -52,6 +54,7 @@ import org.onap.so.entity.MsoRequest; import org.onap.so.openstack.beans.NetworkRollback; import org.onap.so.openstack.beans.RouteTarget; import org.onap.so.openstack.beans.Subnet; +import org.onap.so.bpmn.servicedecomposition.bbobjects.SegmentationAssignment; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @@ -65,8 +68,7 @@ public class NetworkAdapterObjectMapper { public CreateNetworkRequest createNetworkRequestMapper(RequestContext requestContext, CloudRegion cloudRegion, OrchestrationContext orchestrationContext, ServiceInstance serviceInstance, L3Network l3Network, - Map<String, String> userInput, String cloudRegionPo, Customer customer) - throws UnsupportedEncodingException { + Map<String, String> userInput, String cloudRegionPo, Customer customer) { CreateNetworkRequest createNetworkRequest = new CreateNetworkRequest(); // set cloudSiteId as determined for cloud region PO instead of cloudRegion.getLcpCloudRegionId() @@ -119,7 +121,7 @@ public class NetworkAdapterObjectMapper { } public DeleteNetworkRequest deleteNetworkRequestMapper(RequestContext requestContext, CloudRegion cloudRegion, - ServiceInstance serviceInstance, L3Network l3Network) throws UnsupportedEncodingException { + ServiceInstance serviceInstance, L3Network l3Network) { DeleteNetworkRequest deleteNetworkRequest = new DeleteNetworkRequest(); deleteNetworkRequest.setCloudSiteId(cloudRegion.getLcpCloudRegionId()); @@ -150,14 +152,14 @@ public class NetworkAdapterObjectMapper { /** * Access method to build Rollback Network Request - * + * * @return * @throws UnsupportedEncodingException */ public RollbackNetworkRequest createNetworkRollbackRequestMapper(RequestContext requestContext, CloudRegion cloudRegion, OrchestrationContext orchestrationContext, ServiceInstance serviceInstance, L3Network l3Network, Map<String, String> userInput, String cloudRegionPo, - CreateNetworkResponse createNetworkResponse) throws UnsupportedEncodingException { + CreateNetworkResponse createNetworkResponse) { RollbackNetworkRequest rollbackNetworkRequest = new RollbackNetworkRequest(); rollbackNetworkRequest = setCommonRollbackRequestFields(rollbackNetworkRequest, requestContext); @@ -171,7 +173,7 @@ public class NetworkAdapterObjectMapper { public UpdateNetworkRequest createNetworkUpdateRequestMapper(RequestContext requestContext, CloudRegion cloudRegion, OrchestrationContext orchestrationContext, ServiceInstance serviceInstance, L3Network l3Network, - Map<String, String> userInput, Customer customer) throws UnsupportedEncodingException { + Map<String, String> userInput, Customer customer) { UpdateNetworkRequest updateNetworkRequest = new UpdateNetworkRequest(); updateNetworkRequest.setCloudSiteId(cloudRegion.getLcpCloudRegionId()); @@ -198,11 +200,10 @@ public class NetworkAdapterObjectMapper { } private RollbackNetworkRequest setCommonRollbackRequestFields(RollbackNetworkRequest request, - RequestContext requestContext) throws UnsupportedEncodingException { + RequestContext requestContext) { request.setSkipAAI(true); String messageId = requestContext.getMsoRequestId(); request.setMessageId(messageId); - // request.setNotificationUrl(createCallbackUrl("NetworkAResponse", messageId)); return request; } @@ -240,7 +241,7 @@ public class NetworkAdapterObjectMapper { return UUID.randomUUID().toString(); } - protected String createCallbackUrl(String messageType, String correlator) throws UnsupportedEncodingException { + protected String createCallbackUrl(String messageType, String correlator) { String endpoint = this.getEndpoint(); while (endpoint.endsWith("/")) { @@ -256,14 +257,14 @@ public class NetworkAdapterObjectMapper { /** * Use BB L3Network object to build subnets list of type org.onap.so.openstack.beans.Subnet - * + * * @param L3Network * @return List<org.onap.so.openstack.beans.Subnet> */ protected List<Subnet> buildOpenstackSubnetList(L3Network l3Network) { List<org.onap.so.bpmn.servicedecomposition.bbobjects.Subnet> subnets = l3Network.getSubnets(); - List<org.onap.so.openstack.beans.Subnet> subnetList = new ArrayList<org.onap.so.openstack.beans.Subnet>(); + List<org.onap.so.openstack.beans.Subnet> subnetList = new ArrayList<>(); // create mapper from onap Subnet to openstack bean Subnet if (modelMapper.getTypeMap(org.onap.so.bpmn.servicedecomposition.bbobjects.Subnet.class, org.onap.so.openstack.beans.Subnet.class) == null) { @@ -292,7 +293,7 @@ public class NetworkAdapterObjectMapper { .setCidr(subnet.getNetworkStartAddress().concat(FORWARD_SLASH).concat(subnet.getCidrMask())); List<org.onap.so.bpmn.servicedecomposition.bbobjects.HostRoute> hostRouteList = subnet.getHostRoutes(); List<org.onap.so.openstack.beans.HostRoute> openstackHostRouteList = new ArrayList<>(); - org.onap.so.openstack.beans.HostRoute openstackHostRoute = null; + org.onap.so.openstack.beans.HostRoute openstackHostRoute; // TODO only 2 fields available on openstack object. Confirm it is sufficient or add as needed for (org.onap.so.bpmn.servicedecomposition.bbobjects.HostRoute hostRoute : hostRouteList) { openstackHostRoute = new org.onap.so.openstack.beans.HostRoute(); @@ -319,10 +320,9 @@ public class NetworkAdapterObjectMapper { private ProviderVlanNetwork buildProviderVlanNetwork(L3Network l3Network) { ProviderVlanNetwork providerVlanNetwork = new ProviderVlanNetwork(); providerVlanNetwork.setPhysicalNetworkName(l3Network.getPhysicalNetworkName()); - List<Integer> vlans = new ArrayList<Integer>(); - List<org.onap.so.bpmn.servicedecomposition.bbobjects.SegmentationAssignment> segmentationAssignments = - l3Network.getSegmentationAssignments(); - for (org.onap.so.bpmn.servicedecomposition.bbobjects.SegmentationAssignment assignment : segmentationAssignments) { + List<Integer> vlans = new ArrayList<>(); + List<SegmentationAssignment> segmentationAssignments = l3Network.getSegmentationAssignments(); + for (SegmentationAssignment assignment : segmentationAssignments) { vlans.add(Integer.valueOf(assignment.getSegmentationId())); } providerVlanNetwork.setVlans(vlans); @@ -401,7 +401,7 @@ public class NetworkAdapterObjectMapper { private Map<String, String> addSharedAndExternal(Map<String, String> userInput, L3Network l3Network) { if (userInput == null) - userInput = new HashMap<String, String>(); + userInput = new HashMap<>(); if (!userInput.containsKey("shared")) { userInput.put("shared", Optional.ofNullable(l3Network.isIsSharedNetwork()).orElse(false).toString()); } diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/namingservice/NamingRequestObject.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/namingservice/NamingRequestObject.java index 3d3058da0b..362f64d720 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/namingservice/NamingRequestObject.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/namingservice/NamingRequestObject.java @@ -4,6 +4,8 @@ * ================================================================================ * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright (c) 2020 Nokia + * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -24,7 +26,7 @@ import java.util.HashMap; public class NamingRequestObject { - private HashMap<String, String> namingRequestMap = new HashMap<String, String>(); + private HashMap<String, String> namingRequestMap = new HashMap<>(); public HashMap<String, String> getNamingRequestObjectMap() { return this.namingRequestMap; diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAIServiceInstanceResources.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAIServiceInstanceResources.java index fc1528526c..9b104f3250 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAIServiceInstanceResources.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/AAIServiceInstanceResources.java @@ -6,6 +6,8 @@ * ================================================================================ * Modifications Copyright (c) 2019 Samsung * ================================================================================ + * Modifications Copyright (c) 2020 Nokia + * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -37,14 +39,11 @@ import org.onap.so.client.aai.entities.uri.AAIResourceUri; import org.onap.so.client.aai.entities.uri.AAIUriFactory; import org.onap.so.client.aai.mapper.AAIObjectMapper; import org.onap.so.db.catalog.beans.OrchestrationStatus; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class AAIServiceInstanceResources { - private static final Logger logger = LoggerFactory.getLogger(AAIServiceInstanceResources.class); @Autowired private InjectionHelper injectionHelper; diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/NamingServiceResources.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/NamingServiceResources.java index 5513122560..dba1693e5d 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/NamingServiceResources.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/orchestration/NamingServiceResources.java @@ -6,6 +6,8 @@ * ================================================================================ * Modifications Copyright (c) 2019 Samsung * ================================================================================ + * Modifications Copyright (c) 2020 Nokia + * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -33,14 +35,11 @@ import org.onap.so.client.exception.BadResponseException; import org.onap.so.client.namingservice.NamingClient; import org.onap.so.client.namingservice.NamingRequestObject; import org.onap.so.client.namingservice.NamingRequestObjectBuilder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class NamingServiceResources { - private static final Logger logger = LoggerFactory.getLogger(NamingServiceResources.class); private static final String NAMING_TYPE = "instanceGroup"; @Autowired @@ -53,14 +52,14 @@ public class NamingServiceResources { throws BadResponseException, IOException { Element element = namingRequestObjectBuilder.elementMapper(instanceGroup.getId(), policyInstanceName, NAMING_TYPE, nfNamingCode, instanceGroup.getInstanceGroupName()); - List<Element> elements = new ArrayList<Element>(); + List<Element> elements = new ArrayList<>(); elements.add(element); return (namingClient.postNameGenRequest(namingRequestObjectBuilder.nameGenRequestMapper(elements))); } public String deleteInstanceGroupName(InstanceGroup instanceGroup) throws BadResponseException, IOException { Deleteelement deleteElement = namingRequestObjectBuilder.deleteElementMapper(instanceGroup.getId()); - List<Deleteelement> deleteElements = new ArrayList<Deleteelement>(); + List<Deleteelement> deleteElements = new ArrayList<>(); deleteElements.add(deleteElement); return (namingClient .deleteNameGenRequest(namingRequestObjectBuilder.nameGenDeleteRequestMapper(deleteElements))); @@ -70,8 +69,8 @@ public class NamingServiceResources { throws BadResponseException, IOException { HashMap<String, String> nsRequestObject = namingRequestObject.getNamingRequestObjectMap(); Element element = new Element(); - nsRequestObject.forEach((k, v) -> element.put(k, v)); - List<Element> elements = new ArrayList<Element>(); + nsRequestObject.forEach(element::put); + List<Element> elements = new ArrayList<>(); elements.add(element); return (namingClient.postNameGenRequest(namingRequestObjectBuilder.nameGenRequestMapper(elements))); } @@ -81,7 +80,7 @@ public class NamingServiceResources { HashMap<String, String> nsRequestObject = namingRequestObject.getNamingRequestObjectMap(); Deleteelement delElement = new Deleteelement(); nsRequestObject.forEach((k, v) -> delElement.setExternalKey(v)); - List<Deleteelement> delElements = new ArrayList<Deleteelement>(); + List<Deleteelement> delElements = new ArrayList<>(); delElements.add(delElement); return (namingClient.deleteNameGenRequest(namingRequestObjectBuilder.nameGenDeleteRequestMapper(delElements))); } diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/utils/WorkflowResourceIdsUtilsTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/utils/WorkflowResourceIdsUtilsTest.java new file mode 100644 index 0000000000..0d68cf362b --- /dev/null +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/utils/WorkflowResourceIdsUtilsTest.java @@ -0,0 +1,124 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Nokia Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.bpmn.infrastructure.workflow.tasks.utils; + +import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake; +import org.junit.Before; +import org.junit.Test; +import org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowType; +import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds; +import java.util.function.Supplier; +import static org.junit.Assert.assertEquals; + + +public class WorkflowResourceIdsUtilsTest { + + private static final String SERVICE_ID = "serviceId"; + private static final String NETWORK_ID = "networkId"; + private static final String VF_MODULE_ID = "vfModuleId"; + private static final String VNF_ID = "vnfId"; + private static final String VOLUME_GROUP_ID = "volumeGroupId"; + private static final String INSTANCE_GROUP_ID = "instanceGroupId"; + private static final String PNF_ID = "pnfId"; + private static final String NETWORK_COLLECTION_ID = "networkCollectionId"; + private static final String CONFIGURATION_ID = "configurationId"; + + private WorkflowResourceIds workflowResourceIds; + + @Before + public void setUp() { + workflowResourceIds = new WorkflowResourceIds(); + } + + @Test + public void shouldProperlySetFieldsFromExecution() { + DelegateExecutionFake execution = new DelegateExecutionFake(); + execution.setVariable("serviceInstanceId", SERVICE_ID); + execution.setVariable("networkId", NETWORK_ID); + execution.setVariable("vfModuleId", VF_MODULE_ID); + execution.setVariable("vnfId", VNF_ID); + execution.setVariable("volumeGroupId", VOLUME_GROUP_ID); + execution.setVariable("instanceGroupId", INSTANCE_GROUP_ID); + + workflowResourceIds = WorkflowResourceIdsUtils.getWorkflowResourceIdsFromExecution(execution); + + assertEquals(SERVICE_ID, workflowResourceIds.getServiceInstanceId()); + assertEquals(NETWORK_ID, workflowResourceIds.getNetworkId()); + assertEquals(VF_MODULE_ID, workflowResourceIds.getVfModuleId()); + assertEquals(VNF_ID, workflowResourceIds.getVnfId()); + assertEquals(VOLUME_GROUP_ID, workflowResourceIds.getVolumeGroupId()); + assertEquals(INSTANCE_GROUP_ID, workflowResourceIds.getInstanceGroupId()); + } + + @Test + public void shouldProperlySetServiceInstanceId() { + assertFieldSetProperly(WorkflowType.SERVICE, SERVICE_ID, workflowResourceIds::getServiceInstanceId); + } + + @Test + public void shouldProperlySetVnfId() { + assertFieldSetProperly(WorkflowType.VNF, VNF_ID, workflowResourceIds::getVnfId); + + } + + @Test + public void shouldProperlySetPnfId() { + assertFieldSetProperly(WorkflowType.PNF, PNF_ID, workflowResourceIds::getPnfId); + } + + @Test + public void shouldProperlySetVfModuleId() { + assertFieldSetProperly(WorkflowType.VFMODULE, VF_MODULE_ID, workflowResourceIds::getVfModuleId); + } + + @Test + public void shouldProperlySetVolumeGroupId() { + assertFieldSetProperly(WorkflowType.VOLUMEGROUP, VOLUME_GROUP_ID, workflowResourceIds::getVolumeGroupId); + } + + @Test + public void shouldProperlySetNetworkId() { + assertFieldSetProperly(WorkflowType.NETWORK, NETWORK_ID, workflowResourceIds::getNetworkId); + } + + @Test + public void shouldProperlySetNetworkCollectionId() { + assertFieldSetProperly(WorkflowType.NETWORKCOLLECTION, NETWORK_COLLECTION_ID, + workflowResourceIds::getNetworkCollectionId); + + } + + @Test + public void shouldProperlySetConfigurationId() { + assertFieldSetProperly(WorkflowType.CONFIGURATION, CONFIGURATION_ID, workflowResourceIds::getConfigurationId); + } + + @Test + public void shouldProperlySetInstanceGroupId() { + assertFieldSetProperly(WorkflowType.INSTANCE_GROUP, INSTANCE_GROUP_ID, workflowResourceIds::getInstanceGroupId); + } + + private void assertFieldSetProperly(WorkflowType workflowType, String expectedId, + Supplier<String> testedObjectField) { + WorkflowResourceIdsUtils.setResourceIdByWorkflowType(workflowResourceIds, workflowType, expectedId); + assertEquals(expectedId, testedObjectField.get()); + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/ActDeActNssi.java b/common/src/main/java/org/onap/so/beans/nsmf/ActDeActNssi.java new file mode 100644 index 0000000000..8d45048ee4 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/ActDeActNssi.java @@ -0,0 +1,51 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class ActDeActNssi { + + public final static String ACT_URL = "/api/rest/provMns/v1/NSS/%s" + "/activation"; + + public final static String DE_ACT_URL = "/api/rest/provMns/v1/NSS/%s" + "/deactivation"; + + private String nsiId; + + private String nssiId; + + public String getNsiId() { + return nsiId; + } + + public void setNsiId(String nsiId) { + this.nsiId = nsiId; + } + + public String getNssiId() { + return nssiId; + } + + public void setNssiId(String nssiId) { + this.nssiId = nssiId; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/AllocateAnNssi.java b/common/src/main/java/org/onap/so/beans/nsmf/AllocateAnNssi.java new file mode 100644 index 0000000000..484f5b42b1 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/AllocateAnNssi.java @@ -0,0 +1,109 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class AllocateAnNssi { + + public final static String URL = "/api/rest/provMns/v1/an/NSS" + "/SliceProfiles"; + + private String nsstId; + + private String flavorId; + + private String nssiId; + + private String nssiName; + + private AnSliceProfile sliceProfile; + + private String scriptName; + + private Object extension; + + private NsiInfo nsiInfo; + + public String getNsstId() { + return nsstId; + } + + public void setNsstId(String nsstId) { + this.nsstId = nsstId; + } + + public String getFlavorId() { + return flavorId; + } + + public void setFlavorId(String flavorId) { + this.flavorId = flavorId; + } + + public String getNssiId() { + return nssiId; + } + + public void setNssiId(String nssiId) { + this.nssiId = nssiId; + } + + public String getNssiName() { + return nssiName; + } + + public void setNssiName(String nssiName) { + this.nssiName = nssiName; + } + + public AnSliceProfile getSliceProfile() { + return sliceProfile; + } + + public void setSliceProfile(AnSliceProfile sliceProfile) { + this.sliceProfile = sliceProfile; + } + + public String getScriptName() { + return scriptName; + } + + public void setScriptName(String scriptName) { + this.scriptName = scriptName; + } + + public Object getExtension() { + return extension; + } + + public void setExtension(Object extension) { + this.extension = extension; + } + + public NsiInfo getNsiInfo() { + return nsiInfo; + } + + public void setNsiInfo(NsiInfo nsiInfo) { + this.nsiInfo = nsiInfo; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/AllocateCnNssi.java b/common/src/main/java/org/onap/so/beans/nsmf/AllocateCnNssi.java new file mode 100644 index 0000000000..d03673368c --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/AllocateCnNssi.java @@ -0,0 +1,110 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; +import java.io.Serializable; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class AllocateCnNssi implements Serializable { + + public final static String URL = "/api/rest/provMns/v1/NSS/SliceProfiles"; + + private String nsstId; + + private String flavorId; + + private String nssiId; + + private String nssiName; + + private CnSliceProfile sliceProfile; + + private String scriptName; + + private Object extension; + + private NsiInfo nsiInfo; + + public NsiInfo getNsiInfo() { + return nsiInfo; + } + + public void setNsiInfo(NsiInfo nsiInfo) { + this.nsiInfo = nsiInfo; + } + + public String getNsstId() { + return nsstId; + } + + public void setNsstId(String nsstId) { + this.nsstId = nsstId; + } + + public String getScriptName() { + return scriptName; + } + + public void setScriptName(String scriptName) { + this.scriptName = scriptName; + } + + public CnSliceProfile getSliceProfile() { + return sliceProfile; + } + + public void setSliceProfile(CnSliceProfile sliceProfile) { + this.sliceProfile = sliceProfile; + } + + public String getFlavorId() { + return flavorId; + } + + public void setFlavorId(String flavorId) { + this.flavorId = flavorId; + } + + public String getNssiId() { + return nssiId; + } + + public void setNssiId(String nssiId) { + this.nssiId = nssiId; + } + + public String getNssiName() { + return nssiName; + } + + public void setNssiName(String nssiName) { + this.nssiName = nssiName; + } + + public void setExtension(Object extension) { + this.extension = extension; + } + + public Object getExtension() { + return extension; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/AllocateTnNssi.java b/common/src/main/java/org/onap/so/beans/nsmf/AllocateTnNssi.java new file mode 100644 index 0000000000..b66fb133d2 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/AllocateTnNssi.java @@ -0,0 +1,109 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class AllocateTnNssi { + + public final static String URL = "/api/rest/provMns/v1/tn/NSS" + "/SliceProfiles"; + + private String nsstId; + + private String flavorId; + + private String nssiId; + + private String nssiName; + + private TnSliceProfile sliceProfile; + + private String scriptName; + + private Object extension; + + private NsiInfo nsiInfo; + + public String getNsstId() { + return nsstId; + } + + public void setNsstId(String nsstId) { + this.nsstId = nsstId; + } + + public String getFlavorId() { + return flavorId; + } + + public void setFlavorId(String flavorId) { + this.flavorId = flavorId; + } + + public String getNssiId() { + return nssiId; + } + + public void setNssiId(String nssiId) { + this.nssiId = nssiId; + } + + public String getNssiName() { + return nssiName; + } + + public void setNssiName(String nssiName) { + this.nssiName = nssiName; + } + + public TnSliceProfile getSliceProfile() { + return sliceProfile; + } + + public void setSliceProfile(TnSliceProfile sliceProfile) { + this.sliceProfile = sliceProfile; + } + + public String getScriptName() { + return scriptName; + } + + public void setScriptName(String scriptName) { + this.scriptName = scriptName; + } + + public Object getExtension() { + return extension; + } + + public void setExtension(Object extension) { + this.extension = extension; + } + + public NsiInfo getNsiInfo() { + return nsiInfo; + } + + public void setNsiInfo(NsiInfo nsiInfo) { + this.nsiInfo = nsiInfo; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/AnSliceProfile.java b/common/src/main/java/org/onap/so/beans/nsmf/AnSliceProfile.java new file mode 100644 index 0000000000..3d60949385 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/AnSliceProfile.java @@ -0,0 +1,61 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class AnSliceProfile { + + @JsonProperty("5QI") + private String qi; + + private List<String> coverageAreaTAList; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int latency; + + public String getQi() { + return qi; + } + + public void setQi(String qi) { + this.qi = qi; + } + + public List<String> getCoverageAreaTAList() { + return coverageAreaTAList; + } + + public void setCoverageAreaTAList(List<String> coverageAreaTAList) { + this.coverageAreaTAList = coverageAreaTAList; + } + + public int getLatency() { + return latency; + } + + public void setLatency(int latency) { + this.latency = latency; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/CnSliceProfile.java b/common/src/main/java/org/onap/so/beans/nsmf/CnSliceProfile.java new file mode 100644 index 0000000000..3bd155d512 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/CnSliceProfile.java @@ -0,0 +1,120 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; +import java.util.List; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class CnSliceProfile { + + private List<String> snssaiList; + + private String sliceProfileId; + + private List<String> plmnIdList; + + private PerfReq perfReq; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int maxNumberofUEs; + + private List<String> coverageAreaTAList; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int latency; + + private UeMobilityLevel ueMobilityLevel; + + private ResourceSharingLevel resourceSharingLevel; + + public String getSliceProfileId() { + return sliceProfileId; + } + + public void setSliceProfileId(String sliceProfileId) { + this.sliceProfileId = sliceProfileId; + } + + public List<String> getPlmnIdList() { + return plmnIdList; + } + + public void setPlmnIdList(List<String> plmnIdList) { + this.plmnIdList = plmnIdList; + } + + public PerfReq getPerfReq() { + return perfReq; + } + + public void setPerfReq(PerfReq perfReq) { + this.perfReq = perfReq; + } + + public int getMaxNumberofUEs() { + return maxNumberofUEs; + } + + public void setMaxNumberofUEs(int maxNumberofUEs) { + this.maxNumberofUEs = maxNumberofUEs; + } + + public List<String> getCoverageAreaTAList() { + return coverageAreaTAList; + } + + public void setCoverageAreaTAList(List<String> coverageAreaTAList) { + this.coverageAreaTAList = coverageAreaTAList; + } + + public int getLatency() { + return latency; + } + + public void setLatency(int latency) { + this.latency = latency; + } + + public UeMobilityLevel getUeMobilityLevel() { + return ueMobilityLevel; + } + + public void setUeMobilityLevel(UeMobilityLevel ueMobilityLevel) { + this.ueMobilityLevel = ueMobilityLevel; + } + + public ResourceSharingLevel getResourceSharingLevel() { + return resourceSharingLevel; + } + + public void setResourceSharingLevel(ResourceSharingLevel resourceSharingLevel) { + this.resourceSharingLevel = resourceSharingLevel; + } + + public List<String> getSnssaiList() { + return snssaiList; + } + + public void setSnssaiList(List<String> snssaiList) { + this.snssaiList = snssaiList; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/CreateCnNssi.java b/common/src/main/java/org/onap/so/beans/nsmf/CreateCnNssi.java new file mode 100644 index 0000000000..424966948e --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/CreateCnNssi.java @@ -0,0 +1,89 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class CreateCnNssi { + + public final static String URL = "/api/rest/provMns/v1/NSS/nssi"; + + private String nsstId; + + private String flavorId; + + private String nssiName; + + private String scriptName; + + private String extension; + + private NsiInfo nsiInfo; + + public String getNsstId() { + return nsstId; + } + + public void setNsstId(String nsstId) { + this.nsstId = nsstId; + } + + public String getFlavorId() { + return flavorId; + } + + public void setFlavorId(String flavorId) { + this.flavorId = flavorId; + } + + public String getNssiName() { + return nssiName; + } + + public void setNssiName(String nssiName) { + this.nssiName = nssiName; + } + + public String getScriptName() { + return scriptName; + } + + public void setScriptName(String scriptName) { + this.scriptName = scriptName; + } + + public String getExtension() { + return extension; + } + + public void setExtension(String extension) { + this.extension = extension; + } + + public NsiInfo getNsiInfo() { + return nsiInfo; + } + + public void setNsiInfo(NsiInfo nsiInfo) { + this.nsiInfo = nsiInfo; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/DeAllocateNssi.java b/common/src/main/java/org/onap/so/beans/nsmf/DeAllocateNssi.java new file mode 100644 index 0000000000..648fd4985f --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/DeAllocateNssi.java @@ -0,0 +1,91 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; +import java.util.List; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class DeAllocateNssi { + + public final static String URL = "/api/rest/provMns/v1/NSS" + "/SliceProfiles/%s"; + + private String nsiId; + + private String nssiId; + + private List<String> snssaiList; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int terminateNssiOption; + + private String scriptName; + + private String extension; + + public String getNsiId() { + return nsiId; + } + + public void setNsiId(String nsiId) { + this.nsiId = nsiId; + } + + public String getNssiId() { + return nssiId; + } + + public void setNssiId(String nssiId) { + this.nssiId = nssiId; + } + + public List<String> getSnssaiList() { + return snssaiList; + } + + public void setSnssaiList(List<String> snssaiList) { + this.snssaiList = snssaiList; + } + + public int getTerminateNssiOption() { + return terminateNssiOption; + } + + public void setTerminateNssiOption(int terminateNssiOption) { + this.terminateNssiOption = terminateNssiOption; + } + + public String getScriptName() { + return scriptName; + } + + public void setScriptName(String scriptName) { + this.scriptName = scriptName; + } + + public String getExtension() { + return extension; + } + + public void setExtension(String extension) { + this.extension = extension; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/EsrInfo.java b/common/src/main/java/org/onap/so/beans/nsmf/EsrInfo.java new file mode 100644 index 0000000000..c124bfa944 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/EsrInfo.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class EsrInfo { + + private String vendor; + + private NetworkType networkType; + + public String getVendor() { + return vendor; + } + + public void setVendor(String vendor) { + this.vendor = vendor; + } + + public NetworkType getNetworkType() { + return networkType; + } + + public void setNetworkType(NetworkType networkType) { + this.networkType = networkType; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/JobStatusRequest.java b/common/src/main/java/org/onap/so/beans/nsmf/JobStatusRequest.java new file mode 100644 index 0000000000..cc8503c250 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/JobStatusRequest.java @@ -0,0 +1,70 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class JobStatusRequest { + + public final static String URL = "/api/rest/provMns/v1/NSS/jobs/%s"; + + private String nsiId; + + private String nssiId; + + private String responseId; + + private EsrInfo esrInfo; + + public String getNsiId() { + return nsiId; + } + + public void setNsiId(String nsiId) { + this.nsiId = nsiId; + } + + public String getNssiId() { + return nssiId; + } + + public void setNssiId(String nssiId) { + this.nssiId = nssiId; + } + + + public String getResponseId() { + return responseId; + } + + public void setResponseId(String responseId) { + this.responseId = responseId; + } + + public EsrInfo getEsrInfo() { + return esrInfo; + } + + public void setEsrInfo(EsrInfo esrInfo) { + this.esrInfo = esrInfo; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/JobStatusResponse.java b/common/src/main/java/org/onap/so/beans/nsmf/JobStatusResponse.java new file mode 100644 index 0000000000..9259d51591 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/JobStatusResponse.java @@ -0,0 +1,37 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class JobStatusResponse { + + private ResponseDescriptor responseDescriptor; + + public ResponseDescriptor getResponseDescriptor() { + return responseDescriptor; + } + + public void setResponseDescriptor(ResponseDescriptor responseDescriptor) { + this.responseDescriptor = responseDescriptor; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/NetworkType.java b/common/src/main/java/org/onap/so/beans/nsmf/NetworkType.java new file mode 100644 index 0000000000..2e10fe5746 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/NetworkType.java @@ -0,0 +1,58 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public enum NetworkType { + + ACCESS("an"), + + CORE("cn"), + + TRANSPORT("tn"); + + private String networkType; + + NetworkType(String networkType) { + this.networkType = networkType; + } + + @JsonValue + public String getNetworkType() { + return networkType; + } + + @JsonCreator + public NetworkType forValue(String value) { + return valueOf(value); + } + + public static NetworkType fromString(String value) { + for (NetworkType nType : NetworkType.values()) { + if (nType.networkType.equalsIgnoreCase(value)) { + return nType; + } + } + return null; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/NewNsst.java b/common/src/main/java/org/onap/so/beans/nsmf/NewNsst.java new file mode 100644 index 0000000000..e13aa5000a --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/NewNsst.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2019 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class NewNsst { + + private String nsstId; + + private String flavorId; + + public String getNsstId() { + return nsstId; + } + + public void setNsstId(String nsstId) { + this.nsstId = nsstId; + } + + public String getFlavorId() { + return flavorId; + } + + public void setFlavorId(String flavorId) { + this.flavorId = flavorId; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/NsiInfo.java b/common/src/main/java/org/onap/so/beans/nsmf/NsiInfo.java new file mode 100644 index 0000000000..0ff554d10d --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/NsiInfo.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class NsiInfo { + + private String nsiName; + + private String nsiId; + + public String getNsiName() { + return nsiName; + } + + public void setNsiName(String nsiName) { + this.nsiName = nsiName; + } + + public void setNsiId(String nsiId) { + this.nsiId = nsiId; + } + + public String getNsiId() { + return nsiId; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/NssiActDeActRequest.java b/common/src/main/java/org/onap/so/beans/nsmf/NssiActDeActRequest.java new file mode 100644 index 0000000000..fbba8c77b1 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/NssiActDeActRequest.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class NssiActDeActRequest { + + private EsrInfo esrInfo; + + private ActDeActNssi actDeActNssi; + + public ActDeActNssi getActDeActNssi() { + return actDeActNssi; + } + + public void setActDeActNssi(ActDeActNssi actDeActNssi) { + this.actDeActNssi = actDeActNssi; + } + + public EsrInfo getEsrInfo() { + return esrInfo; + } + + public void setEsrInfo(EsrInfo esrInfo) { + this.esrInfo = esrInfo; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/NssiAllocateRequest.java b/common/src/main/java/org/onap/so/beans/nsmf/NssiAllocateRequest.java new file mode 100644 index 0000000000..f72a74a063 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/NssiAllocateRequest.java @@ -0,0 +1,67 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class NssiAllocateRequest { + + private EsrInfo esrInfo; + + private AllocateCnNssi allocateCnNssi; + + private AllocateTnNssi allocateTnNssi; + + private AllocateAnNssi allocateAnNssi; + + public EsrInfo getEsrInfo() { + return esrInfo; + } + + public void setEsrInfo(EsrInfo esrInfo) { + this.esrInfo = esrInfo; + } + + public AllocateCnNssi getAllocateCnNssi() { + return allocateCnNssi; + } + + public void setAllocateCnNssi(AllocateCnNssi allocateCnNssi) { + this.allocateCnNssi = allocateCnNssi; + } + + public AllocateTnNssi getAllocateTnNssi() { + return allocateTnNssi; + } + + public void setAllocateTnNssi(AllocateTnNssi allocateTnNssi) { + this.allocateTnNssi = allocateTnNssi; + } + + public AllocateAnNssi getAllocateAnNssi() { + return allocateAnNssi; + } + + public void setAllocateAnNssi(AllocateAnNssi allocateAnNssi) { + this.allocateAnNssi = allocateAnNssi; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/NssiCreateRequest.java b/common/src/main/java/org/onap/so/beans/nsmf/NssiCreateRequest.java new file mode 100644 index 0000000000..ca26e9f0cb --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/NssiCreateRequest.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class NssiCreateRequest { + + private EsrInfo esrInfo; + + private CreateCnNssi createCnNssi; + + public EsrInfo getEsrInfo() { + return esrInfo; + } + + public void setEsrInfo(EsrInfo esrInfo) { + this.esrInfo = esrInfo; + } + + public CreateCnNssi getCreateCnNssi() { + return createCnNssi; + } + + public void setCreateCnNssi(CreateCnNssi createCnNssi) { + this.createCnNssi = createCnNssi; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/NssiDeAllocateRequest.java b/common/src/main/java/org/onap/so/beans/nsmf/NssiDeAllocateRequest.java new file mode 100644 index 0000000000..bbfc30c37a --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/NssiDeAllocateRequest.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class NssiDeAllocateRequest { + + private DeAllocateNssi deAllocateNssi; + + private EsrInfo esrInfo; + + public DeAllocateNssi getDeAllocateNssi() { + return deAllocateNssi; + } + + public void setDeAllocateNssi(DeAllocateNssi deAllocateNssi) { + this.deAllocateNssi = deAllocateNssi; + } + + public EsrInfo getEsrInfo() { + return esrInfo; + } + + public void setEsrInfo(EsrInfo esrInfo) { + this.esrInfo = esrInfo; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/NssiResponse.java b/common/src/main/java/org/onap/so/beans/nsmf/NssiResponse.java new file mode 100644 index 0000000000..66368be6b8 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/NssiResponse.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class NssiResponse { + + private String nssiId; + + private String jobId; + + public String getNssiId() { + return nssiId; + } + + public void setNssiId(String nssiId) { + this.nssiId = nssiId; + } + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/NssiTerminateRequest.java b/common/src/main/java/org/onap/so/beans/nsmf/NssiTerminateRequest.java new file mode 100644 index 0000000000..df0a463584 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/NssiTerminateRequest.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class NssiTerminateRequest { + + private TerminateNssi terminateNssi; + + private EsrInfo esrInfo; + + public TerminateNssi getTerminateNssi() { + return terminateNssi; + } + + public void setTerminateNssi(TerminateNssi terminateNssi) { + this.terminateNssi = terminateNssi; + } + + public EsrInfo getEsrInfo() { + return esrInfo; + } + + public void setEsrInfo(EsrInfo esrInfo) { + this.esrInfo = esrInfo; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/NssiUpdateRequest.java b/common/src/main/java/org/onap/so/beans/nsmf/NssiUpdateRequest.java new file mode 100644 index 0000000000..6642734b7f --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/NssiUpdateRequest.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class NssiUpdateRequest { + + private UpdateCnNssi updateCnNssi; + + private EsrInfo esrInfo; + + public EsrInfo getEsrInfo() { + return esrInfo; + } + + public void setEsrInfo(EsrInfo esrInfo) { + this.esrInfo = esrInfo; + } + + public UpdateCnNssi getUpdateCnNssi() { + return updateCnNssi; + } + + public void setUpdateCnNssi(UpdateCnNssi updateCnNssi) { + this.updateCnNssi = updateCnNssi; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/NssiUpdateRequestById.java b/common/src/main/java/org/onap/so/beans/nsmf/NssiUpdateRequestById.java new file mode 100644 index 0000000000..0554d2fcfd --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/NssiUpdateRequestById.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class NssiUpdateRequestById { + + private UpdateCnNssiById updateCnNssiById; + + private EsrInfo esrInfo; + + public EsrInfo getEsrInfo() { + return esrInfo; + } + + public void setEsrInfo(EsrInfo esrInfo) { + this.esrInfo = esrInfo; + } + + public UpdateCnNssiById getUpdateCnNssiById() { + return updateCnNssiById; + } + + public void setUpdateCnNssiById(UpdateCnNssiById updateCnNssiById) { + this.updateCnNssiById = updateCnNssiById; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/NssmiReqInfo.java b/common/src/main/java/org/onap/so/beans/nsmf/NssmiReqInfo.java new file mode 100644 index 0000000000..093825f0ff --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/NssmiReqInfo.java @@ -0,0 +1,57 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class NssmiReqInfo { + + private String nsiId; + + private String nssiId; + + private EsrInfo esrInfo; + + public String getNsiId() { + return nsiId; + } + + public void setNsiId(String nsiId) { + this.nsiId = nsiId; + } + + public String getNssiId() { + return nssiId; + } + + public void setNssiId(String nssiId) { + this.nssiId = nssiId; + } + + public EsrInfo getEsrInfo() { + return esrInfo; + } + + public void setEsrInfo(EsrInfo esrInfo) { + this.esrInfo = esrInfo; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/NssmiResInfo.java b/common/src/main/java/org/onap/so/beans/nsmf/NssmiResInfo.java new file mode 100644 index 0000000000..e75934a7a9 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/NssmiResInfo.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class NssmiResInfo { + + private String jobId; + + private String status; + + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/PerfReq.java b/common/src/main/java/org/onap/so/beans/nsmf/PerfReq.java new file mode 100644 index 0000000000..4aabc3f26f --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/PerfReq.java @@ -0,0 +1,48 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; +import java.util.List; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class PerfReq { + + private List<PerfReqEmbbList> perfReqEmbbList; + + private List<PerfReqUrllcList> perfReqUrllcList; + + public List<PerfReqEmbbList> getPerfReqEmbbList() { + return perfReqEmbbList; + } + + public void setPerfReqEmbbList(List<PerfReqEmbbList> perfReqEmbbList) { + this.perfReqEmbbList = perfReqEmbbList; + } + + public List<PerfReqUrllcList> getPerfReqUrllcList() { + return perfReqUrllcList; + } + + public void setPerfReqUrllcList(List<PerfReqUrllcList> perfReqUrllcList) { + this.perfReqUrllcList = perfReqUrllcList; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/PerfReqEmbbList.java b/common/src/main/java/org/onap/so/beans/nsmf/PerfReqEmbbList.java new file mode 100644 index 0000000000..9e9fcaa19e --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/PerfReqEmbbList.java @@ -0,0 +1,82 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class PerfReqEmbbList { + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int expDataRateDL; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int expDataRateUL; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int areaTrafficCapDL; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int areaTrafficCapUL; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int activityFactor; + + public int getExpDataRateDL() { + return expDataRateDL; + } + + public void setExpDataRateDL(int expDataRateDL) { + this.expDataRateDL = expDataRateDL; + } + + public int getExpDataRateUL() { + return expDataRateUL; + } + + public void setExpDataRateUL(int expDataRateUL) { + this.expDataRateUL = expDataRateUL; + } + + public int getAreaTrafficCapDL() { + return areaTrafficCapDL; + } + + public void setAreaTrafficCapDL(int areaTrafficCapDL) { + this.areaTrafficCapDL = areaTrafficCapDL; + } + + public int getAreaTrafficCapUL() { + return areaTrafficCapUL; + } + + public void setAreaTrafficCapUL(int areaTrafficCapUL) { + this.areaTrafficCapUL = areaTrafficCapUL; + } + + public int getActivityFactor() { + return activityFactor; + } + + public void setActivityFactor(int activityFactor) { + this.activityFactor = activityFactor; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/PerfReqUrllcList.java b/common/src/main/java/org/onap/so/beans/nsmf/PerfReqUrllcList.java new file mode 100644 index 0000000000..00f0a917aa --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/PerfReqUrllcList.java @@ -0,0 +1,135 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class PerfReqUrllcList { + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int e2eLatency; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int jitter; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int survivalTime; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private float csAvailability; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private float reliability; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int expDataRate; + + private String payloadSize; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int trafficDensity; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int connDensity; + + private String serviceAreaDimension; + + public int getE2eLatency() { + return e2eLatency; + } + + public void setE2eLatency(int e2eLatency) { + this.e2eLatency = e2eLatency; + } + + public int getJitter() { + return jitter; + } + + public void setJitter(int jitter) { + this.jitter = jitter; + } + + public int getSurvivalTime() { + return survivalTime; + } + + public void setSurvivalTime(int survivalTime) { + this.survivalTime = survivalTime; + } + + public float getReliability() { + return reliability; + } + + public void setReliability(float reliability) { + this.reliability = reliability; + } + + public int getExpDataRate() { + return expDataRate; + } + + public void setExpDataRate(int expDataRate) { + this.expDataRate = expDataRate; + } + + public String getPayloadSize() { + return payloadSize; + } + + public void setPayloadSize(String payloadSize) { + this.payloadSize = payloadSize; + } + + public int getTrafficDensity() { + return trafficDensity; + } + + public void setTrafficDensity(int trafficDensity) { + this.trafficDensity = trafficDensity; + } + + public int getConnDensity() { + return connDensity; + } + + public void setConnDensity(int connDensity) { + this.connDensity = connDensity; + } + + public String getServiceAreaDimension() { + return serviceAreaDimension; + } + + public void setServiceAreaDimension(String serviceAreaDimension) { + this.serviceAreaDimension = serviceAreaDimension; + } + + public float getCsAvailability() { + return csAvailability; + } + + public void setCsAvailability(float csAvailability) { + this.csAvailability = csAvailability; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/PnfErrorList.java b/common/src/main/java/org/onap/so/beans/nsmf/PnfErrorList.java new file mode 100644 index 0000000000..66bfbdcea9 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/PnfErrorList.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class PnfErrorList { + + private String pnfId; + + private String pnfErrorDesc; + + public String getPnfId() { + return pnfId; + } + + public void setPnfId(String pnfId) { + this.pnfId = pnfId; + } + + public String getPnfErrorDesc() { + return pnfErrorDesc; + } + + public void setPnfErrorDesc(String pnfErrorDesc) { + this.pnfErrorDesc = pnfErrorDesc; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/ResourceSharingLevel.java b/common/src/main/java/org/onap/so/beans/nsmf/ResourceSharingLevel.java new file mode 100644 index 0000000000..405429c34d --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/ResourceSharingLevel.java @@ -0,0 +1,56 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public enum ResourceSharingLevel { + + SHARED("shared"), + + NON_SHARED("non-shared"); + + private String resourceSharingLevel; + + ResourceSharingLevel(String resourceSharingLevel) { + this.resourceSharingLevel = resourceSharingLevel; + } + + @JsonValue + public String getResourceSharingLevel() { + return resourceSharingLevel; + } + + @JsonCreator + public ResourceSharingLevel forValue(String value) { + return valueOf(value); + } + + public static ResourceSharingLevel fromString(String value) { + for (ResourceSharingLevel rscLvl : ResourceSharingLevel.values()) { + if (rscLvl.resourceSharingLevel.equalsIgnoreCase(value)) { + return rscLvl; + } + } + return null; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/ResponseDescriptor.java b/common/src/main/java/org/onap/so/beans/nsmf/ResponseDescriptor.java new file mode 100644 index 0000000000..469d212ef9 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/ResponseDescriptor.java @@ -0,0 +1,85 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; +import java.util.List; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class ResponseDescriptor { + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int progress; + + private String status; + + private String statusDescription; + + private String errorCode; + + private List<VnfErrorList> vnfErrorList; + + private List<PnfErrorList> pnfErrorList; + + private String responseId; + + private List<ResponseHistory> responseHistoryList; + + public int getProgress() { + return progress; + } + + public void setProgress(int progress) { + this.progress = progress; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getStatusDescription() { + return statusDescription; + } + + public void setStatusDescription(String statusDescription) { + this.statusDescription = statusDescription; + } + + public String getResponseId() { + return responseId; + } + + public void setResponseId(String responseId) { + this.responseId = responseId; + } + + public List<ResponseHistory> getResponseHistoryList() { + return responseHistoryList; + } + + public void setResponseHistoryList(List<ResponseHistory> responseHistoryList) { + this.responseHistoryList = responseHistoryList; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/ResponseHistory.java b/common/src/main/java/org/onap/so/beans/nsmf/ResponseHistory.java new file mode 100644 index 0000000000..c71441a80a --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/ResponseHistory.java @@ -0,0 +1,94 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; +import java.util.List; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class ResponseHistory { + + private int progress; + + private String status; + + private String errorCode; + + private String statusDescription; + + private String responseId; + + private List<VnfErrorList> vnfErrorList; + + private List<PnfErrorList> pnfErrorList; + + public int getProgress() { + return progress; + } + + public void setProgress(int progress) { + this.progress = progress; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getStatusDescription() { + return statusDescription; + } + + public void setStatusDescription(String statusDescription) { + this.statusDescription = statusDescription; + } + + public String getResponseId() { + return responseId; + } + + public void setResponseId(String responseId) { + this.responseId = responseId; + } + + public String getErrorCode() { + return errorCode; + } + + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + + public List<VnfErrorList> getVnfErrorList() { + return vnfErrorList; + } + + public List<PnfErrorList> getPnfErrorList() { + return pnfErrorList; + } + + public void setPnfErrorList(List<PnfErrorList> pnfErrorList) { + this.pnfErrorList = pnfErrorList; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/TerminateNssi.java b/common/src/main/java/org/onap/so/beans/nsmf/TerminateNssi.java new file mode 100644 index 0000000000..28cc565272 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/TerminateNssi.java @@ -0,0 +1,59 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class TerminateNssi { + + public final static String URL = "/api/rest/provMns/v1/NSS/nssi/%s"; + + private String nsiId; + + private String scriptName; + + private String extension; + + public String getNsiId() { + return nsiId; + } + + public void setNsiId(String nsiId) { + this.nsiId = nsiId; + } + + public String getScriptName() { + return scriptName; + } + + public void setScriptName(String scriptName) { + this.scriptName = scriptName; + } + + public String getExtension() { + return extension; + } + + public void setExtension(String extension) { + this.extension = extension; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/TnSliceProfile.java b/common/src/main/java/org/onap/so/beans/nsmf/TnSliceProfile.java new file mode 100644 index 0000000000..c3548f15af --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/TnSliceProfile.java @@ -0,0 +1,48 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class TnSliceProfile { + + private String bandwidth; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int latency; + + public String getBandwidth() { + return bandwidth; + } + + public void setBandwidth(String bandwidth) { + this.bandwidth = bandwidth; + } + + public int getLatency() { + return latency; + } + + public void setLatency(int latency) { + this.latency = latency; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/UeMobilityLevel.java b/common/src/main/java/org/onap/so/beans/nsmf/UeMobilityLevel.java new file mode 100644 index 0000000000..ffb7229838 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/UeMobilityLevel.java @@ -0,0 +1,60 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public enum UeMobilityLevel { + + STATIONARY("stationary"), + + NOMADIC("nomadic"), + + RESTRICTED_MOBILITY("restricted mobility"), + + FULLY_MOBILITY("fully mobility"); + + private String ueMobilityLevel; + + UeMobilityLevel(String ueMobilityLevel) { + this.ueMobilityLevel = ueMobilityLevel; + } + + @JsonValue + public String getUeMobilityLevel() { + return ueMobilityLevel; + } + + @JsonCreator + public UeMobilityLevel forValue(String value) { + return valueOf(value); + } + + public static UeMobilityLevel fromString(String value) { + for (UeMobilityLevel ueLvl : UeMobilityLevel.values()) { + if (ueLvl.ueMobilityLevel.equalsIgnoreCase(value)) { + return ueLvl; + } + } + return null; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/UpdateCnNssi.java b/common/src/main/java/org/onap/so/beans/nsmf/UpdateCnNssi.java new file mode 100644 index 0000000000..9fb8f26440 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/UpdateCnNssi.java @@ -0,0 +1,119 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class UpdateCnNssi { + + public final static String URL = "/api/rest/provMns/v1/NSS/SliceProfiles/%s"; + + private String snssai; + + private String nssiId; + + private String nsstId; + + private String flavorId; + + private UpdateSliceProfile sliceProfile; + + private String scriptName; + + private String extension; + + private NsiInfo nsiInfo; + + private NewNsst newNsst; + + public String getSnssai() { + return snssai; + } + + public void setSnssai(String snssai) { + this.snssai = snssai; + } + + public String getNssiId() { + return nssiId; + } + + public void setNssiId(String nssiId) { + this.nssiId = nssiId; + } + + public String getNsstId() { + return nsstId; + } + + public void setNsstId(String nsstId) { + this.nsstId = nsstId; + } + + public String getFlavorId() { + return flavorId; + } + + public void setFlavorId(String flavorId) { + this.flavorId = flavorId; + } + + public UpdateSliceProfile getSliceProfile() { + return sliceProfile; + } + + public void setSliceProfile(UpdateSliceProfile sliceProfile) { + this.sliceProfile = sliceProfile; + } + + public String getScriptName() { + return scriptName; + } + + public void setScriptName(String scriptName) { + this.scriptName = scriptName; + } + + public String getExtension() { + return extension; + } + + public void setExtension(String extension) { + this.extension = extension; + } + + public NsiInfo getNsiInfo() { + return nsiInfo; + } + + public void setNsiInfo(NsiInfo nsiInfo) { + this.nsiInfo = nsiInfo; + } + + public NewNsst getNewNsst() { + return newNsst; + } + + public void setNewNsst(NewNsst newNsst) { + this.newNsst = newNsst; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/UpdateCnNssiById.java b/common/src/main/java/org/onap/so/beans/nsmf/UpdateCnNssiById.java new file mode 100644 index 0000000000..26e6ca02bb --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/UpdateCnNssiById.java @@ -0,0 +1,89 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class UpdateCnNssiById { + + public final static String URL = "/api/rest/provMns/v1/NSS/nssi/%s"; + + private String nsstId; + + private String flavorId; + + private String scriptName; + + private String extension; + + private NsiInfo nsiInfo; + + private NewNsst newNsst; + + public String getNsstId() { + return nsstId; + } + + public void setNsstId(String nsstId) { + this.nsstId = nsstId; + } + + public String getFlavorId() { + return flavorId; + } + + public void setFlavorId(String flavorId) { + this.flavorId = flavorId; + } + + public String getScriptName() { + return scriptName; + } + + public void setScriptName(String scriptName) { + this.scriptName = scriptName; + } + + public String getExtension() { + return extension; + } + + public void setExtension(String extension) { + this.extension = extension; + } + + public NsiInfo getNsiInfo() { + return nsiInfo; + } + + public void setNsiInfo(NsiInfo nsiInfo) { + this.nsiInfo = nsiInfo; + } + + public NewNsst getNewNsst() { + return newNsst; + } + + public void setNewNsst(NewNsst newNsst) { + this.newNsst = newNsst; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/UpdateSliceProfile.java b/common/src/main/java/org/onap/so/beans/nsmf/UpdateSliceProfile.java new file mode 100644 index 0000000000..74ea7ae424 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/UpdateSliceProfile.java @@ -0,0 +1,101 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; +import java.util.List; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class UpdateSliceProfile { + + private List<String> plmnIdList; + + private PerfReq perfReq; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int maxNumberofUEs; + + private List<String> coverageAreaTAList; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int latency; + + @JsonInclude(JsonInclude.Include.NON_DEFAULT) + private int ueMobilityLevel; + + private String resourceSharingLevel; + + public List<String> getPlmnIdList() { + return plmnIdList; + } + + public void setPlmnIdList(List<String> plmnIdList) { + this.plmnIdList = plmnIdList; + } + + public PerfReq getPerfReq() { + return perfReq; + } + + public void setPerfReq(PerfReq perfReq) { + this.perfReq = perfReq; + } + + public int getMaxNumberofUEs() { + return maxNumberofUEs; + } + + public void setMaxNumberofUEs(int maxNumberofUEs) { + this.maxNumberofUEs = maxNumberofUEs; + } + + public List<String> getCoverageAreaTAList() { + return coverageAreaTAList; + } + + public void setCoverageAreaTAList(List<String> coverageAreaTAList) { + this.coverageAreaTAList = coverageAreaTAList; + } + + public int getLatency() { + return latency; + } + + public void setLatency(int latency) { + this.latency = latency; + } + + public int getUeMobilityLevel() { + return ueMobilityLevel; + } + + public void setUeMobilityLevel(int ueMobilityLevel) { + this.ueMobilityLevel = ueMobilityLevel; + } + + public String getResourceSharingLevel() { + return resourceSharingLevel; + } + + public void setResourceSharingLevel(String resourceSharingLevel) { + this.resourceSharingLevel = resourceSharingLevel; + } +} diff --git a/common/src/main/java/org/onap/so/beans/nsmf/VnfErrorList.java b/common/src/main/java/org/onap/so/beans/nsmf/VnfErrorList.java new file mode 100644 index 0000000000..6388ca6106 --- /dev/null +++ b/common/src/main/java/org/onap/so/beans/nsmf/VnfErrorList.java @@ -0,0 +1,47 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.beans.nsmf; + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class VnfErrorList { + + private String vnfInstanceId; + + private String vnfErrorDesc; + + public String getVnfInstanceId() { + return vnfInstanceId; + } + + public void setVnfInstanceId(String vnfInstanceId) { + this.vnfInstanceId = vnfInstanceId; + } + + public String getVnfErrorDesc() { + return vnfErrorDesc; + } + + public void setVnfErrorDesc(String vnfErrorDesc) { + this.vnfErrorDesc = vnfErrorDesc; + } +} |