summaryrefslogtreecommitdiffstats
path: root/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm
diff options
context:
space:
mode:
Diffstat (limited to 'nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm')
-rw-r--r--nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/AdditionalParameters.java31
-rw-r--r--nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/JobManager.java14
-rw-r--r--nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/LifecycleManager.java50
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) {