package org.onap.so.bpmn.servicedecomposition.tasks;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
|| requestAction.equalsIgnoreCase("activateFabricConfiguration")
|| requestAction.equalsIgnoreCase("recreateInstance")
|| requestAction.equalsIgnoreCase("replaceInstance")
- || requestAction.equalsIgnoreCase("upgradeInstance") || requestAction.equalsIgnoreCase("healthCheck")) {
+ || requestAction.equalsIgnoreCase("upgradeInstance") || requestAction.equalsIgnoreCase("healthCheck")
+ || requestAction.equalsIgnoreCase("upgradeCnf")) {
return getGBBMacroExistingService(executeBB, lookupKeyMap, bbName, requestAction,
requestDetails.getCloudConfiguration());
}
cloudRegion = mapperLayer.mapCloudRegion(cloudConfiguration, aaiCloudRegion);
}
gBB.setCloudRegion(cloudRegion);
+
+ /*
+ * Below check is for CNF-Upgrade only. Reads new version VNF/VF-Module details from UserParams and delegates to
+ * BBs. Reads data from RequestDetails.
+ */
+ String upgradeCnfModelCustomizationUUID = "";
+ String upgradeCnfVfModuleModelCustomizationUUID = "";
+ String upgradeCnfModelVersionId = "";
+ String upgradeCnfVfModuleModelVersionId = "";
+ if (requestDetails.getRelatedInstanceList() != null && requestAction.equalsIgnoreCase("upgradeCnf")) {
+ if (requestDetails.getRequestParameters().getUserParams() != null) {
+ List<RequestParameters> requestParams = new ArrayList<>();
+ requestParams.add(requestDetails.getRequestParameters());
+ for (RequestParameters reqParam : requestParams) {
+ for (Map<String, Object> params : reqParam.getUserParams()) {
+ if (params.containsKey("service")) {
+ org.onap.so.serviceinstancebeans.Service services = serviceMapper(params);
+ List<Vnfs> vnfs = services.getResources().getVnfs();
+ for (Vnfs vnfobj : vnfs) {
+ for (VfModules vfMod : vnfobj.getVfModules()) {
+ upgradeCnfModelCustomizationUUID = vnfobj.getModelInfo().getModelCustomizationId();
+ upgradeCnfModelVersionId = vnfobj.getModelInfo().getModelVersionId();
+ upgradeCnfVfModuleModelCustomizationUUID =
+ vfMod.getModelInfo().getModelCustomizationId();
+ upgradeCnfVfModuleModelVersionId = vfMod.getModelInfo().getModelVersionId();
+ }
+ }
+ }
+ }
+ }
+ }
+ }
if (bbName.contains(VNF) || (bbName.contains(CONTROLLER)
&& (VNF).equalsIgnoreCase(executeBB.getBuildingBlock().getBpmnScope()))) {
for (GenericVnf genericVnf : serviceInstance.getVnfs()) {
&& genericVnf.getVnfId().equalsIgnoreCase(lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID))) {
org.onap.aai.domain.yang.GenericVnf vnf = bbInputSetupUtils.getAAIGenericVnf(genericVnf.getVnfId());
ModelInfo modelInfo = new ModelInfo();
- if (vnf != null) {
+ if ("upgradeCnf".equalsIgnoreCase(requestAction) && upgradeCnfModelCustomizationUUID != null
+ && !(bbName.contains("Deactivate"))) {
+ modelInfo.setModelCustomizationUuid(upgradeCnfModelCustomizationUUID);
+ modelInfo.setModelVersionId(upgradeCnfModelVersionId);
+ this.mapCatalogVnf(genericVnf, modelInfo, service);
+ } else if (vnf != null) {
modelInfo.setModelCustomizationUuid(vnf.getModelCustomizationId());
+ this.mapCatalogVnf(genericVnf, modelInfo, service);
}
- this.mapCatalogVnf(genericVnf, modelInfo, service);
+
}
}
+
} else if (bbName.contains(VF_MODULE) || (bbName.contains(CONTROLLER)
&& (VF_MODULE).equalsIgnoreCase(executeBB.getBuildingBlock().getBpmnScope()))) {
for (GenericVnf vnf : serviceInstance.getVnfs()) {
String vnfModelCustomizationUUID =
this.bbInputSetupUtils.getAAIGenericVnf(vnf.getVnfId()).getModelCustomizationId();
ModelInfo vnfModelInfo = new ModelInfo();
- vnfModelInfo.setModelCustomizationUuid(vnfModelCustomizationUUID);
- this.mapCatalogVnf(vnf, vnfModelInfo, service);
+ if ("upgradeCnf".equalsIgnoreCase(requestAction) && upgradeCnfModelCustomizationUUID != null
+ && !(bbName.contains("Deactivate"))) {
+ vnfModelInfo.setModelCustomizationUuid(upgradeCnfModelCustomizationUUID);
+ vnfModelInfo.setModelVersionId(upgradeCnfModelVersionId);
+ this.mapCatalogVnf(vnf, vnfModelInfo, service);
+ } else {
+ vnfModelInfo.setModelCustomizationUuid(vnfModelCustomizationUUID);
+ this.mapCatalogVnf(vnf, vnfModelInfo, service);
+ }
lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, vnf.getVnfId());
String vfModuleCustomizationUUID = this.bbInputSetupUtils
.getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId()).getModelCustomizationId();
ModelInfo vfModuleModelInfo = new ModelInfo();
- vfModuleModelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
- this.mapCatalogVfModule(vfModule, vfModuleModelInfo, service, vnfModelCustomizationUUID);
+ if ("upgradeCnf".equalsIgnoreCase(requestAction) && upgradeCnfModelCustomizationUUID != null
+ && !(bbName.contains("Deactivate"))) {
+ vfModuleModelInfo.setModelCustomizationUuid(upgradeCnfVfModuleModelCustomizationUUID);
+ vfModuleModelInfo.setModelVersionId(upgradeCnfVfModuleModelVersionId);
+ this.mapCatalogVfModule(vfModule, vfModuleModelInfo, service,
+ upgradeCnfModelCustomizationUUID);
+ } else {
+ vfModuleModelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
+ this.mapCatalogVfModule(vfModule, vfModuleModelInfo, service, vnfModelCustomizationUUID);
+ }
if (cloudRegion != null) {
Optional<String> volumeGroupIdOp = getVolumeGroupIdRelatedToVfModule(vnf, vfModuleModelInfo,
cloudRegion.getCloudOwner(), cloudRegion.getLcpCloudRegionId(), lookupKeyMap);
return collection;
}
+ private org.onap.so.serviceinstancebeans.Service serviceMapper(Map<String, Object> params) throws IOException {
+ ObjectMapper obj = new ObjectMapper();
+ String input = obj.writeValueAsString(params.get("service"));
+ return obj.readValue(input, org.onap.so.serviceinstancebeans.Service.class);
+ }
+
private void setisHelmforHealthCheckBB(Service service, ServiceInstance serviceInstance, GeneralBuildingBlock gBB) {
for (GenericVnf vnf : serviceInstance.getVnfs()) {
for (VfModule vfModule : vnf.getVfModules()) {