summaryrefslogtreecommitdiffstats
path: root/nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/LifecycleManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/LifecycleManager.java')
-rw-r--r--nokiav2/driver/src/main/java/org/onap/vfc/nfvo/driver/vnfm/svnfm/nokia/vnfm/LifecycleManager.java234
1 files changed, 150 insertions, 84 deletions
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 e0ee8f83..cbf5341d 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
@@ -43,6 +43,7 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import static com.google.common.base.Splitter.on;
+import static com.google.common.base.Strings.isNullOrEmpty;
import static com.google.common.collect.Iterables.find;
import static com.google.common.collect.Lists.newArrayList;
import static com.google.common.collect.Sets.newHashSet;
@@ -55,7 +56,7 @@ import static java.nio.charset.StandardCharsets.UTF_8;
import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.CbamUtils.*;
import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util.SystemFunctions.systemFunctions;
import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.CbamRestApiProvider.NOKIA_LCM_API_VERSION;
-import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.ILifecycleChangeNotificationManager.NEWEST_OPERATIONS_FIRST;
+import static org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.vnfm.notification.LifecycleChangeNotificationManager.NEWEST_OPERATIONS_FIRST;
import static org.slf4j.LoggerFactory.getLogger;
import static org.springframework.util.StringUtils.isEmpty;
@@ -93,10 +94,18 @@ public class LifecycleManager {
this.catalogManager = catalogManager;
}
+ /**
+ * @param vimId the VIM identifier
+ * @return the name of the region
+ */
public static String getRegionName(String vimId) {
return newArrayList(on(SEPARATOR).split(vimId)).get(1);
}
+ /**
+ * @param vimId the VIM identifier
+ * @return the owner of the cloud
+ */
public static String getCloudOwner(String vimId) {
return newArrayList(on(SEPARATOR).split(vimId)).get(0);
}
@@ -106,6 +115,73 @@ public class LifecycleManager {
}
/**
+ * Create the VNF. It consists of the following steps
+ * <ul>
+ * <li>upload the VNF package to CBAM package (if not already there)</li>
+ * <li>create the VNF on CBAM</li>
+ * <li>modify attributes of the VNF (add onapCsarId field)</li>
+ * </ul>
+ * The rollback of the failed operation is not implemented
+ * <ul>
+ * <li>delete the VNF if error occurs before instantiation</li>
+ * <li>terminate & delete VNF if error occurs after instantiation</li>
+ * </ul>
+ *
+ * @param vnfmId the identifier of the VNFM
+ * @param csarId the identifier of the VNF package
+ * @param vnfName the name of the VNF
+ * @param description the description of the VNF
+ * @param addtionalParams additional parameters for the VNF instantiation request
+ * @return the VNF creation result
+ */
+ public VnfCreationResult create(String vnfmId, String csarId, String vnfName, String description, AdditionalParameters addtionalParams) {
+ logOperationInput("not yet specified", "create", addtionalParams);
+ validateVimType(addtionalParams.getVimType());
+ try {
+ CatalogAdapterVnfpackage cbamPackage = catalogManager.preparePackageInCbam(vnfmId, csarId);
+ CreateVnfRequest vnfCreateRequest = new CreateVnfRequest();
+ vnfCreateRequest.setVnfdId(cbamPackage.getVnfdId());
+ vnfCreateRequest.setName(vnfName);
+ vnfCreateRequest.setDescription(description);
+ com.nokia.cbam.lcm.v32.model.VnfInfo vnfInfo = cbamRestApiProvider.getCbamLcmApi(vnfmId).vnfsPost(vnfCreateRequest, NOKIA_LCM_API_VERSION);
+ addVnfdIdToVnfModifyableAttributeExtensions(vnfmId, vnfInfo.getId(), csarId);
+ return new VnfCreationResult(vnfInfo, cbamPackage.getVnfdId());
+ } catch (Exception e) {
+ throw buildFatalFailure(logger, "Unable to create the VNF", e);
+ }
+ }
+
+ private void logOperationInput(String vnfId, String operationName, Object payload){
+ if(logger.isInfoEnabled()){
+ logger.info("Starting {} operation on VNF with {} identifier with {} parameter", operationName, vnfId, new Gson().toJson(payload));
+ }
+ }
+
+ /**
+ * Instantiate the VNF
+ *
+ * @param vnfmId the identifier of the VNFM
+ * @param request the VNF instantiation request
+ * @param httpResponse the HTTP response that corresponds to the VNF instantiation request
+ * @param additionalParameters additional parameters
+ * @param vnfId thr identifier of the VNF
+ * @param vnfdId the identifier of the VNF package in CBAM
+ * @return the instantiation response
+ */
+ public VnfInstantiateResponse instantiate(String vnfmId, VnfInstantiateRequest request, HttpServletResponse httpResponse, AdditionalParameters additionalParameters, String vnfId, String vnfdId) {
+ logOperationInput(vnfId, "instantiate", request);
+ validateVimType(additionalParameters.getVimType());
+ VnfInstantiateResponse response = new VnfInstantiateResponse();
+ response.setVnfInstanceId(vnfId);
+ String vimId = getVimId(request.getAdditionalParam());
+ JobInfo spawnJob = scheduleExecution(vnfId, httpResponse, "instantiate", jobInfo ->
+ instantiateVnf(vnfmId, request, additionalParameters, vnfdId, vnfId, vimId, jobInfo)
+ );
+ response.setJobId(spawnJob.getJobId());
+ return response;
+ }
+
+ /**
* Instantiate (VF-C terminology) the VNF. It consists of the following steps
* <ul>
* <li>upload the VNF package to CBAM package (if not already there)</li>
@@ -128,81 +204,59 @@ public class LifecycleManager {
* @param httpResponse the HTTP response
* @return the instantiation response
*/
- public VnfInstantiateResponse instantiate(String vnfmId, VnfInstantiateRequest request, HttpServletResponse httpResponse) {
- if (logger.isDebugEnabled()) {
- logger.debug("Additional parameters for instantiation: {}", new Gson().toJson(request.getAdditionalParam()));
- }
- AdditionalParams additionalParams = convertInstantiationAdditionalParams(request.getVnfPackageId(), request.getAdditionalParam());
- validateVimType(additionalParams);
- CatalogAdapterVnfpackage cbamPackage = catalogManager.preparePackageInCbam(vnfmId, request.getVnfPackageId());
- try {
- CreateVnfRequest vnfCreateRequest = new CreateVnfRequest();
- vnfCreateRequest.setVnfdId(cbamPackage.getId());
- vnfCreateRequest.setName(request.getVnfInstanceName());
- vnfCreateRequest.setDescription(request.getVnfInstanceDescription());
- com.nokia.cbam.lcm.v32.model.VnfInfo vnfInfo = cbamRestApiProvider.getCbamLcmApi(vnfmId).vnfsPost(vnfCreateRequest, NOKIA_LCM_API_VERSION);
- VnfInstantiateResponse response = new VnfInstantiateResponse();
- response.setVnfInstanceId(vnfInfo.getId());
- String vimId = getVimId(request.getAdditionalParam());
- addVnfdIdToVnfModifyableAttributeExtensions(vnfmId, vnfInfo.getId(), request.getVnfPackageId());
- JobInfo spawnJob = scheduleExecution(vnfInfo.getId(), httpResponse, "instantiate", jobInfo ->
- instantiateVnf(vnfmId, request, additionalParams, cbamPackage, vnfInfo, vimId, jobInfo)
- );
- response.setJobId(spawnJob.getJobId());
- return response;
- } catch (Exception e) {
- throw fatalFailure(logger, "Unable to create the VNF", e);
- }
+ public VnfInstantiateResponse createAndInstantiate(String vnfmId, VnfInstantiateRequest request, HttpServletResponse httpResponse) {
+ AdditionalParameters additionalParameters = convertInstantiationAdditionalParams(request.getVnfPackageId(), request.getAdditionalParam());
+ VnfCreationResult creationResult = create(vnfmId, request.getVnfDescriptorId(), request.getVnfInstanceName(), request.getVnfInstanceDescription(), additionalParameters);
+ return instantiate(vnfmId, request, httpResponse, additionalParameters, creationResult.vnfInfo.getId(), creationResult.vnfdId);
}
- private void instantiateVnf(String vnfmId, VnfInstantiateRequest request, AdditionalParams additionalParams, CatalogAdapterVnfpackage cbamPackage, com.nokia.cbam.lcm.v32.model.VnfInfo vnfInfo, String vimId, JobInfo jobInfo) throws ApiException {
- String vnfdContent = catalogManager.getCbamVnfdContent(vnfmId, cbamPackage.getId());
- GrantVNFResponseVim vim = grantManager.requestGrantForInstantiate(vnfmId, vnfInfo.getId(), vimId, request.getVnfPackageId(), additionalParams.getInstantiationLevel(), vnfdContent, jobInfo.getJobId());
+ private void instantiateVnf(String vnfmId, VnfInstantiateRequest request, AdditionalParameters additionalParameters, String vnfdId, String vnfId, String vimId, JobInfo jobInfo) throws ApiException {
+ String vnfdContent = catalogManager.getCbamVnfdContent(vnfmId, vnfdId);
+ GrantVNFResponseVim vim = grantManager.requestGrantForInstantiate(vnfmId, vnfId, vimId, request.getVnfPackageId(), additionalParameters.getInstantiationLevel(), vnfdContent, jobInfo.getJobId());
if (vim.getVimId() == null) {
- fatalFailure(logger, "VF-C did not send VIM identifier in grant response");
+ throw buildFatalFailure(logger, "VF-C did not send VIM identifier in grant response");
}
VimInfo vimInfo = vimInfoProvider.getVimInfo(vim.getVimId());
InstantiateVnfRequest instantiationRequest = new InstantiateVnfRequest();
- addExernalLinksToRequest(request.getExtVirtualLink(), additionalParams, instantiationRequest, vimId);
- if (additionalParams.getVimType() == OPENSTACK_V2_INFO) {
- instantiationRequest.getVims().add(buildOpenStackV2INFO(vimId, vim, vimInfo));
-
- } else if (additionalParams.getVimType() == OPENSTACK_V3_INFO) {
- instantiationRequest.getVims().add(buildOpenStackV3INFO(vimId, additionalParams, vim, vimInfo));
-
- } else if (additionalParams.getVimType() == VMWARE_VCLOUD_INFO) {
- instantiationRequest.getVims().add(buildVcloudInfo(vimId, vimInfo));
-
- }
+ addExternalLinksToRequest(request.getExtVirtualLink(), additionalParameters, instantiationRequest, vimId);
+ instantiationRequest.getVims().add(addVim(additionalParameters, vimId, vim, vimInfo, instantiationRequest));
instantiationRequest.setFlavourId(getFlavorId(vnfdContent));
- instantiationRequest.setComputeResourceFlavours(additionalParams.getComputeResourceFlavours());
+ instantiationRequest.setComputeResourceFlavours(additionalParameters.getComputeResourceFlavours());
instantiationRequest.setGrantlessMode(true);
- instantiationRequest.setInstantiationLevelId(additionalParams.getInstantiationLevel());
- instantiationRequest.setSoftwareImages(additionalParams.getSoftwareImages());
- instantiationRequest.setZones(additionalParams.getZones());
- instantiationRequest.setExtManagedVirtualLinks(additionalParams.getExtManagedVirtualLinks());
- for (ExtVirtualLinkData extVirtualLinkData : additionalParams.getExtVirtualLinks()) {
+ instantiationRequest.setInstantiationLevelId(additionalParameters.getInstantiationLevel());
+ instantiationRequest.setSoftwareImages(additionalParameters.getSoftwareImages());
+ instantiationRequest.setZones(additionalParameters.getZones());
+ instantiationRequest.setExtManagedVirtualLinks(additionalParameters.getExtManagedVirtualLinks());
+ for (ExtVirtualLinkData extVirtualLinkData : additionalParameters.getExtVirtualLinks()) {
instantiationRequest.addExtVirtualLinksItem(extVirtualLinkData);
}
JsonObject root = new Gson().toJsonTree(jobInfo).getAsJsonObject();
- if (additionalParams.getAdditionalParams() != null && !isEmpty(additionalParams.getAdditionalParams().toString())) {
- for (Map.Entry<String, JsonElement> item : new Gson().toJsonTree(additionalParams.getAdditionalParams()).getAsJsonObject().entrySet()) {
+ if (additionalParameters.getAdditionalParams() != null && !isNullOrEmpty(additionalParameters.getAdditionalParams().toString())) {
+ for (Map.Entry<String, JsonElement> item : new Gson().toJsonTree(additionalParameters.getAdditionalParams()).getAsJsonObject().entrySet()) {
root.add(item.getKey(), item.getValue());
}
}
instantiationRequest.setAdditionalParams(root);
- OperationExecution operationExecution = cbamRestApiProvider.getCbamLcmApi(vnfmId).vnfsVnfInstanceIdInstantiatePost(vnfInfo.getId(), instantiationRequest, NOKIA_LCM_API_VERSION);
- waitForOperationToFinish(vnfmId, vnfInfo.getId(), operationExecution.getId());
- }
-
- private void validateVimType(AdditionalParams additionalParams) {
- switch (additionalParams.getVimType()) {
- case OPENSTACK_V2_INFO:
- case OPENSTACK_V3_INFO:
- case VMWARE_VCLOUD_INFO:
- break;
- default:
- throw fatalFailure(logger, "Only " + OPENSTACK_V2_INFO + ", " + OPENSTACK_V3_INFO + " and " + VMWARE_VCLOUD_INFO + " is the supported VIM types");
+ OperationExecution operationExecution = cbamRestApiProvider.getCbamLcmApi(vnfmId).vnfsVnfInstanceIdInstantiatePost(vnfId, instantiationRequest, NOKIA_LCM_API_VERSION);
+ waitForOperationToFinish(vnfmId, vnfId, operationExecution.getId());
+ }
+
+ private com.nokia.cbam.lcm.v32.model.VimInfo addVim(AdditionalParameters additionalParameters, String vimId, GrantVNFResponseVim vim, VimInfo vimInfo, InstantiateVnfRequest instantiationRequest) {
+ if (additionalParameters.getVimType() == OPENSTACK_V2_INFO) {
+ return buildOpenStackV2INFO(vimId, vim, vimInfo);
+
+ } else if (additionalParameters.getVimType() == OPENSTACK_V3_INFO) {
+ return buildOpenStackV3INFO(vimId, additionalParameters, 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");
}
}
@@ -210,13 +264,13 @@ public class LifecycleManager {
return childElement(new Gson().toJsonTree(additionalParams).getAsJsonObject(), "vimId").getAsString();
}
- private AdditionalParams convertInstantiationAdditionalParams(String csarId, Object additionalParams) {
+ private AdditionalParameters convertInstantiationAdditionalParams(String csarId, Object additionalParams) {
JsonObject vnfParameters = child(child(new Gson().toJsonTree(additionalParams).getAsJsonObject(), "inputs"), "vnfs");
if (!vnfParameters.has(csarId)) {
- throw fatalFailure(logger, "The additional parameter section does not contain setting for VNF with " + csarId + " CSAR id");
+ throw buildFatalFailure(logger, "The additional parameter section does not contain setting for VNF with " + csarId + " CSAR id");
}
JsonElement additionalParamsForVnf = vnfParameters.get(csarId);
- return new Gson().fromJson(additionalParamsForVnf, AdditionalParams.class);
+ return new Gson().fromJson(additionalParamsForVnf, AdditionalParameters.class);
}
private String getFlavorId(String vnfdContent) {
@@ -233,7 +287,7 @@ public class LifecycleManager {
return additionalParameters.keySet();
}
- private void addExernalLinksToRequest(List<ExtVirtualLinkInfo> extVirtualLinks, AdditionalParams additionalParams, InstantiateVnfRequest instantiationRequest, String vimId) {
+ private void addExternalLinksToRequest(List<ExtVirtualLinkInfo> extVirtualLinks, AdditionalParameters additionalParameters, InstantiateVnfRequest instantiationRequest, String vimId) {
for (ExtVirtualLinkInfo extVirtualLink : extVirtualLinks) {
ExtVirtualLinkData cbamExternalVirtualLink = new ExtVirtualLinkData();
cbamExternalVirtualLink.setVimId(vimId);
@@ -242,7 +296,7 @@ public class LifecycleManager {
cbamExternalVirtualLink.setExtVirtualLinkId(extVirtualLink.getVlInstanceId());
cbamExternalVirtualLink.getExtCps().add(ecp);
ecp.setCpdId(extVirtualLink.getCpdId());
- List<NetworkAddress> addresses = additionalParams.getExternalConnectionPointAddresses().get(extVirtualLink.getCpdId());
+ List<NetworkAddress> addresses = additionalParameters.getExternalConnectionPointAddresses().get(extVirtualLink.getCpdId());
ecp.setAddresses(addresses);
instantiationRequest.addExtVirtualLinksItem(cbamExternalVirtualLink);
}
@@ -264,17 +318,17 @@ public class LifecycleManager {
OperationExecution operationExecution = cbamRestApiProvider.getCbamLcmApi(vnfmId).vnfsVnfInstanceIdPatch(vnfId, request, NOKIA_LCM_API_VERSION);
waitForOperationToFinish(vnfmId, vnfId, operationExecution.getId());
} catch (ApiException e) {
- fatalFailure(logger, "Unable to set the " + ONAP_CSAR_ID + " property on the VNF", e);
+ throw buildFatalFailure(logger, "Unable to set the " + ONAP_CSAR_ID + " property on the VNF", e);
}
}
- private OPENSTACKV3INFO buildOpenStackV3INFO(String vimId, AdditionalParams additionalParams, GrantVNFResponseVim vim, org.onap.vnfmdriver.model.VimInfo vimInfo) {
+ private OPENSTACKV3INFO buildOpenStackV3INFO(String vimId, AdditionalParameters additionalParameters, GrantVNFResponseVim vim, org.onap.vnfmdriver.model.VimInfo vimInfo) {
OPENSTACKV3INFO openstackv3INFO = new OPENSTACKV3INFO();
openstackv3INFO.setVimInfoType(OPENSTACK_V3_INFO);
OpenStackAccessInfoV3 accessInfov3 = new OpenStackAccessInfoV3();
openstackv3INFO.accessInfo(accessInfov3);
accessInfov3.setPassword(vimInfo.getPassword());
- accessInfov3.setDomain(additionalParams.getDomain());
+ accessInfov3.setDomain(additionalParameters.getDomain());
accessInfov3.setProject(vim.getAccessInfo().getTenant());
accessInfov3.setRegion(getRegionName(vimId));
accessInfov3.setUsername(vimInfo.getUserName());
@@ -370,6 +424,7 @@ public class LifecycleManager {
* @return the job for polling the progress of the termination
*/
public JobInfo terminateVnf(String vnfmId, String vnfId, VnfTerminateRequest request, HttpServletResponse httpResponse) {
+ logOperationInput(vnfId, "termination", request);
return scheduleExecution(vnfId, httpResponse, "terminate", jobInfo -> {
TerminateVnfRequest cbamRequest = new TerminateVnfRequest();
cbamRequest.setAdditionalParams(jobInfo);
@@ -386,10 +441,8 @@ public class LifecycleManager {
com.nokia.cbam.lcm.v32.model.VnfInfo vnf = cbamRestApiProvider.getCbamLcmApi(vnfmId).vnfsVnfInstanceIdGet(vnfId, NOKIA_LCM_API_VERSION);
if (vnf.getInstantiationState() == INSTANTIATED) {
terminateVnf(vnfmId, vnfId, jobInfo, cbamRequest, vnf);
-
} else {
cbamRestApiProvider.getCbamLcmApi(vnfmId).vnfsVnfInstanceIdDelete(vnfId, NOKIA_LCM_API_VERSION);
-
}
});
}
@@ -442,7 +495,7 @@ public class LifecycleManager {
vnfInfo.setVnfType("Kuku");
return vnfInfo;
} catch (ApiException e) {
- throw fatalFailure(logger, "Unable to query VNF (" + vnfId + ")", e);
+ throw buildFatalFailure(logger, "Unable to query VNF (" + vnfId + ")", e);
}
}
@@ -464,9 +517,7 @@ public class LifecycleManager {
* @return the job for tracking the scale
*/
public JobInfo scaleVnf(String vnfmId, String vnfId, VnfScaleRequest request, HttpServletResponse httpResponse) {
- if (logger.isInfoEnabled()) {
- logger.info("Scale VNF with {} identifier REST: {}", vnfId, new Gson().toJson(request));
- }
+ logOperationInput(vnfId, "scale", request);
return scheduleExecution(vnfId, httpResponse, "scale", jobInfo -> {
ScaleVnfRequest cbamRequest = new ScaleVnfRequest();
cbamRequest.setAspectId(request.getAspectId());
@@ -477,15 +528,7 @@ public class LifecycleManager {
com.nokia.cbam.lcm.v32.model.VnfInfo cbamVnfInfo = cbamRestApiProvider.getCbamLcmApi(vnfmId).vnfsVnfInstanceIdGet(vnfId, NOKIA_LCM_API_VERSION);
String vnfdContent = catalogManager.getCbamVnfdContent(vnfmId, cbamVnfInfo.getVnfdId());
Set<String> acceptableOperationParameters = getAcceptableOperationParameters(vnfdContent, "Basic", "scale");
- if (request.getAdditionalParam() != null) {
- for (Map.Entry<String, JsonElement> item : new Gson().toJsonTree(request.getAdditionalParam()).getAsJsonObject().entrySet()) {
- if (acceptableOperationParameters.contains(item.getKey())) {
- root.add(item.getKey(), item.getValue());
- }
- }
- } else {
- logger.warn("No additional parameters were passed for scaling");
- }
+ buildAdditionalParameters(request, root, acceptableOperationParameters);
cbamRequest.setAdditionalParams(root);
grantManager.requestGrantForScale(vnfmId, vnfId, getVimIdFromInstantiationRequest(vnfmId, vnf), getVnfdIdFromModifyableAttributes(vnf), request, jobInfo.getJobId());
OperationExecution operationExecution = cbamRestApiProvider.getCbamLcmApi(vnfmId).vnfsVnfInstanceIdScalePost(vnfId, cbamRequest, NOKIA_LCM_API_VERSION);
@@ -493,6 +536,18 @@ public class LifecycleManager {
});
}
+ private void buildAdditionalParameters(VnfScaleRequest request, JsonObject root, Set<String> acceptableOperationParameters) {
+ if (request.getAdditionalParam() != null) {
+ for (Map.Entry<String, JsonElement> item : new Gson().toJsonTree(request.getAdditionalParam()).getAsJsonObject().entrySet()) {
+ if (acceptableOperationParameters.contains(item.getKey())) {
+ root.add(item.getKey(), item.getValue());
+ }
+ }
+ } else {
+ logger.warn("No additional parameters were passed for scaling");
+ }
+ }
+
/**
* Heal the VNF
*
@@ -503,6 +558,7 @@ public class LifecycleManager {
* @return the job for tracking the heal
*/
public JobInfo healVnf(String vnfmId, String vnfId, VnfHealRequest request, HttpServletResponse httpResponse) {
+ logOperationInput(vnfId, "heal", request);
return scheduleExecution(vnfId, httpResponse, "heal", job -> {
HealVnfRequest cbamHealRequest = new HealVnfRequest();
Map<String, String> additionalParams = new HashMap<>();
@@ -564,4 +620,14 @@ public class LifecycleManager {
private interface AsynchronousExecution {
void execute(JobInfo job) throws ApiException;
}
+
+ private static class VnfCreationResult {
+ private com.nokia.cbam.lcm.v32.model.VnfInfo vnfInfo;
+ private String vnfdId;
+
+ VnfCreationResult(com.nokia.cbam.lcm.v32.model.VnfInfo vnfInfo, String vnfdId) {
+ this.vnfInfo = vnfInfo;
+ this.vnfdId = vnfdId;
+ }
+ }
}