diff options
Diffstat (limited to 'nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm')
3 files changed, 30 insertions, 65 deletions
diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/AdditionalParameters.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/AdditionalParameters.java index 5895108f..d1ec9e0a 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/AdditionalParameters.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/AdditionalParameters.java @@ -23,7 +23,6 @@ import java.util.*; * Represents the additional parameters to be sent during instantiation from VF-C to the driver */ public class AdditionalParameters { - private VimInfoTypeEnum vimType; private String instantiationLevel; private List<VimComputeResourceFlavour> computeResourceFlavours = new ArrayList<>(); private List<ZoneInfo> zones = new ArrayList<>(); @@ -33,7 +32,6 @@ public class AdditionalParameters { private List<ExtVirtualLinkData> extVirtualLinks = new ArrayList<>(); private List<VnfProperty> extensions = new ArrayList<>(); private Object additionalParams; - private String domain; public AdditionalParameters() { //only used through reflection (gson) @@ -54,20 +52,6 @@ public class AdditionalParameters { } /** - * @return the type of the VIM - */ - public VimInfoTypeEnum getVimType() { - return vimType; - } - - /** - * @param vimType the type of the VIM - */ - public void setVimType(VimInfoTypeEnum vimType) { - this.vimType = vimType; - } - - /** * @return the flavours to be used for the VNF */ public List<VimComputeResourceFlavour> getComputeResourceFlavours() { @@ -159,14 +143,6 @@ public class AdditionalParameters { this.extVirtualLinks = extVirtualLinks; } - public String getDomain() { - return domain; - } - - public void setDomain(String domain) { - this.domain = domain; - } - /** * @return the extensions of the VNF modifiable attributes */ @@ -188,8 +164,7 @@ public class AdditionalParameters { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; AdditionalParameters that = (AdditionalParameters) o; - return vimType == that.vimType && - Objects.equals(domain, that.domain) && + return Objects.equals(instantiationLevel, that.instantiationLevel) && Objects.equals(computeResourceFlavours, that.computeResourceFlavours) && Objects.equals(zones, that.zones) && @@ -203,13 +178,12 @@ public class AdditionalParameters { @Override public int hashCode() { - return Objects.hash(vimType, domain, instantiationLevel, computeResourceFlavours, zones, softwareImages, extManagedVirtualLinks, externalConnectionPointAddresses, extVirtualLinks, extensions, additionalParams); + return Objects.hash(instantiationLevel, computeResourceFlavours, zones, softwareImages, extManagedVirtualLinks, externalConnectionPointAddresses, extVirtualLinks, extensions, additionalParams); } @Override public String toString() { return "AdditionalParameters{" + - "vimType=" + vimType + ", instantiationLevel='" + instantiationLevel + '\'' + ", computeResourceFlavours=" + computeResourceFlavours + ", zones=" + zones + @@ -219,7 +193,6 @@ public class AdditionalParameters { ", extVirtualLinks=" + extVirtualLinks + ", extensions=" + extensions + ", additionalParams=" + additionalParams + - ", domain='" + domain + '\'' + '}'; } }
\ No newline at end of file diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/JobManager.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/JobManager.java index 34dce147..c7d19779 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/JobManager.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/JobManager.java @@ -27,10 +27,7 @@ import com.nokia.cbam.lcm.v32.model.VnfInfo; import java.util.*; import javax.servlet.http.HttpServletResponse; import org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.onap.core.SelfRegistrationManager; -import org.onap.vnfmdriver.model.JobDetailInfo; -import org.onap.vnfmdriver.model.JobDetailInfoResponseDescriptor; -import org.onap.vnfmdriver.model.JobResponseInfo; -import org.onap.vnfmdriver.model.JobStatus; +import org.onap.vnfmdriver.model.*; import org.slf4j.Logger; import static javax.servlet.http.HttpServletResponse.SC_SERVICE_UNAVAILABLE; @@ -183,6 +180,15 @@ public class JobManager { } } + public void waitForJobToFinish(JobInfo jobInfo) { + while(true){ + if(ongoingJobs.contains(jobInfo.getJobId())){ + return; + } + systemFunctions().sleep(500L); + } + } + private JobDetailInfo getJobDetailInfoForMissingVnf(String jobId) { if (ongoingJobs.contains(jobId)) { return reportOngoing(jobId); diff --git a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/LifecycleManager.java b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/LifecycleManager.java index 7c8e2318..8e72d688 100644 --- a/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/LifecycleManager.java +++ b/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/LifecycleManager.java @@ -37,6 +37,7 @@ import org.onap.vnfmdriver.model.*; import org.onap.vnfmdriver.model.VimInfo; import org.onap.vnfmdriver.model.VnfInfo; import org.slf4j.Logger; +import org.springframework.util.StringUtils; import org.yaml.snakeyaml.Yaml; import static java.lang.Integer.parseInt; @@ -176,7 +177,6 @@ public class LifecycleManager { @SuppressWarnings("squid:S00107") //wrapping them into an object makes the code less readable public VnfInstantiateResponse instantiate(String vnfmId, List<ExtVirtualLinkInfo> externalVirtualLinks, HttpServletResponse httpResponse, Object operationAdditionalParameters, AdditionalParameters additionalParameters, String vnfId, String onapVnfdId, String vnfmVnfdId) { logOperationInput(vnfId, "instantiation", additionalParameters); - validateVimType(additionalParameters.getVimType()); VnfInstantiateResponse response = new VnfInstantiateResponse(); response.setVnfInstanceId(vnfId); String vimId = getVimId(operationAdditionalParameters); @@ -212,7 +212,6 @@ public class LifecycleManager { */ public VnfInstantiateResponse createAndInstantiate(String vnfmId, VnfInstantiateRequest request, HttpServletResponse httpResponse) { AdditionalParameters additionalParameters = convertInstantiationAdditionalParams(request.getVnfPackageId(), request.getAdditionalParam()); - validateVimType(additionalParameters.getVimType()); VnfCreationResult creationResult = create(vnfmId, request.getVnfDescriptorId(), request.getVnfInstanceName(), request.getVnfInstanceDescription()); return instantiate(vnfmId, request.getExtVirtualLink(), httpResponse, request.getAdditionalParam(), additionalParameters, creationResult.vnfInfo.getId(), request.getVnfPackageId(), creationResult.vnfdId); } @@ -268,31 +267,18 @@ public class LifecycleManager { } private com.nokia.cbam.lcm.v32.model.VimInfo addVim(AdditionalParameters additionalParameters, String vimId, GrantVNFResponseVim vim, VimInfo vimInfo) { - if (additionalParameters.getVimType() == OPENSTACK_V2_INFO) { - return buildOpenStackV2INFO(vimId, vim, vimInfo); - - } else if (additionalParameters.getVimType() == OPENSTACK_V3_INFO) { - if (isEmpty(vimInfo.getDomain())) { - if (isEmpty(additionalParameters.getDomain())) { - throw buildFatalFailure(logger, "The cloud did not supply the cloud domain (Amsterdam release) and was not supplied as additional data"); - } else { - logger.warn("Setting domain from additional parameters"); - vimInfo.setDomain(additionalParameters.getDomain()); - } + if (vimInfo.getType().equals("openstack")) { + if (StringUtils.isEmpty(vimInfo.getDomain())) { + return buildOpenStackV2INFO(vimId, vim, vimInfo); + } else { + return buildOpenStackV3INFO(vimId, vim, vimInfo); } - return buildOpenStackV3INFO(vimId, vim, vimInfo); } else { //OTHER VIM TYPE is not possible return buildVcloudInfo(vimId, vimInfo); } } - private void validateVimType(com.nokia.cbam.lcm.v32.model.VimInfo.VimInfoTypeEnum vimType) { - if (com.nokia.cbam.lcm.v32.model.VimInfo.VimInfoTypeEnum.OTHER_VIM_INFO.equals(vimType)) { - throw buildFatalFailure(logger, "Only " + OPENSTACK_V2_INFO + ", " + OPENSTACK_V3_INFO + " and " + VMWARE_VCLOUD_INFO + " is the supported VIM types"); - } - } - private String getVimId(Object additionalParams) { return childElement(new Gson().toJsonTree(additionalParams).getAsJsonObject(), "vimId").getAsString(); } @@ -367,7 +353,7 @@ public class LifecycleManager { executeModifyVnfInfo(vnfmId, vnfId, request); } - private void executeModifyVnfInfo(String vnfmId, String vnfId, ModifyVnfInfoRequest request) { + public void executeModifyVnfInfo(String vnfmId, String vnfId, ModifyVnfInfoRequest request) { try { OperationExecution operationExecution = cbamRestApiProvider.getCbamLcmApi(vnfmId).vnfsVnfInstanceIdPatch(vnfId, request, NOKIA_LCM_API_VERSION).blockingFirst(); waitForOperationToFinish(vnfmId, vnfId, operationExecution.getId()); @@ -459,16 +445,16 @@ public class LifecycleManager { * </ul> * * @param vnfmId the identifier of the VNFM - * @param vnfId the identifier of the VNF + * @param vnfIdInVnfm the identifier of the VNF in VNFM * @param request the termination request * @param httpResponse the HTTP response * @return the job for polling the progress of the termination */ - public JobInfo terminateAndDelete(String vnfmId, String vnfId, VnfTerminateRequest request, HttpServletResponse httpResponse) { - logOperationInput(vnfId, "termination", request); - return scheduleExecution(vnfId, httpResponse, "terminateVnf", jobInfo -> { - terminateVnf(vnfmId, vnfId, request, jobInfo); - deleteVnf(vnfmId, vnfId); + public JobInfo terminateAndDelete(String vnfmId, String vnfIdInVnfm, VnfTerminateRequest request, HttpServletResponse httpResponse) { + logOperationInput(vnfIdInVnfm, "termination", request); + return scheduleExecution(vnfIdInVnfm, httpResponse, "terminateVnf", jobInfo -> { + terminateVnf(vnfmId, vnfIdInVnfm, request, jobInfo); + deleteVnf(vnfmId, vnfIdInVnfm); }); } @@ -528,12 +514,12 @@ public class LifecycleManager { * Delete the VNF * * @param vnfmId the identifier of the VNFM - * @param vnfId the identifier fo the VNF + * @param vnfIdInVnfm the identifier fo the VNF */ - public void deleteVnf(String vnfmId, String vnfId) { - logger.info("Deleting VNF with {} identifier", vnfId); - cbamRestApiProvider.getCbamLcmApi(vnfmId).vnfsVnfInstanceIdDelete(vnfId, NOKIA_LCM_API_VERSION).blockingFirst(null); - logger.info("The VNF with {} identifier has been deleted", vnfId); + public void deleteVnf(String vnfmId, String vnfIdInVnfm) { + logger.info("Deleting VNF with {} identifier", vnfIdInVnfm); + cbamRestApiProvider.getCbamLcmApi(vnfmId).vnfsVnfInstanceIdDelete(vnfIdInVnfm, NOKIA_LCM_API_VERSION).blockingFirst(null); + logger.info("The VNF with {} identifier has been deleted", vnfIdInVnfm); } private String getVimIdFromInstantiationRequest(String vnfmId, com.nokia.cbam.lcm.v32.model.VnfInfo vnf) { |