Fix issue of writing NSSI to AAI for ExternalNssmfManager 39/114239/1
authorEnbo Wang <wangenbo@huawei.com>
Mon, 26 Oct 2020 13:34:42 +0000 (21:34 +0800)
committerEnbo Wang <wangenbo@huawei.com>
Mon, 26 Oct 2020 13:34:42 +0000 (21:34 +0800)
Issue-ID: SO-3341
Signed-off-by: Enbo Wang <wangenbo@huawei.com>
Change-Id: I242b48bee5420bc2a346240baa6056e31acb006c

adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProvider.java
adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/extclients/aai/AaiServiceProviderImpl.java
adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/ExternalNssmfManager.java
adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/manager/impl/external/ExternalAnNssmfManager.java
adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/util/RestUtil.java
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeallocateNSSI.groovy

index 665b111..dacab3b 100644 (file)
@@ -33,4 +33,5 @@ public interface AaiServiceProvider {
     void invokeCreateServiceInstance(ServiceInstance nssiInstance, String globalSubscriberId, String serviceType,
             String serviceInstanceId);
 
+    ServiceInstance invokeGetServiceInstance(String globalSubscriberId, String serviceType, String serviceInstanceId);
 }
index b972517..7cdeac4 100644 (file)
@@ -75,4 +75,16 @@ public class AaiServiceProviderImpl implements AaiServiceProvider {
                 .customer(globalSubscriberId).serviceSubscription(serviceType).serviceInstance(serviceInstanceId));
         aaiClientProvider.getAaiClient().create(uri, nssiInstance);
     }
+
+    @Override
+    public ServiceInstance invokeGetServiceInstance(String globalSubscriberId, String serviceType,
+            String serviceInstanceId) {
+        AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business()
+                .customer(globalSubscriberId).serviceSubscription(serviceType).serviceInstance(serviceInstanceId));
+
+        return aaiClientProvider.getAaiClient().get(ServiceInstance.class, uri).orElseGet(() -> {
+            logger.debug("ServiceInstance " + serviceInstanceId + " not found in AAI");
+            return null;
+        });
+    }
 }
index fc23ca9..7a5b6a4 100644 (file)
@@ -63,7 +63,11 @@ public abstract class ExternalNssmfManager extends BaseNssmfManager {
     protected void afterQueryJobStatus(ResourceOperationStatus status) {
         if (Integer.parseInt(status.getProgress()) == 100) {
 
-            ServiceInstance nssiInstance = new ServiceInstance();
+            ServiceInstance nssiInstance = restUtil.getServiceInstance(serviceInfo);
+            if (nssiInstance == null) {
+                nssiInstance = new ServiceInstance();
+            }
+
             nssiInstance.setServiceInstanceId(serviceInfo.getNssiId());
             nssiInstance.setServiceInstanceName(serviceInfo.getNssiName());
             nssiInstance.setServiceType(serviceInfo.getSST());
index 491da0a..eb2dba0 100644 (file)
@@ -128,6 +128,8 @@ public class ExternalAnNssmfManager extends ExternalNssmfManager {
 
         updateRequestDbJobStatus(responseDescriptor, status, restResponse);
 
+        status.setProgress(Integer.toString(responseDescriptor.getProgress()));
+
         return restResponse;
     }
 
index 0c5999b..a4a79bf 100644 (file)
@@ -77,6 +77,11 @@ public class RestUtil {
                 serviceInfo.getSubscriptionServiceType(), serviceInfo.getNssiId());
     }
 
+    public ServiceInstance getServiceInstance(ServiceInfo serviceInfo) {
+        return aaiSvcProv.invokeGetServiceInstance(serviceInfo.getGlobalSubscriberId(),
+                serviceInfo.getSubscriptionServiceType(), serviceInfo.getNssiId());
+    }
+
     public NssmfInfo getNssmfHost(EsrInfo esrInfo) throws ApplicationException {
         EsrThirdpartySdncList sdncList = aaiSvcProv.invokeGetThirdPartySdncList();
         if (sdncList != null && sdncList.getEsrThirdpartySdnc() != null) {
index 75ef7d3..f3bc47e 100644 (file)
@@ -151,6 +151,7 @@ class DoDeallocateNSSI extends AbstractServiceTaskProcessor
         serviceInfo.setServiceInvariantUuid(serviceInvariantUuid)
         serviceInfo.setServiceUuid(serviceUuid)
         serviceInfo.setNsiId(nsiId)
+        serviceInfo.setNssiId(nssiId)
         serviceInfo.setGlobalSubscriberId(globalSubscriberId)
         serviceInfo.setSubscriptionServiceType(subscriptionServiceType)
         String serviceInfoString = objectMapper.writeValueAsString(serviceInfo)