summaryrefslogtreecommitdiffstats
path: root/adapters
diff options
context:
space:
mode:
Diffstat (limited to 'adapters')
-rw-r--r--adapters/mso-catalog-db-adapter/src/main/resources/db/migration/R__WorkflowDesignerData.sql6
-rw-r--r--adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/db/catalog/client/CatalogDbClientTest.java3
-rw-r--r--adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/consts/NssmfAdapterConsts.java2
-rw-r--r--adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProvider.java3
-rw-r--r--adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProviderImpl.java8
-rw-r--r--adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/ExternalNssmfManager.java2
-rw-r--r--adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/ExternalAnNssmfManager.java23
-rw-r--r--adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/ExternalCnNssmfManager.java20
-rw-r--r--adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/util/RestUtil.java5
-rw-r--r--adapters/mso-nssmf-adapter/src/test/java/org/onap/so/adapters/nssmf/service/impl/NssmfManagerServiceImplTest.java4
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java84
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/TaskServices.java4
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/CreateAAIInventory.java10
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/DeleteAAIInventory.java10
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/PollService.java221
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/StackService.java98
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapterImpl.java6
-rw-r--r--adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java38
-rw-r--r--adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tasks/orchestration/StackServiceTest.java5
19 files changed, 337 insertions, 215 deletions
diff --git a/adapters/mso-catalog-db-adapter/src/main/resources/db/migration/R__WorkflowDesignerData.sql b/adapters/mso-catalog-db-adapter/src/main/resources/db/migration/R__WorkflowDesignerData.sql
index b86bae1b06..9194bd96ae 100644
--- a/adapters/mso-catalog-db-adapter/src/main/resources/db/migration/R__WorkflowDesignerData.sql
+++ b/adapters/mso-catalog-db-adapter/src/main/resources/db/migration/R__WorkflowDesignerData.sql
@@ -204,5 +204,7 @@ VALUES
('9d45cd30-1a89-4993-87c1-6dd09c1696cf','VFModule-ScaleOut','VNF Scale Out','ScaleOut',1.0,'native static workflow to support ScaleOut','vfModule','native'),
('da6478e4-ea33-3346-ac12-ab121284a333','VnfInPlaceUpdate.bpmn','VnfInPlaceUpdate','inPlaceSoftwareUpdate',1.0,'native static workflow to support inPlaceSoftwareUpdate','vnf','native'),
('fdb3ac48-70f9-4584-bd92-253bdbdec1e1','VnfConfigUpdate.bpmn','VnfConfigUpdate','applyConfigModify',1.0,'native static workflow to support applyConfigModify','vnf','native'),
-('b2fd5627-55e4-4f4f-8064-9e6f443e9152','DummyPnfWorkflow','Dummy Pnf Workflow','DummyPnfWorkflow',1.0,'Dummy Pnf Workflow to test custom Pnf workflow','pnf','native');
-
+('b2fd5627-55e4-4f4f-8064-9e6f443e9152','DummyPnfWorkflow','Dummy Pnf Workflow','DummyPnfWorkflow',1.0,'Dummy Pnf Workflow to test custom Pnf workflow','pnf','native'),
+('d752c287-c5a8-40a6-8fce-077e1d54104b','GenericPnfSoftwareUpgrade','GenericPnfSoftwareUpgrade','GenericPnfSoftwareUpgrade',1.0,'Pnf Workflow to upgrade software','pnf','native'),
+('h2bfd4d9-6af0-4f8d-bf9b-d1d9ecd28c84','GenericPnfSWUPDownload','GenericPnfSWUPDownload','GenericPnfSWUPDownload',1.0,'Pnf Workflow to download software','pnf','native'),
+('s3fct5f2-6af0-4f8d-bf9b-s3f3dca23c19','ServiceLevelUpgrade','ServiceLevelUpgrade','ServiceLevelUpgrade',1.0,'ServiceLevel Upgrade Workflow to upgrade software','service','native');
diff --git a/adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/db/catalog/client/CatalogDbClientTest.java b/adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/db/catalog/client/CatalogDbClientTest.java
index d6f2c6dbcc..c202170235 100644
--- a/adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/db/catalog/client/CatalogDbClientTest.java
+++ b/adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/db/catalog/client/CatalogDbClientTest.java
@@ -197,7 +197,8 @@ public class CatalogDbClientTest extends CatalogDbAdapterBaseTest {
assertNotNull(vnfResourceCustomization.getVnfResources());
assertNotNull(vnfResourceCustomization.getVfModuleCustomizations());
assertEquals("vSAMP10a", vnfResourceCustomization.getVnfResources().getModelName());
- assertTrue("skip post instantiation configuration", vnfResourceCustomization.isSkipPostInstConf());
+ assertTrue("skip post instantiation configuration",
+ vnfResourceCustomization.isSkipPostInstConf().booleanValue());
}
@Test
diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/consts/NssmfAdapterConsts.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/consts/NssmfAdapterConsts.java
index 8f029e7075..a24f8ef0c7 100644
--- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/consts/NssmfAdapterConsts.java
+++ b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/consts/NssmfAdapterConsts.java
@@ -131,7 +131,7 @@ public class NssmfAdapterConsts {
urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.CORE, ActionType.DEACTIVATE),
new NssmfUrlInfo(EXTERNAL_CN_DEACTIVATE_URL, HttpMethod.PUT));
urlInfoMap.put(generateKey(ExecutorType.INTERNAL, null, ActionType.DEACTIVATE),
- new NssmfUrlInfo(INTERNAL_DEACTIVATE_URL, HttpMethod.PUT));
+ new NssmfUrlInfo(INTERNAL_DEACTIVATE_URL, HttpMethod.POST));
urlInfoMap.put(generateKey(ExecutorType.EXTERNAL, NetworkType.ACCESS, ActionType.TERMINATE),
new NssmfUrlInfo(EXTERNAL_AN_TERMINATE_URL, HttpMethod.DELETE));
diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProvider.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProvider.java
index 77662bf272..4df2fa16e1 100644
--- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProvider.java
+++ b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProvider.java
@@ -33,6 +33,9 @@ public interface AaiServiceProvider {
void invokeCreateServiceInstance(ServiceInstance nssiInstance, String globalSubscriberId, String serviceType,
String serviceInstanceId);
+ void invokeUpdateServiceInstance(ServiceInstance nssiInstance, String globalSubscriberId, String serviceType,
+ String serviceInstanceId);
+
ServiceInstance invokeGetServiceInstance(String globalSubscriberId, String serviceType, String serviceInstanceId);
void invokeDeleteServiceInstance(String globalSubscriberId, String serviceType, String serviceInstanceId);
diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProviderImpl.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProviderImpl.java
index 1d7c42aafe..688012efe7 100644
--- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProviderImpl.java
+++ b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProviderImpl.java
@@ -77,6 +77,14 @@ public class AaiServiceProviderImpl implements AaiServiceProvider {
}
@Override
+ public void invokeUpdateServiceInstance(ServiceInstance nssiInstance, String globalSubscriberId, String serviceType,
+ String serviceInstanceId) {
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business()
+ .customer(globalSubscriberId).serviceSubscription(serviceType).serviceInstance(serviceInstanceId));
+ aaiClientProvider.getAaiClient().update(uri, nssiInstance);
+ }
+
+ @Override
public ServiceInstance invokeGetServiceInstance(String globalSubscriberId, String serviceType,
String serviceInstanceId) {
AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business()
diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/ExternalNssmfManager.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/ExternalNssmfManager.java
index 96f2956b93..7c4bd50852 100644
--- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/ExternalNssmfManager.java
+++ b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/ExternalNssmfManager.java
@@ -100,7 +100,7 @@ public abstract class ExternalNssmfManager extends BaseNssmfManager {
restUtil.createServiceInstance(nssiInstance, serviceInfo);
} else if (ActionType.DEALLOCATE.equals(jobOperType)) {
// TODO
- // restUtil.deleteServiceInstance(serviceInfo);
+ restUtil.deleteServiceInstance(serviceInfo);
}
}
}
diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/ExternalAnNssmfManager.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/ExternalAnNssmfManager.java
index 20ad3d10b7..1af6d15c06 100644
--- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/ExternalAnNssmfManager.java
+++ b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/ExternalAnNssmfManager.java
@@ -43,7 +43,10 @@ import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.unMarshal;
public class ExternalAnNssmfManager extends ExternalNssmfManager {
- private Map<String, String> bodyParams = new HashMap<>(); // request body params
+ /**
+ * request body params
+ */
+ private Map<String, String> bodyParams = new HashMap<>();
@Override
protected String doWrapExtAllocateReqBody(NssmfAdapterNBIRequest nbiRequest) throws ApplicationException {
@@ -125,7 +128,23 @@ public class ExternalAnNssmfManager extends ExternalNssmfManager {
@Override
public RestResponse activateNssi(NssmfAdapterNBIRequest nbiRequest, String snssai) throws ApplicationException {
// TODO
- return null;
+ NssiResponse resp = new NssiResponse();
+ String nssiId = nbiRequest.getActDeActNssi().getNssiId();
+ resp.setJobId(UUID.randomUUID().toString());
+ resp.setNssiId(nssiId);
+
+ RestResponse returnRsp = new RestResponse();
+
+ returnRsp.setStatus(202);
+ returnRsp.setResponseContent(marshal(resp));
+
+ ResourceOperationStatus status =
+ new ResourceOperationStatus(serviceInfo.getNsiId(), resp.getJobId(), serviceInfo.getServiceUuid());
+ status.setResourceInstanceID(nssiId);
+ status.setOperType(actionType.toString());
+
+ updateDbStatus(status, returnRsp.getStatus(), JobStatus.FINISHED, NssmfAdapterUtil.getStatusDesc(actionType));
+ return returnRsp;
}
@Override
diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/ExternalCnNssmfManager.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/ExternalCnNssmfManager.java
index fb76adcce6..08c464e46b 100644
--- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/ExternalCnNssmfManager.java
+++ b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/ExternalCnNssmfManager.java
@@ -20,11 +20,14 @@
package org.onap.so.adapters.nssmf.manager.impl.external;
+import org.onap.aai.domain.yang.ServiceInstance;
+import org.onap.so.adapters.nssmf.enums.ActionType;
import org.onap.so.adapters.nssmf.enums.SelectionType;
import org.onap.so.adapters.nssmf.exceptions.ApplicationException;
import org.onap.so.adapters.nssmf.manager.impl.ExternalNssmfManager;
import org.onap.so.beans.nsmf.DeAllocateNssi;
import org.onap.so.beans.nsmf.NssmfAdapterNBIRequest;
+import org.onap.so.db.request.beans.ResourceOperationStatus;
import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.marshal;
public class ExternalCnNssmfManager extends ExternalNssmfManager {
@@ -45,6 +48,23 @@ public class ExternalCnNssmfManager extends ExternalNssmfManager {
}
@Override
+ protected void afterQueryJobStatus(ResourceOperationStatus status) {
+ super.afterQueryJobStatus(status);
+ ActionType jobOperType = ActionType.valueOf(status.getOperType());
+ if (Integer.parseInt(status.getProgress()) == 100) {
+ if (ActionType.ACTIVATE.equals(jobOperType)) {
+ ServiceInstance nssiInstance = restUtil.getServiceInstance(serviceInfo);
+ nssiInstance.setOrchestrationStatus("activated");
+ restUtil.updateServiceInstance(nssiInstance, serviceInfo);
+ } else if (ActionType.DEACTIVATE.equals(jobOperType)) {
+ ServiceInstance nssiInstance = restUtil.getServiceInstance(serviceInfo);
+ nssiInstance.setOrchestrationStatus("deactivated");
+ restUtil.updateServiceInstance(nssiInstance, serviceInfo);
+ }
+ }
+ }
+
+ @Override
protected SelectionType doQueryNSSISelectionCapability() {
return SelectionType.NSMF;
diff --git a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/util/RestUtil.java b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/util/RestUtil.java
index 7a86c5ba2b..60bf423ed8 100644
--- a/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/util/RestUtil.java
+++ b/adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/util/RestUtil.java
@@ -77,6 +77,11 @@ public class RestUtil {
serviceInfo.getSubscriptionServiceType(), serviceInfo.getNssiId());
}
+ public void updateServiceInstance(ServiceInstance serviceInstance, ServiceInfo serviceInfo) {
+ aaiSvcProv.invokeUpdateServiceInstance(serviceInstance, serviceInfo.getGlobalSubscriberId(),
+ serviceInfo.getSubscriptionServiceType(), serviceInfo.getNssiId());
+ }
+
public ServiceInstance getServiceInstance(ServiceInfo serviceInfo) {
return aaiSvcProv.invokeGetServiceInstance(serviceInfo.getGlobalSubscriberId(),
serviceInfo.getSubscriptionServiceType(), serviceInfo.getNssiId());
diff --git a/adapters/mso-nssmf-adapter/src/test/java/org/onap/so/adapters/nssmf/service/impl/NssmfManagerServiceImplTest.java b/adapters/mso-nssmf-adapter/src/test/java/org/onap/so/adapters/nssmf/service/impl/NssmfManagerServiceImplTest.java
index d7b3b03333..26904fa8a4 100644
--- a/adapters/mso-nssmf-adapter/src/test/java/org/onap/so/adapters/nssmf/service/impl/NssmfManagerServiceImplTest.java
+++ b/adapters/mso-nssmf-adapter/src/test/java/org/onap/so/adapters/nssmf/service/impl/NssmfManagerServiceImplTest.java
@@ -35,6 +35,7 @@ import org.mockito.stubbing.Answer;
import org.onap.so.adapters.nssmf.consts.NssmfAdapterConsts;
import org.onap.so.adapters.nssmf.entity.NssmfInfo;
import org.onap.so.adapters.nssmf.entity.TokenResponse;
+import org.onap.so.adapters.nssmf.enums.ActionType;
import org.onap.so.adapters.nssmf.enums.HttpMethod;
import org.onap.so.adapters.nssmf.util.RestUtil;
import org.onap.so.beans.nsmf.*;
@@ -358,6 +359,7 @@ public class NssmfManagerServiceImplTest {
operationStatus.setOperationId("4b45d919816ccaa2b762df5120f72067");
operationStatus.setResourceTemplateUUID("8ee5926d-720b-4bb2-86f9-d20e921c143b");
operationStatus.setServiceId("NSI-M-001-HDBNJ-NSMF-01-A-ZX");
+ operationStatus.setOperType(ActionType.ALLOCATE.toString());
NssmfAdapterNBIRequest nbiRequest = createNbiRequest();
nbiRequest.setResponseId("7512eb3feb5249eca5ddd742fedddd39");
@@ -376,8 +378,6 @@ public class NssmfManagerServiceImplTest {
assertEquals(allRes.getResponseDescriptor().getStatus(), "processing");
assertEquals(allRes.getResponseDescriptor().getResponseId(), "7512eb3feb5249eca5ddd742fedddd39");
- System.out.println(res);
-
}
@Test
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java
index 9123ac9f36..b84d2a8600 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/network/MsoNetworkAdapterImpl.java
@@ -31,6 +31,8 @@ import java.util.Map;
import java.util.Optional;
import javax.jws.WebService;
import javax.xml.ws.Holder;
+import org.apache.commons.lang3.mutable.MutableBoolean;
+import org.onap.logging.filter.base.ErrorCode;
import org.onap.so.adapters.network.beans.ContrailPolicyRef;
import org.onap.so.adapters.network.beans.ContrailPolicyRefSeq;
import org.onap.so.adapters.network.beans.ContrailSubnet;
@@ -47,7 +49,6 @@ import org.onap.so.db.catalog.data.repository.NetworkResourceCustomizationReposi
import org.onap.so.db.catalog.data.repository.NetworkResourceRepository;
import org.onap.so.db.catalog.utils.MavenLikeVersioning;
import org.onap.so.entity.MsoRequest;
-import org.onap.logging.filter.base.ErrorCode;
import org.onap.so.logger.LoggingAnchor;
import org.onap.so.logger.MessageEnum;
import org.onap.so.openstack.beans.HeatStatus;
@@ -150,7 +151,7 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
Holder<String> networkFqdn = new Holder<>();
createNetwork(cloudSiteId, tenantId, networkType, modelCustomizationUuid, networkName, physicalNetworkName,
vlans, null, shared, external, failIfExists, backout, subnets, null, null, msoRequest, networkId,
- neutronNetworkId, networkFqdn, subnetIdMap, rollback, true);
+ neutronNetworkId, networkFqdn, subnetIdMap, rollback, true, new MutableBoolean());
}
@Deprecated
@@ -164,7 +165,7 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
throws NetworkException {
createNetwork(cloudSiteId, tenantId, networkType, modelCustomizationUuid, networkName, null, null, routeTargets,
shared, external, failIfExists, backout, subnets, policyFqdns, routeTableFqdns, msoRequest, networkId,
- neutronNetworkId, networkFqdn, subnetIdMap, rollback, true);
+ neutronNetworkId, networkFqdn, subnetIdMap, rollback, true, new MutableBoolean());
}
/**
@@ -195,13 +196,14 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
String shared, String external, Boolean failIfExists, Boolean backout, List<Subnet> subnets,
List<String> policyFqdns, List<String> routeTableFqdns, MsoRequest msoRequest, Holder<String> networkId,
Holder<String> neutronNetworkId, Holder<String> networkFqdn, Holder<Map<String, String>> subnetIdMap,
- Holder<NetworkRollback> rollback, Boolean pollForCompletion) throws NetworkException {
+ Holder<NetworkRollback> rollback, Boolean pollForCompletion, MutableBoolean isOs3Nw)
+ throws NetworkException {
logger.debug("*** CREATE Network: {} of type {} in {}/{}", networkName, networkType, cloudSiteId, tenantId);
// Will capture execution time for metrics
long startTime = System.currentTimeMillis();
- // Build a default rollback object (no actions performed)
+ // Build a default rollback object (no actions performed) //TODO remove
NetworkRollback networkRollback = new NetworkRollback();
networkRollback.setCloudId(cloudSiteId);
networkRollback.setTenantId(tenantId);
@@ -241,13 +243,13 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
template = template.replaceAll("\r\n", "\n");
boolean os3template = false;
- String os3nw = OS3_NW;
- os3nw = environment.getProperty(OS3_NW_PROPERTY, OS3_NW);
+ String os3nw = environment.getProperty(OS3_NW_PROPERTY, OS3_NW);
if (template.contains(os3nw))
os3template = true;
+ isOs3Nw.setValue(os3template);
// First, look up to see if the Network already exists (by name).
// For HEAT orchestration of networks, the stack name will always match the network name
StackInfo heatStack = null;
@@ -280,20 +282,7 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
}
Map<String, Object> outputs = heatStack.getOutputs();
- for (Map.Entry<String, Object> entry : outputs.entrySet()) {
- String key = entry.getKey();
- if (key != null && key.startsWith("subnet")) {
- if (os3template) // one subnet_id output
- {
- Map<String, String> map = getSubnetUUId(key, outputs, subnets);
- sMap.putAll(map);
- } else // multiples subnet_%aaid% outputs
- {
- String subnetUUId = (String) outputs.get(key);
- sMap.put(key.substring("subnet_id_".length()), subnetUUId);
- }
- }
- }
+ sMap = buildSubnetMap(outputs, subnets, os3template);
}
subnetIdMap.value = sMap;
logger.warn("{} {} Found Existing network stack, status={} networkName={} for {}/{}",
@@ -390,20 +379,7 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
Map<String, Object> outputs = heatStack.getOutputs();
Map<String, String> sMap = new HashMap<>();
if (outputs != null) {
- for (Map.Entry<String, Object> entry : outputs.entrySet()) {
- String key = entry.getKey();
- if (key != null && key.startsWith("subnet")) {
- if (os3template) // one subnet output expected
- {
- Map<String, String> map = getSubnetUUId(key, outputs, subnets);
- sMap.putAll(map);
- } else // multiples subnet_%aaid% outputs allowed
- {
- String subnetUUId = (String) outputs.get(key);
- sMap.put(key.substring("subnet_id_".length()), subnetUUId);
- }
- }
- }
+ sMap = buildSubnetMap(outputs, subnets, os3template);
networkRollback.setNeutronNetworkId((String) outputs.get(NETWORK_ID));
}
subnetIdMap.value = sMap;
@@ -686,20 +662,7 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
Map<String, Object> outputs = heatStack.getOutputs();
Map<String, String> sMap = new HashMap<>();
if (outputs != null) {
- for (Map.Entry<String, Object> entry : outputs.entrySet()) {
- String key = entry.getKey();
- if (key != null && key.startsWith("subnet")) {
- if (os3template) // one subnet output expected
- {
- Map<String, String> map = getSubnetUUId(key, outputs, subnets);
- sMap.putAll(map);
- } else // multiples subnet_%aaid% outputs allowed
- {
- String subnetUUId = (String) outputs.get(key);
- sMap.put(key.substring("subnet_id_".length()), subnetUUId);
- }
- }
- }
+ sMap = buildSubnetMap(outputs, subnets, os3template);
}
subnetIdMap.value = sMap;
@@ -1361,7 +1324,8 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
return heatTemplate;
}
- private Map<String, String> getSubnetUUId(String key, Map<String, Object> outputs, List<Subnet> subnets) {
+ // TODO remove
+ public Map<String, String> getSubnetUUId(String key, Map<String, Object> outputs, List<Subnet> subnets) {
Map<String, String> sMap = new HashMap<>();
@@ -1418,4 +1382,24 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
return updatedTemplate;
}
+ public Map<String, String> buildSubnetMap(Map<String, Object> outputs, List<Subnet> subnets, boolean os3template) {
+
+ Map<String, String> sMap = new HashMap<>();
+ for (Map.Entry<String, Object> entry : outputs.entrySet()) {
+ String key = entry.getKey();
+ if (key != null && key.startsWith("subnet")) {
+ if (os3template) // one subnet_id output
+ {
+ Map<String, String> map = getSubnetUUId(key, outputs, subnets);
+ sMap.putAll(map);
+ } else // multiples subnet_%aaid% outputs
+ {
+ String subnetUUId = (String) outputs.get(key);
+ sMap.put(key.substring("subnet_id_".length()), subnetUUId);
+ }
+ }
+ }
+ return sMap;
+ }
+
}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/TaskServices.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/TaskServices.java
index 4e0c4ad8a6..bd71474aab 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/TaskServices.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/TaskServices.java
@@ -28,8 +28,6 @@ import org.onap.so.adapters.tasks.orchestration.PollService;
import org.onap.so.adapters.tasks.orchestration.RollbackService;
import org.onap.so.adapters.tasks.orchestration.StackService;
import org.onap.so.utils.ExternalTaskServiceUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;
@@ -38,8 +36,6 @@ import org.springframework.stereotype.Component;
@Profile("!test")
public class TaskServices {
- private static final Logger logger = LoggerFactory.getLogger(TaskServices.class);
-
@Autowired
private ExternalTaskServiceUtils externalTaskServiceUtils;
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/CreateAAIInventory.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/CreateAAIInventory.java
index 14d0b0afc4..0dd7635506 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/CreateAAIInventory.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/CreateAAIInventory.java
@@ -70,9 +70,7 @@ public class CreateAAIInventory {
List<String> oobMgtNetNames = new ArrayList<>();
- HeatBridgeApi heatBridgeClient = new HeatBridgeImpl(new AAIResourcesClient(), cloudIdentity,
- cloudInformation.getOwner(), cloudInformation.getRegionId(), cloudSite.getRegionId(),
- cloudInformation.getTenantId(), cloudInformation.getNodeType());
+ HeatBridgeApi heatBridgeClient = createClient(getAaiClient(), cloudSite, cloudIdentity, cloudInformation);
heatBridgeClient.authenticate();
@@ -128,6 +126,12 @@ public class CreateAAIInventory {
heatBridgeClient.submitToAai(env.getProperty("heatBridgeDryrun", Boolean.class, false));
}
+ public HeatBridgeApi createClient(AAIResourcesClient client, CloudSite cloudSite, CloudIdentity cloudIdentity,
+ CloudInformation cloudInformation) {
+ return new HeatBridgeImpl(client, cloudIdentity, cloudInformation.getOwner(), cloudInformation.getRegionId(),
+ cloudSite.getRegionId(), cloudInformation.getTenantId(), cloudInformation.getNodeType());
+ }
+
protected AAIResourcesClient getAaiClient() {
if (aaiClient == null)
return new AAIResourcesClient();
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/DeleteAAIInventory.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/DeleteAAIInventory.java
index f904788de3..f9bbf4a75d 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/DeleteAAIInventory.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/inventory/DeleteAAIInventory.java
@@ -59,13 +59,17 @@ public class DeleteAAIInventory {
return;
}
CloudIdentity cloudIdentity = cloudSite.getIdentityService();
- HeatBridgeApi heatBridgeClient = new HeatBridgeImpl(new AAIResourcesClient(), cloudIdentity,
- cloudInformation.getOwner(), cloudInformation.getRegionId(), cloudSite.getRegionId(),
- cloudInformation.getTenantId(), cloudInformation.getNodeType());
+ HeatBridgeApi heatBridgeClient = createClient(getAaiClient(), cloudSite, cloudIdentity, cloudInformation);
heatBridgeClient.authenticate();
heatBridgeClient.deleteVfModuleData(cloudInformation.getVnfId(), cloudInformation.getVfModuleId());
}
+ public HeatBridgeApi createClient(AAIResourcesClient client, CloudSite cloudSite, CloudIdentity cloudIdentity,
+ CloudInformation cloudInformation) {
+ return new HeatBridgeImpl(client, cloudIdentity, cloudInformation.getOwner(), cloudInformation.getRegionId(),
+ cloudSite.getRegionId(), cloudInformation.getTenantId(), cloudInformation.getNodeType());
+ }
+
protected AAIResourcesClient getAaiClient() {
if (aaiClient == null)
return new AAIResourcesClient();
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/PollService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/PollService.java
index ddbda5da62..14df4e6941 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/PollService.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/PollService.java
@@ -33,16 +33,31 @@ import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.commons.lang3.mutable.MutableBoolean;
import org.camunda.bpm.client.task.ExternalTask;
import org.camunda.bpm.client.task.ExternalTaskService;
+import org.onap.so.adapters.network.MsoNetworkAdapterImpl;
import org.onap.so.adapters.nwrest.CreateNetworkRequest;
+import org.onap.so.adapters.nwrest.CreateNetworkResponse;
+import org.onap.so.adapters.nwrest.DeleteNetworkRequest;
+import org.onap.so.adapters.nwrest.DeleteNetworkResponse;
+import org.onap.so.adapters.nwrest.UpdateNetworkRequest;
+import org.onap.so.adapters.nwrest.UpdateNetworkResponse;
+import org.onap.so.adapters.vnf.MsoVnfAdapterImpl;
+import org.onap.so.adapters.vnf.VnfAdapterUtils;
import org.onap.so.adapters.vnfrest.CreateVfModuleRequest;
+import org.onap.so.adapters.vnfrest.CreateVfModuleResponse;
import org.onap.so.adapters.vnfrest.CreateVolumeGroupRequest;
+import org.onap.so.adapters.vnfrest.CreateVolumeGroupResponse;
import org.onap.so.adapters.vnfrest.DeleteVfModuleRequest;
+import org.onap.so.adapters.vnfrest.DeleteVfModuleResponse;
import org.onap.so.adapters.vnfrest.DeleteVolumeGroupRequest;
-import org.onap.so.adapters.nwrest.DeleteNetworkRequest;
-import org.onap.so.adapters.nwrest.UpdateNetworkRequest;
-import org.onap.so.adapters.vnf.VnfAdapterUtils;
+import org.onap.so.adapters.vnfrest.DeleteVolumeGroupResponse;
+import org.onap.so.adapters.vnfrest.VfModuleRollback;
+import org.onap.so.adapters.vnfrest.VolumeGroupRollback;
import org.onap.so.logging.tasks.AuditMDCSetup;
+import org.onap.so.openstack.beans.NetworkRollback;
+import org.onap.so.openstack.beans.StackInfo;
+import org.onap.so.openstack.beans.VnfRollback;
import org.onap.so.openstack.exceptions.MsoException;
+import org.onap.so.openstack.mappers.StackInfoMapper;
import org.onap.so.openstack.utils.MsoHeatUtils;
import org.onap.so.utils.ExternalTaskUtils;
import org.onap.so.utils.RetrySequenceLevel;
@@ -58,6 +73,12 @@ public class PollService extends ExternalTaskUtils {
private static final Logger logger = LoggerFactory.getLogger(PollService.class);
@Autowired
+ private MsoVnfAdapterImpl vnfAdapterImpl;
+
+ @Autowired
+ private MsoNetworkAdapterImpl networkAdapterImpl;
+
+ @Autowired
private MsoHeatUtils msoHeatUtils;
@Autowired
@@ -76,45 +97,66 @@ public class PollService extends ExternalTaskUtils {
Map<String, Object> variables = new HashMap<>();
MutableBoolean success = new MutableBoolean();
String errorMessage = null;
+ Optional<String> response = Optional.empty();
+ boolean isMulticloud = false;
try {
String xmlRequest = externalTask.getVariable("openstackAdapterTaskRequest");
if (xmlRequest != null) {
Optional<String> requestType = findRequestType(xmlRequest);
if ("createVolumeGroupRequest".equals(requestType.get())) {
- determineCreateVolumeGroupStatus(xmlRequest, externalTask, success);
+ CreateVolumeGroupRequest req =
+ JAXB.unmarshal(new StringReader(xmlRequest), CreateVolumeGroupRequest.class);
+ isMulticloud = vnfAdapterUtils.isMulticloudMode(null, req.getCloudSiteId());
+ response = determineCreateVolumeGroupStatus(req, externalTask, success, isMulticloud);
} else if ("createVfModuleRequest".equals(requestType.get())) {
- determineCreateVfModuleStatus(xmlRequest, externalTask, success);
+ CreateVfModuleRequest req =
+ JAXB.unmarshal(new StringReader(xmlRequest), CreateVfModuleRequest.class);
+ isMulticloud = vnfAdapterUtils.isMulticloudMode(null, req.getCloudSiteId());
+ response = determineCreateVfModuleStatus(req, externalTask, success, isMulticloud);
} else if ("deleteVfModuleRequest".equals(requestType.get())) {
logger.debug("Executing External Task Poll Service for Delete Vf Module");
+ String stackId = externalTask.getVariable("stackId");
DeleteVfModuleRequest req =
JAXB.unmarshal(new StringReader(xmlRequest), DeleteVfModuleRequest.class);
- boolean isMulticloud = vnfAdapterUtils.isMulticloudMode(null, req.getCloudSiteId());
+ isMulticloud = vnfAdapterUtils.isMulticloudMode(null, req.getCloudSiteId());
if (!isMulticloud) {
int timeoutMinutes = msoHeatUtils.getVfHeatTimeoutValue(req.getModelCustomizationUuid(), false);
- pollDeleteResource(timeoutMinutes, req.getCloudSiteId(), req.getTenantId(), externalTask,
- success);
- } else {
- success.setTrue();
+ StackInfo stack = pollDeleteResource(timeoutMinutes, req.getCloudSiteId(), req.getTenantId(),
+ stackId, success);
+ DeleteVfModuleResponse deleteResponse =
+ new DeleteVfModuleResponse(req.getVnfId(), req.getVfModuleId(), Boolean.TRUE,
+ req.getMessageId(), vnfAdapterImpl.copyStringOutputs(stack.getOutputs()));
+ response = Optional.of(deleteResponse.toXmlString());
}
} else if ("deleteVolumeGroupRequest".equals(requestType.get())) {
logger.debug("Executing External Task Poll Service for Delete Volume Group");
+ String stackId = externalTask.getVariable("stackId");
DeleteVolumeGroupRequest req =
JAXB.unmarshal(new StringReader(xmlRequest), DeleteVolumeGroupRequest.class);
- boolean isMulticloud = vnfAdapterUtils.isMulticloudMode(null, req.getCloudSiteId());
+ isMulticloud = vnfAdapterUtils.isMulticloudMode(null, req.getCloudSiteId());
if (!isMulticloud) {
- pollDeleteResource(118, req.getCloudSiteId(), req.getTenantId(), externalTask, success);
- } else {
- success.setTrue();
+ pollDeleteResource(118, req.getCloudSiteId(), req.getTenantId(), stackId, success);
+ DeleteVolumeGroupResponse deleteResponse =
+ new DeleteVolumeGroupResponse(true, req.getMessageId());
+ response = Optional.of(deleteResponse.toXmlString());
}
} else if ("createNetworkRequest".equals(requestType.get())) {
- determineCreateNetworkStatus(xmlRequest, externalTask, success);
+ CreateNetworkRequest req = JAXB.unmarshal(new StringReader(xmlRequest), CreateNetworkRequest.class);
+ response = determineCreateNetworkStatus(req, externalTask, success);
} else if ("deleteNetworkRequest".equals(requestType.get())) {
logger.debug("Executing External Task Poll Service for Delete Network");
+ String stackId = externalTask.getVariable("stackId");
DeleteNetworkRequest req = JAXB.unmarshal(new StringReader(xmlRequest), DeleteNetworkRequest.class);
- pollDeleteResource(118, req.getCloudSiteId(), req.getTenantId(), externalTask, success);
+ pollDeleteResource(118, req.getCloudSiteId(), req.getTenantId(), stackId, success);
+ DeleteNetworkResponse deleteResponse =
+ new DeleteNetworkResponse(req.getNetworkId(), true, req.getMessageId());
+ response = Optional.of(deleteResponse.toXmlString());
} else if ("updateNetworkRequest".equals(requestType.get())) {
UpdateNetworkRequest req = JAXB.unmarshal(new StringReader(xmlRequest), UpdateNetworkRequest.class);
pollUpdateResource(req.getCloudSiteId(), req.getTenantId(), externalTask, success);
+ UpdateNetworkResponse updateResponse =
+ new UpdateNetworkResponse(req.getNetworkId(), null, null, req.getMessageId());
+ response = Optional.of(updateResponse.toXmlString());
}
}
} catch (Exception e) {
@@ -123,6 +165,12 @@ public class PollService extends ExternalTaskUtils {
variables.put("openstackAdapterErrorMessage", errorMessage);
}
+ if (isMulticloud) {
+ success.setTrue();
+ }
+ if (response.isPresent()) {
+ variables.put("WorkflowResponse", response.get());
+ }
variables.put("OpenstackPollSuccess", success.booleanValue());
if (success.isTrue()) {
externalTaskService.complete(externalTask, variables);
@@ -146,76 +194,110 @@ public class PollService extends ExternalTaskUtils {
}
}
- private void determineCreateVolumeGroupStatus(String xmlRequest, ExternalTask externalTask, MutableBoolean success)
- throws MsoException {
- CreateVolumeGroupRequest req = JAXB.unmarshal(new StringReader(xmlRequest), CreateVolumeGroupRequest.class);
- boolean isMulticloud = vnfAdapterUtils.isMulticloudMode(null, req.getCloudSiteId());
- if (!isMulticloud) {
- boolean pollRollbackStatus = externalTask.getVariable("PollRollbackStatus");
- if (pollRollbackStatus) {
- logger.debug("Executing External Task Poll Service for Rollback Create Volume Group");
- pollDeleteResource(118, req.getCloudSiteId(), req.getTenantId(), externalTask, success);
- } else {
- int timeoutMinutes = msoHeatUtils.getVfHeatTimeoutValue(req.getModelCustomizationUuid(), true);
- pollCreateResource(timeoutMinutes, req.getCloudSiteId(), req.getTenantId(), externalTask, success);
+ private Optional<String> determineCreateVolumeGroupStatus(CreateVolumeGroupRequest req, ExternalTask externalTask,
+ MutableBoolean success, boolean isMulticloud) throws MsoException {
+ boolean pollRollbackStatus = externalTask.getVariable("PollRollbackStatus");
+ String stackId = externalTask.getVariable("stackId");
+ if (pollRollbackStatus) {
+ logger.debug("Executing External Task Poll Service for Rollback Volume Group");
+ if (!isMulticloud) {
+ pollDeleteResource(118, req.getCloudSiteId(), req.getTenantId(), stackId, success);
}
+ return Optional.empty();
} else {
- success.setTrue();
+ logger.debug("Executing External Task Poll Service for Create Volume Group");
+ Map<String, String> outputs = new HashMap<String, String>();
+ if (!isMulticloud) {
+ int timeoutMinutes = msoHeatUtils.getVfHeatTimeoutValue(req.getModelCustomizationUuid(), true);
+ StackInfo stack =
+ pollCreateResource(timeoutMinutes, req.getCloudSiteId(), req.getTenantId(), stackId, success);
+ outputs = vnfAdapterImpl.copyStringOutputs(stack.getOutputs());
+ }
+ VolumeGroupRollback rb = new VolumeGroupRollback(req.getVolumeGroupId(), stackId, true, req.getTenantId(),
+ req.getCloudOwner(), req.getCloudSiteId(), req.getMsoRequest(), req.getMessageId());
+ CreateVolumeGroupResponse createResponse = new CreateVolumeGroupResponse(req.getVolumeGroupId(), stackId,
+ true, outputs, rb, req.getMessageId());
+ return Optional.of(createResponse.toXmlString());
}
}
- private void determineCreateVfModuleStatus(String xmlRequest, ExternalTask externalTask, MutableBoolean success)
- throws MsoException {
- CreateVfModuleRequest req = JAXB.unmarshal(new StringReader(xmlRequest), CreateVfModuleRequest.class);
- boolean isMulticloud = vnfAdapterUtils.isMulticloudMode(null, req.getCloudSiteId());
- if (!isMulticloud) {
- boolean pollRollbackStatus = externalTask.getVariable("PollRollbackStatus");
- int timeoutMinutes = msoHeatUtils.getVfHeatTimeoutValue(req.getModelCustomizationUuid(), false);
- if (pollRollbackStatus) {
- logger.debug("Executing External Task Poll Service for Rollback Create Vf Module");
- pollDeleteResource(timeoutMinutes, req.getCloudSiteId(), req.getTenantId(), externalTask, success);
- } else {
- logger.debug("Executing External Task Poll Service for Create Vf Module");
- pollCreateResource(timeoutMinutes, req.getCloudSiteId(), req.getTenantId(), externalTask, success);
+ private Optional<String> determineCreateVfModuleStatus(CreateVfModuleRequest req, ExternalTask externalTask,
+ MutableBoolean success, boolean isMulticloud) throws MsoException {
+ String stackId = externalTask.getVariable("stackId");
+ boolean pollRollbackStatus = externalTask.getVariable("PollRollbackStatus");
+ int timeoutMinutes = msoHeatUtils.getVfHeatTimeoutValue(req.getModelCustomizationUuid(), false);
+ if (pollRollbackStatus) {
+ logger.debug("Executing External Task Poll Service for Rollback Vf Module");
+ if (!isMulticloud) {
+ pollDeleteResource(timeoutMinutes, req.getCloudSiteId(), req.getTenantId(), stackId, success);
}
+ return Optional.empty();
} else {
- success.setTrue();
+ logger.debug("Executing External Task Poll Service for Create Vf Module");
+ Map<String, String> outputs = new HashMap<String, String>();
+ if (!isMulticloud) {
+ StackInfo stack =
+ pollCreateResource(timeoutMinutes, req.getCloudSiteId(), req.getTenantId(), stackId, success);
+ outputs = vnfAdapterImpl.copyStringOutputs(stack.getOutputs());
+ }
+ VfModuleRollback modRollback = new VfModuleRollback(buildVnfRollback(req, stackId, isMulticloud),
+ req.getVfModuleId(), stackId, req.getMessageId());
+ CreateVfModuleResponse createResponse = new CreateVfModuleResponse(req.getVnfId(), req.getVfModuleId(),
+ stackId, Boolean.TRUE, outputs, modRollback, req.getMessageId());
+ return Optional.of(createResponse.toXmlString());
}
}
- private void determineCreateNetworkStatus(String xmlRequest, ExternalTask externalTask, MutableBoolean success)
- throws MsoException {
- CreateNetworkRequest req = JAXB.unmarshal(new StringReader(xmlRequest), CreateNetworkRequest.class);
+ private Optional<String> determineCreateNetworkStatus(CreateNetworkRequest req, ExternalTask externalTask,
+ MutableBoolean success) throws MsoException {
+ String stackId = externalTask.getVariable("stackId");
boolean pollRollbackStatus = externalTask.getVariable("PollRollbackStatus");
int timeoutMinutes =
msoHeatUtils.getNetworkHeatTimeoutValue(req.getModelCustomizationUuid(), req.getNetworkType());
if (pollRollbackStatus) {
- logger.debug("Executing External Task Poll Service for Rollback Create Network");
- pollDeleteResource(timeoutMinutes, req.getCloudSiteId(), req.getTenantId(), externalTask, success);
+ logger.debug("Executing External Task Poll Service for Rollback Network");
+ pollDeleteResource(timeoutMinutes, req.getCloudSiteId(), req.getTenantId(), stackId, success);
+ return Optional.empty();
} else {
logger.debug("Executing External Task Poll Service for Create Network");
- pollCreateResource(timeoutMinutes, req.getCloudSiteId(), req.getTenantId(), externalTask, success);
+ boolean os3Nw = externalTask.getVariable("os3Nw");
+ StackInfo stack =
+ pollCreateResource(timeoutMinutes, req.getCloudSiteId(), req.getTenantId(), stackId, success);
+ String networkFqdn = "";
+ String neutronNetworkId = "";
+ Map<String, String> subnetMap = new HashMap<>();
+ if (stack.getOutputs() != null) {
+ networkFqdn = (String) stack.getOutputs().get("network_fqdn");
+ neutronNetworkId = (String) stack.getOutputs().get("network_id");
+ subnetMap = networkAdapterImpl.buildSubnetMap(stack.getOutputs(), req.getSubnets(), os3Nw);
+ }
+ CreateNetworkResponse response = new CreateNetworkResponse(req.getNetworkId(), neutronNetworkId, stackId,
+ networkFqdn, true, subnetMap, buildNetworkRollback(req, stackId), req.getMessageId());
+ return Optional.of(response.toXmlString());
+
}
}
- private void pollCreateResource(int pollingTimeout, String cloudSiteId, String tenantId, ExternalTask externalTask,
+ private StackInfo pollCreateResource(int pollingTimeout, String cloudSiteId, String tenantId, String stackId,
MutableBoolean success) throws MsoException {
- Stack currentStack = createCurrentStack(externalTask.getVariable("stackId"));
+ Stack currentStack = createCurrentStack(stackId);
Stack stack = msoHeatUtils.pollStackForStatus(pollingTimeout, currentStack, "CREATE_IN_PROGRESS", cloudSiteId,
tenantId, false);
msoHeatUtils.postProcessStackCreate(stack, false, 0, false, cloudSiteId, tenantId, null);
success.setTrue();
+ return new StackInfoMapper(stack).map();
}
- private void pollDeleteResource(int pollingTimeout, String cloudSiteId, String tenantId, ExternalTask externalTask,
+ private StackInfo pollDeleteResource(int pollingTimeout, String cloudSiteId, String tenantId, String stackId,
MutableBoolean success) throws MsoException {
- Stack currentStack = createCurrentStack(externalTask.getVariable("stackId"));
+ Stack currentStack = createCurrentStack(stackId);
Stack stack = msoHeatUtils.pollStackForStatus(pollingTimeout, currentStack, "DELETE_IN_PROGRESS", cloudSiteId,
tenantId, true);
if (stack != null) { // if stack is null it was not found and no need to do post process
msoHeatUtils.postProcessStackDelete(stack);
}
success.setTrue();
+ return new StackInfoMapper(stack).map();
}
private void pollUpdateResource(String cloudSiteId, String tenantId, ExternalTask externalTask,
@@ -251,4 +333,37 @@ public class PollService extends ExternalTaskUtils {
currentStack.setStackName(stackName);
return currentStack;
}
+
+ private VnfRollback buildVnfRollback(CreateVfModuleRequest req, String stackId, boolean isMulticloud) {
+ VnfRollback vfRollback = new VnfRollback();
+ vfRollback.setCloudSiteId(req.getCloudSiteId());
+ vfRollback.setCloudOwner(req.getCloudOwner());
+ vfRollback.setTenantId(req.getTenantId());
+ vfRollback.setMsoRequest(req.getMsoRequest());
+ vfRollback.setRequestType(req.getRequestType());
+ vfRollback.setVolumeGroupHeatStackId(req.getVolumeGroupStackId());
+ vfRollback.setBaseGroupHeatStackId(req.getBaseVfModuleStackId());
+ vfRollback.setIsBase(false);
+ vfRollback.setModelCustomizationUuid(req.getModelCustomizationUuid());
+ vfRollback.setVnfId(stackId);
+ vfRollback.setVnfCreated(true);
+ if (isMulticloud) {
+ vfRollback.setMode("CFY");
+ }
+
+ return vfRollback;
+ }
+
+ private NetworkRollback buildNetworkRollback(CreateNetworkRequest req, String stackId) {
+ NetworkRollback networkRollback = new NetworkRollback();
+ networkRollback.setCloudId(req.getCloudSiteId());
+ networkRollback.setTenantId(req.getTenantId());
+ networkRollback.setMsoRequest(req.getMsoRequest());
+ networkRollback.setModelCustomizationUuid(req.getModelCustomizationUuid());
+ networkRollback.setNetworkStackId(stackId);
+ networkRollback.setNetworkCreated(true);
+ networkRollback.setNetworkType(req.getNetworkType());
+
+ return networkRollback;
+ }
}
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/StackService.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/StackService.java
index 7be1620b0e..6b76c3af9a 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/StackService.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/tasks/orchestration/StackService.java
@@ -39,12 +39,9 @@ import org.onap.so.adapters.network.MsoNetworkAdapterImpl;
import org.onap.so.adapters.network.exceptions.NetworkException;
import org.onap.so.adapters.nwrest.ContrailNetwork;
import org.onap.so.adapters.nwrest.CreateNetworkRequest;
-import org.onap.so.adapters.nwrest.CreateNetworkResponse;
import org.onap.so.adapters.nwrest.DeleteNetworkRequest;
-import org.onap.so.adapters.nwrest.DeleteNetworkResponse;
import org.onap.so.adapters.nwrest.ProviderVlanNetwork;
import org.onap.so.adapters.nwrest.RollbackNetworkRequest;
-import org.onap.so.adapters.nwrest.RollbackNetworkResponse;
import org.onap.so.adapters.nwrest.UpdateNetworkRequest;
import org.onap.so.adapters.nwrest.UpdateNetworkResponse;
import org.onap.so.adapters.vnf.MsoVnfAdapterImpl;
@@ -52,15 +49,9 @@ import org.onap.so.adapters.vnf.MsoVnfPluginAdapterImpl;
import org.onap.so.adapters.vnf.VnfAdapterUtils;
import org.onap.so.adapters.vnf.exceptions.VnfException;
import org.onap.so.adapters.vnfrest.CreateVfModuleRequest;
-import org.onap.so.adapters.vnfrest.CreateVfModuleResponse;
import org.onap.so.adapters.vnfrest.CreateVolumeGroupRequest;
-import org.onap.so.adapters.vnfrest.CreateVolumeGroupResponse;
import org.onap.so.adapters.vnfrest.DeleteVfModuleRequest;
-import org.onap.so.adapters.vnfrest.DeleteVfModuleResponse;
import org.onap.so.adapters.vnfrest.DeleteVolumeGroupRequest;
-import org.onap.so.adapters.vnfrest.DeleteVolumeGroupResponse;
-import org.onap.so.adapters.vnfrest.VfModuleRollback;
-import org.onap.so.adapters.vnfrest.VolumeGroupRollback;
import org.onap.so.logging.tasks.AuditMDCSetup;
import org.onap.so.openstack.beans.NetworkRollback;
import org.onap.so.openstack.beans.RouteTarget;
@@ -94,7 +85,6 @@ public class StackService extends ExternalTaskUtils {
private static final String SHARED = "shared";
private static final String EXTERNAL = "external";
- // TODO set backout earlier in case of exception??
public void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
Map<String, Object> variables = new HashMap<>();
mdcSetup.setupMDC(externalTask);
@@ -102,7 +92,7 @@ public class StackService extends ExternalTaskUtils {
logger.debug("Starting External Task Stack Service. {}", xmlRequest);
MutableBoolean success = new MutableBoolean();
MutableBoolean backout = new MutableBoolean();
- String response = "";
+ MutableBoolean os3Nw = new MutableBoolean();
Holder<String> canonicalStackId = new Holder<>();
String errorMessage = "";
try {
@@ -117,26 +107,26 @@ public class StackService extends ExternalTaskUtils {
Holder<NetworkRollback> networkRollback = new Holder<>();
if ("createVolumeGroupRequest".equals(requestType.get())) {
logger.debug("Executing External Task Stack Service For Create Volume Group");
- response = createVolumeGroup(xmlRequest, outputs, vnfRollback, canonicalStackId, backout, success);
+ createVolumeGroup(xmlRequest, outputs, vnfRollback, canonicalStackId, backout, success);
} else if ("createVfModuleRequest".equals(requestType.get())) {
logger.debug("Executing External Task Stack Service For Create Vf Module");
- response = createVfModule(xmlRequest, outputs, vnfRollback, canonicalStackId, backout, success);
+ createVfModule(xmlRequest, outputs, vnfRollback, canonicalStackId, backout, success);
} else if ("deleteVfModuleRequest".equals(requestType.get())) {
logger.debug("Executing External Task Stack Service For Delete Vf Module");
- response = deleteVfModule(xmlRequest, outputs, vnfRollback, canonicalStackId, backout, success);
+ deleteVfModule(xmlRequest, outputs, vnfRollback, canonicalStackId, backout, success);
} else if ("deleteVolumeGroupRequest".equals(requestType.get())) {
logger.debug("Executing External Task Stack Service For Delete Volume Group");
- response = deleteVolumeGroup(xmlRequest, outputs, vnfRollback, canonicalStackId, backout, success);
+ deleteVolumeGroup(xmlRequest, outputs, vnfRollback, canonicalStackId, backout, success);
} else if ("createNetworkRequest".equals(requestType.get())) {
- response = createNetwork(xmlRequest, networkId, neutronNetworkId, networkFqdn, subnetIdMap,
- networkRollback, canonicalStackId, backout, success);
+ createNetwork(xmlRequest, networkId, neutronNetworkId, networkFqdn, subnetIdMap, networkRollback,
+ canonicalStackId, backout, success, os3Nw);
} else if ("deleteNetworkRequest".equals(requestType.get())) {
- response = deleteNetwork(xmlRequest, canonicalStackId, backout, success);
+ deleteNetwork(xmlRequest, canonicalStackId, backout, success);
} else if ("updateNetworkRequest".equals(requestType.get())) {
- response =
- updateNetwork(xmlRequest, subnetIdMap, networkRollback, canonicalStackId, backout, success);
+
+ updateNetwork(xmlRequest, subnetIdMap, networkRollback, canonicalStackId, backout, success);
} else if ("rollbackNetworkRequest".equals(requestType.get())) {
- response = rollbackNetwork(xmlRequest, canonicalStackId, backout, success);
+ rollbackNetwork(xmlRequest, canonicalStackId, backout, success);
}
}
} catch (Exception e) {
@@ -144,7 +134,6 @@ public class StackService extends ExternalTaskUtils {
errorMessage = e.getMessage();
}
variables.put("backout", backout.booleanValue());
- variables.put("WorkflowResponse", response);
variables.put("OpenstackInvokeSuccess", success.booleanValue());
variables.put("stackId", canonicalStackId.value);
variables.put("openstackAdapterErrorMessage", errorMessage);
@@ -152,6 +141,7 @@ public class StackService extends ExternalTaskUtils {
variables.put("rollbackPerformed", false);
variables.put("OpenstackRollbackSuccess", false);
variables.put("OpenstackPollSuccess", false);
+ variables.put("os3Nw", os3Nw.booleanValue());
if (success.isTrue()) {
externalTaskService.complete(externalTask, variables);
@@ -162,10 +152,9 @@ public class StackService extends ExternalTaskUtils {
}
}
- private String createVolumeGroup(String xmlRequest, Holder<Map<String, String>> outputs,
+ private void createVolumeGroup(String xmlRequest, Holder<Map<String, String>> outputs,
Holder<VnfRollback> vnfRollback, Holder<String> canonicalStackId, MutableBoolean backout,
MutableBoolean success) throws VnfException {
- Holder<String> stackId = new Holder<>();
CreateVolumeGroupRequest req = JAXB.unmarshal(new StringReader(xmlRequest), CreateVolumeGroupRequest.class);
String completeVnfVfModuleType = req.getVnfType() + "::" + req.getVfModuleType();
boolean isMulticloud = vnfAdapterUtils.isMulticloudMode(null, req.getCloudSiteId());
@@ -173,28 +162,19 @@ public class StackService extends ExternalTaskUtils {
vnfPluginImpl.createVfModule(req.getCloudSiteId(), req.getCloudOwner(), req.getTenantId(),
completeVnfVfModuleType, req.getVnfVersion(), "", req.getVolumeGroupName(), "", "VOLUME", null,
null, req.getModelCustomizationUuid(), req.getVolumeGroupParams(), false, true,
- req.getEnableBridge(), req.getMsoRequest(), stackId, outputs, vnfRollback);
+ req.getEnableBridge(), req.getMsoRequest(), canonicalStackId, outputs, vnfRollback);
} else {
vnfAdapterImpl.createVfModule(req.getCloudSiteId(), req.getCloudOwner(), req.getTenantId(),
completeVnfVfModuleType, req.getVnfVersion(), "", req.getVolumeGroupName(), "", "VOLUME", null,
null, req.getModelCustomizationUuid(), req.getVolumeGroupParams(), false, true,
- req.getEnableBridge(), req.getMsoRequest(), stackId, outputs, vnfRollback);
+ req.getEnableBridge(), req.getMsoRequest(), canonicalStackId, outputs, vnfRollback);
}
success.setTrue();
backout.setValue(!req.getSuppressBackout());
- VolumeGroupRollback rb = new VolumeGroupRollback(req.getVolumeGroupId(), stackId.value,
- vnfRollback.value.getVnfCreated(), req.getTenantId(), req.getCloudOwner(), req.getCloudSiteId(),
- req.getMsoRequest(), req.getMessageId());
- canonicalStackId.value = stackId.value;
- CreateVolumeGroupResponse createResponse = new CreateVolumeGroupResponse(req.getVolumeGroupId(), stackId.value,
- vnfRollback.value.getVnfCreated(), outputs.value, rb, req.getMessageId());
- return createResponse.toXmlString();
}
- private String createVfModule(String xmlRequest, Holder<Map<String, String>> outputs,
- Holder<VnfRollback> vnfRollback, Holder<String> canonicalStackId, MutableBoolean backout,
- MutableBoolean success) throws VnfException {
- Holder<String> stackId = new Holder<>();
+ private void createVfModule(String xmlRequest, Holder<Map<String, String>> outputs, Holder<VnfRollback> vnfRollback,
+ Holder<String> canonicalStackId, MutableBoolean backout, MutableBoolean success) throws VnfException {
CreateVfModuleRequest req = JAXB.unmarshal(new StringReader(xmlRequest), CreateVfModuleRequest.class);
String completeVnfVfModuleType = req.getVnfType() + "::" + req.getVfModuleType();
boolean isMulticloud = vnfAdapterUtils.isMulticloudMode(null, req.getCloudSiteId());
@@ -203,27 +183,20 @@ public class StackService extends ExternalTaskUtils {
completeVnfVfModuleType, req.getVnfVersion(), req.getVnfId(), req.getVfModuleName(),
req.getVfModuleId(), req.getRequestType(), req.getVolumeGroupStackId(),
req.getBaseVfModuleStackId(), req.getModelCustomizationUuid(), req.getVfModuleParams(), false,
- false, req.getEnableBridge(), req.getMsoRequest(), stackId, outputs, vnfRollback);
+ false, req.getEnableBridge(), req.getMsoRequest(), canonicalStackId, outputs, vnfRollback);
} else {
vnfAdapterImpl.createVfModule(req.getCloudSiteId(), req.getCloudOwner(), req.getTenantId(),
completeVnfVfModuleType, req.getVnfVersion(), req.getVnfId(), req.getVfModuleName(),
req.getVfModuleId(), req.getRequestType(), req.getVolumeGroupStackId(),
req.getBaseVfModuleStackId(), req.getModelCustomizationUuid(), req.getVfModuleParams(), false,
- false, req.getEnableBridge(), req.getMsoRequest(), stackId, outputs, vnfRollback);
+ false, req.getEnableBridge(), req.getMsoRequest(), canonicalStackId, outputs, vnfRollback);
}
success.setTrue();
backout.setValue(req.getBackout());
- canonicalStackId.value = stackId.value;
- VfModuleRollback modRollback =
- new VfModuleRollback(vnfRollback.value, req.getVfModuleId(), stackId.value, req.getMessageId());
- CreateVfModuleResponse createResponse = new CreateVfModuleResponse(req.getVnfId(), req.getVfModuleId(),
- stackId.value, Boolean.TRUE, outputs.value, modRollback, req.getMessageId());
- return createResponse.toXmlString();
}
- private String deleteVfModule(String xmlRequest, Holder<Map<String, String>> outputs,
- Holder<VnfRollback> vnfRollback, Holder<String> canonicalStackId, MutableBoolean backout,
- MutableBoolean success) throws VnfException {
+ private void deleteVfModule(String xmlRequest, Holder<Map<String, String>> outputs, Holder<VnfRollback> vnfRollback,
+ Holder<String> canonicalStackId, MutableBoolean backout, MutableBoolean success) throws VnfException {
backout.setFalse();
DeleteVfModuleRequest req = JAXB.unmarshal(new StringReader(xmlRequest), DeleteVfModuleRequest.class);
boolean isMulticloud = vnfAdapterUtils.isMulticloudMode(null, req.getCloudSiteId());
@@ -241,12 +214,9 @@ public class StackService extends ExternalTaskUtils {
} else {
canonicalStackId.value = req.getVfModuleStackId();
}
- DeleteVfModuleResponse deleteResponse = new DeleteVfModuleResponse(req.getVnfId(), req.getVfModuleId(),
- Boolean.TRUE, req.getMessageId(), outputs.value);
- return deleteResponse.toXmlString();
}
- private String deleteVolumeGroup(String xmlRequest, Holder<Map<String, String>> outputs,
+ private void deleteVolumeGroup(String xmlRequest, Holder<Map<String, String>> outputs,
Holder<VnfRollback> vnfRollback, Holder<String> canonicalStackId, MutableBoolean backout,
MutableBoolean success) throws VnfException {
backout.setFalse();
@@ -255,14 +225,12 @@ public class StackService extends ExternalTaskUtils {
req.getVolumeGroupStackId(), req.getMsoRequest(), false);
success.setTrue();
canonicalStackId.value = req.getVolumeGroupStackId();
- DeleteVolumeGroupResponse deleteResponse = new DeleteVolumeGroupResponse(true, req.getMessageId());
- return deleteResponse.toXmlString();
}
- private String createNetwork(String xmlRequest, Holder<String> networkId, Holder<String> neutronNetworkId,
+ private void createNetwork(String xmlRequest, Holder<String> networkId, Holder<String> neutronNetworkId,
Holder<String> networkFqdn, Holder<Map<String, String>> subnetIdMap,
Holder<NetworkRollback> networkRollback, Holder<String> canonicalStackId, MutableBoolean backout,
- MutableBoolean success) throws NetworkException {
+ MutableBoolean success, MutableBoolean os3) throws NetworkException {
CreateNetworkRequest req = JAXB.unmarshal(new StringReader(xmlRequest), CreateNetworkRequest.class);
HashMap<String, String> params = (HashMap<String, String>) req.getNetworkParams();
if (params == null) {
@@ -306,18 +274,13 @@ public class StackService extends ExternalTaskUtils {
networkAdapterImpl.createNetwork(req.getCloudSiteId(), req.getTenantId(), req.getNetworkType(),
req.getModelCustomizationUuid(), req.getNetworkName(), physicalNetworkName, vlans, routeTargets, shared,
external, req.getFailIfExists(), false, req.getSubnets(), fqdns, routeTable, req.getMsoRequest(),
- networkId, neutronNetworkId, networkFqdn, subnetIdMap, networkRollback, true);
+ networkId, neutronNetworkId, networkFqdn, subnetIdMap, networkRollback, true, os3);
success.setTrue();
backout.setValue(req.getBackout());
canonicalStackId.value = networkRollback.value.getNetworkStackId();
-
- CreateNetworkResponse response = new CreateNetworkResponse(req.getNetworkId(), neutronNetworkId.value,
- networkRollback.value.getNetworkStackId(), networkFqdn.value, networkRollback.value.getNetworkCreated(),
- subnetIdMap.value, networkRollback.value, req.getMessageId());
- return response.toXmlString();
}
- private String deleteNetwork(String xmlRequest, Holder<String> canonicalStackId, MutableBoolean backout,
+ private void deleteNetwork(String xmlRequest, Holder<String> canonicalStackId, MutableBoolean backout,
MutableBoolean success) throws NetworkException {
backout.setFalse();
DeleteNetworkRequest req = JAXB.unmarshal(new StringReader(xmlRequest), DeleteNetworkRequest.class);
@@ -328,13 +291,9 @@ public class StackService extends ExternalTaskUtils {
canonicalStackId.value = req.getNetworkStackId();
success.setTrue();
-
- DeleteNetworkResponse response =
- new DeleteNetworkResponse(req.getNetworkId(), networkDeleted.value, req.getMessageId());
- return response.toXmlString();
}
- private String rollbackNetwork(String xmlRequest, Holder<String> canonicalStackId, MutableBoolean backout,
+ private void rollbackNetwork(String xmlRequest, Holder<String> canonicalStackId, MutableBoolean backout,
MutableBoolean success) throws NetworkException {
backout.setFalse();
RollbackNetworkRequest req = JAXB.unmarshal(new StringReader(xmlRequest), RollbackNetworkRequest.class);
@@ -344,9 +303,6 @@ public class StackService extends ExternalTaskUtils {
canonicalStackId.value = rollback.getNetworkStackId();
success.setTrue();
-
- RollbackNetworkResponse response = new RollbackNetworkResponse(true, req.getMessageId());
- return response.toXmlString();
}
private String updateNetwork(String xmlRequest, Holder<Map<String, String>> subnetIdMap,
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapterImpl.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapterImpl.java
index 7acf953282..4ee6cf259e 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapterImpl.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfAdapterImpl.java
@@ -318,7 +318,7 @@ public class MsoVnfAdapterImpl {
return;
}
- private Map<String, String> copyStringOutputs(Map<String, Object> stackOutputs) {
+ public Map<String, String> copyStringOutputs(Map<String, Object> stackOutputs) {
Map<String, String> stringOutputs = new HashMap<>();
for (Map.Entry<String, Object> entry : stackOutputs.entrySet()) {
String key = entry.getKey();
@@ -408,6 +408,7 @@ public class MsoVnfAdapterImpl {
return stringMap;
}
+ // TODO remove rollback and outputs and polling
public void createVfModule(String cloudSiteId, String cloudOwner, String tenantId, String vnfType,
String vnfVersion, String genericVnfName, String vnfName, String vfModuleId, String requestType,
String volumeGroupHeatStackId, String baseVfHeatStackId, String modelCustomizationUuid,
@@ -464,6 +465,7 @@ public class MsoVnfAdapterImpl {
logger.debug("requestTypeString = " + requestTypeString + ", nestedStackId = " + nestedStackId
+ ", nestedBaseStackId = " + nestedBaseStackId);
+ // TODO remove
// Build a default rollback object (no actions performed)
VnfRollback vfRollback = new VnfRollback();
vfRollback.setCloudSiteId(cloudSiteId);
@@ -963,7 +965,7 @@ public class MsoVnfAdapterImpl {
vnfId.value = heatStack.getCanonicalName();
outputs.value = copyStringOutputs(heatStack.getOutputs());
- rollback.value = vfRollback;
+ rollback.value = vfRollback; // TODO remove
logger.debug("VF Module {} successfully created", vfModuleName);
} catch (Exception e) {
logger.debug("unhandled exception in create VF", e);
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java
index 9b20139969..0512912b9f 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java
@@ -61,9 +61,8 @@ import org.onap.aai.domain.yang.Pserver;
import org.onap.aai.domain.yang.Relationship;
import org.onap.aai.domain.yang.RelationshipList;
import org.onap.aai.domain.yang.SriovPf;
-import org.onap.aai.domain.yang.Subnets;
import org.onap.aai.domain.yang.SriovVf;
-import org.onap.aai.domain.yang.VfModule;
+import org.onap.aai.domain.yang.Subnets;
import org.onap.aai.domain.yang.Vlan;
import org.onap.aai.domain.yang.Vserver;
import org.onap.aaiclient.client.aai.AAIDSLQueryClient;
@@ -734,27 +733,15 @@ public class HeatBridgeImpl implements HeatBridgeApi {
Objects.requireNonNull(vnfId, "Null vnf-id!");
Objects.requireNonNull(vfModuleId, "Null vf-module-id!");
try {
- Optional<VfModule> vfModule = resourcesClient.get(AAIUriFactory
+ AAIResultWrapper vfModule = resourcesClient.get(AAIUriFactory
.createResourceUri(AAIFluentTypeBuilder.network().genericVnf(vnfId).vfModule(vfModuleId))
- .depth(Depth.ONE), NotFoundException.class).asBean(VfModule.class);
+ .depth(Depth.ONE), NotFoundException.class);
- AAIResultWrapper resultWrapper = new AAIResultWrapper(vfModule.get());
- Optional<Relationships> relationships = resultWrapper.getRelationships();
+ Optional<Relationships> relationships = vfModule.getRelationships();
logger.debug("VfModule contains relationships in AAI: {}", relationships.isPresent());
if (relationships.isPresent()) {
- List<AAIResourceUri> l3NetworkUris = relationships.get().getRelatedUris(Types.L3_NETWORK);
- logger.debug("L3Network contains {} relationships in AAI", l3NetworkUris.size());
-
- if (!l3NetworkUris.isEmpty()) {
- for (AAIResourceUri l3NetworkUri : l3NetworkUris) {
- if (env.getProperty("heatBridgeDryrun", Boolean.class, true)) {
- logger.debug("Would delete L3Network: {}", l3NetworkUri.build().toString());
- } else {
- resourcesClient.delete(l3NetworkUri);
- }
- }
- }
+ deleteL3Networks(relationships.get());
List<AAIResourceUri> vserverUris = relationships.get().getRelatedUris(Types.VSERVER);
logger.debug("VServer contains {} relationships in AAI", vserverUris.size());
@@ -782,6 +769,21 @@ public class HeatBridgeImpl implements HeatBridgeApi {
}
}
+ protected void deleteL3Networks(Relationships relationships) {
+ List<AAIResourceUri> l3NetworkUris = relationships.getRelatedUris(Types.L3_NETWORK);
+ logger.debug("L3Network contains {} relationships in AAI", l3NetworkUris.size());
+
+ if (!l3NetworkUris.isEmpty()) {
+ for (AAIResourceUri l3NetworkUri : l3NetworkUris) {
+ if (env.getProperty("heatBridgeDryrun", Boolean.class, true)) {
+ logger.debug("Would delete L3Network: {}", l3NetworkUri.build().toString());
+ } else {
+ resourcesClient.delete(l3NetworkUri);
+ }
+ }
+ }
+ }
+
private void createTransactionToDeleteSriovPfFromPserver(List<AAIResourceUri> vserverUris) {
Map<String, List<String>> pserverToPciIdMap = getPserverToPciIdMap(vserverUris);
for (Map.Entry<String, List<String>> entry : pserverToPciIdMap.entrySet()) {
diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tasks/orchestration/StackServiceTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tasks/orchestration/StackServiceTest.java
index afe7e17855..7a00cfe145 100644
--- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tasks/orchestration/StackServiceTest.java
+++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/tasks/orchestration/StackServiceTest.java
@@ -89,14 +89,15 @@ public class StackServiceTest {
Map<String, Object> variables = new HashMap<>();
variables.put("backout", true);
- variables.put("WorkflowResponse", "");
variables.put("OpenstackInvokeSuccess", true);
variables.put("stackId", null);
- variables.put("openstackAdapterErrorMessage", null);
+ variables.put("openstackAdapterErrorMessage", "");
variables.put("PollRollbackStatus", false);
variables.put("rollbackPerformed", false);
variables.put("OpenstackRollbackSuccess", false);
variables.put("OpenstackPollSuccess", false);
+ variables.put("os3Nw", false);
+
Mockito.verify(vnfAdapterImpl, Mockito.times(1)).createVfModule(Mockito.eq("regionOne"),
Mockito.eq("CloudOwner"), Mockito.eq("0422ffb57ba042c0800a29dc85ca70f8"),