Add nssiId for AllocateTNNSSI request
[so.git] / bpmn / so-bpmn-infrastructure-common / src / main / groovy / org / onap / so / bpmn / infrastructure / scripts / DoDeleteVFCNetworkServiceInstance.groovy
index e058616..1ec11c6 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
  * ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
@@ -26,12 +28,15 @@ import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
 import org.onap.so.bpmn.common.scripts.ExceptionUtil
 import org.onap.so.bpmn.core.json.JsonUtils
 import org.onap.so.client.HttpClient
-import org.onap.so.client.aai.AAIObjectType
-import org.onap.so.client.aai.entities.uri.AAIResourceUri
-import org.onap.so.client.aai.entities.uri.AAIUriFactory
-import org.onap.so.logger.MessageEnum
-import org.onap.so.logger.MsoLogger
-import org.onap.so.utils.TargetEntity
+import org.onap.so.client.HttpClientFactory
+import org.onap.aaiclient.client.aai.AAIObjectType
+import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri
+import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory
+import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder
+import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder.Types
+import org.slf4j.Logger
+import org.slf4j.LoggerFactory
+import org.onap.logging.filter.base.ONAPComponents;
 import org.onap.so.bpmn.core.UrnPropertiesReader
 
 import javax.ws.rs.core.Response
@@ -40,11 +45,12 @@ import javax.ws.rs.core.Response
  * flow for E2E ServiceInstance Delete
  */
 public class DoDeleteVFCNetworkServiceInstance extends AbstractServiceTaskProcessor {
-       private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, DoDeleteVFCNetworkServiceInstance.class);
+    private static final Logger logger = LoggerFactory.getLogger( DoDeleteVFCNetworkServiceInstance.class);
 
     ExceptionUtil exceptionUtil = new ExceptionUtil()
 
     JsonUtils jsonUtil = new JsonUtils()
+    private final HttpClientFactory httpClientFactory = new HttpClientFactory()
 
     /**
      * Pre Process the BPMN Flow Request
@@ -54,21 +60,21 @@ public class DoDeleteVFCNetworkServiceInstance extends AbstractServiceTaskProces
     public void preProcessRequest (DelegateExecution execution) {
 
         String msg = ""
-        msoLogger.trace("preProcessRequest() ")
+        logger.trace("preProcessRequest() ")
         try {
             //deal with operation key
             String globalSubscriberId = execution.getVariable("globalSubscriberId")
-            msoLogger.info("globalSubscriberId:" + globalSubscriberId)
+            logger.info("globalSubscriberId:" + globalSubscriberId)
             String serviceType = execution.getVariable("serviceType")
-            msoLogger.info("serviceType:" + serviceType)
+            logger.info("serviceType:" + serviceType)
             String serviceId = execution.getVariable("serviceId")
-            msoLogger.info("serviceId:" + serviceId)
+            logger.info("serviceId:" + serviceId)
             String operationId = execution.getVariable("operationId")
-            msoLogger.info("serviceType:" + serviceType)
+            logger.info("serviceType:" + serviceType)
             String nodeTemplateUUID = execution.getVariable("resourceTemplateId")
-            msoLogger.info("nodeTemplateUUID:" + nodeTemplateUUID)
+            logger.info("nodeTemplateUUID:" + nodeTemplateUUID)
             String nsInstanceId = execution.getVariable("resourceInstanceId")
-            msoLogger.info("nsInstanceId:" + nsInstanceId)
+            logger.info("nsInstanceId:" + nsInstanceId)
             execution.setVariable("nsInstanceId",nsInstanceId)
             String nsOperationKey = """{
             "globalSubscriberId":"${globalSubscriberId}",
@@ -78,13 +84,13 @@ public class DoDeleteVFCNetworkServiceInstance extends AbstractServiceTaskProces
             "nodeTemplateUUID":"${nodeTemplateUUID}"
              }"""
             execution.setVariable("nsOperationKey", nsOperationKey);
-            msoLogger.info("nsOperationKey:" + nsOperationKey)
+            logger.info("nsOperationKey:" + nsOperationKey)
 
             String vfcAdapterUrl = UrnPropertiesReader.getVariable("mso.adapters.vfc.rest.endpoint", execution)
                        
             if (vfcAdapterUrl == null || vfcAdapterUrl.isEmpty()) {
                 msg = getProcessKey(execution) + ': mso:adapters:vfcc:rest:endpoint URN mapping is not defined'
-                msoLogger.debug(msg)
+                logger.debug(msg)
             }
  
             while (vfcAdapterUrl.endsWith('/')) {
@@ -97,10 +103,10 @@ public class DoDeleteVFCNetworkServiceInstance extends AbstractServiceTaskProces
             throw e;
         } catch (Exception ex){
             msg = "Exception in preProcessRequest " + ex.getMessage()
-            msoLogger.info(msg)
+            logger.info(msg)
             exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
         }
-        msoLogger.trace("Exit preProcessRequest ")
+        logger.trace("Exit preProcessRequest ")
        }
 
     /**
@@ -108,23 +114,23 @@ public class DoDeleteVFCNetworkServiceInstance extends AbstractServiceTaskProces
      */
     public void deleteNSRelationship(DelegateExecution execution) {
         def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-        utils.log("INFO"," ***** deleteNSRelationship *****",  isDebugEnabled)
+        logger.info(" ***** deleteNSRelationship *****")
         String nsInstanceId = execution.getVariable("resourceInstanceId")
         if(nsInstanceId == null || nsInstanceId == ""){
-            utils.log("INFO"," Delete NS failed",  isDebugEnabled)
+            logger.info(" Delete NS failed")
             return
         }
         String globalSubscriberId = execution.getVariable("globalSubscriberId")
         String serviceType = execution.getVariable("serviceType")
         String serviceId = execution.getVariable("serviceId")
-        AAIResourceUri serviceInstanceUri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, globalSubscriberId, serviceType, serviceId)
-        AAIResourceUri nsServiceInstanceUri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, globalSubscriberId, serviceType, nsInstanceId)
+        AAIResourceUri serviceInstanceUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer(globalSubscriberId).serviceSubscription(serviceType).serviceInstance(serviceId))
+        AAIResourceUri nsServiceInstanceUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer(globalSubscriberId).serviceSubscription(serviceType).serviceInstance(nsInstanceId))
         try {
             getAAIClient().disconnect(serviceInstanceUri, nsServiceInstanceUri)
         }catch(Exception e){
             exceptionUtil.buildAndThrowWorkflowException(execution,25000,"Exception occured while NS disconnect call: " + e.getMessage())
         }
-        utils.log("INFO"," *****Exit deleteNSRelationship *****",  isDebugEnabled)
+        logger.info(" *****Exit deleteNSRelationship *****")
     }
 
     /**
@@ -132,7 +138,7 @@ public class DoDeleteVFCNetworkServiceInstance extends AbstractServiceTaskProces
      */
     public void deleteNetworkService(DelegateExecution execution) {
 
-        msoLogger.trace("deleteNetworkService  start ")
+        logger.trace("deleteNetworkService  start ")
         String vfcAdapterUrl = execution.getVariable("vfcAdapterUrl")
         String nsOperationKey = execution.getVariable("nsOperationKey");
         String url = vfcAdapterUrl + "/ns/" + execution.getVariable("nsInstanceId")
@@ -144,15 +150,15 @@ public class DoDeleteVFCNetworkServiceInstance extends AbstractServiceTaskProces
         }
         execution.setVariable("operationStatus", operationStatus)
 
-        msoLogger.trace("deleteNetworkService  end ")
+        logger.trace("deleteNetworkService  end ")
     }
 
     /**
-     * instantiate NS task
+     *  terminate NS task
      */
     public void terminateNetworkService(DelegateExecution execution) {
 
-        msoLogger.trace("terminateNetworkService  start ")
+        logger.trace("terminateNetworkService  start ")
         String vfcAdapterUrl = execution.getVariable("vfcAdapterUrl")
         String nsOperationKey = execution.getVariable("nsOperationKey")
         String url =  vfcAdapterUrl + "/ns/" + execution.getVariable("nsInstanceId") + "/terminate"
@@ -164,7 +170,7 @@ public class DoDeleteVFCNetworkServiceInstance extends AbstractServiceTaskProces
             jobId =  jsonUtil.getJsonValue(aaiResponseAsString, "jobId")
         }
         execution.setVariable("jobId", jobId)
-        msoLogger.trace("terminateNetworkService  end ")
+        logger.trace("terminateNetworkService  end ")
     }
 
     /**
@@ -172,7 +178,7 @@ public class DoDeleteVFCNetworkServiceInstance extends AbstractServiceTaskProces
      */
     public void queryNSProgress(DelegateExecution execution) {
 
-        msoLogger.trace("queryNSProgress  start ")
+        logger.trace("queryNSProgress  start ")
         String vfcAdapterUrl = execution.getVariable("vfcAdapterUrl")
         String jobId = execution.getVariable("jobId")
         String nsOperationKey = execution.getVariable("nsOperationKey");
@@ -185,7 +191,7 @@ public class DoDeleteVFCNetworkServiceInstance extends AbstractServiceTaskProces
             operationProgress = jsonUtil.getJsonValue(apiResponseAsString, "responseDescriptor.progress")
         }
         execution.setVariable("operationProgress", operationProgress)
-        msoLogger.trace("queryNSProgress  end ")
+        logger.trace("queryNSProgress  end ")
     }
 
     /**
@@ -195,7 +201,7 @@ public class DoDeleteVFCNetworkServiceInstance extends AbstractServiceTaskProces
         try {
             Thread.sleep(5000);
         } catch(InterruptedException e) {
-            msoLogger.info("Time Delay exception" + e)
+            logger.info("Time Delay exception" + e)
         }
     }
 
@@ -213,23 +219,26 @@ public class DoDeleteVFCNetworkServiceInstance extends AbstractServiceTaskProces
      */
     private Response postRequest(DelegateExecution execution, String urlString, String requestBody){
 
-               msoLogger.trace("Started Execute VFC adapter Post Process ")
-               msoLogger.info("url:"+urlString +"\nrequestBody:"+ requestBody)
+               logger.trace("Started Execute VFC adapter Post Process ")
+               logger.info("url:"+urlString +"\nrequestBody:"+ requestBody)
                Response apiResponse = null
                try{
                        URL url = new URL(urlString);
 
-                       HttpClient httpClient = new HttpClient(url, "application/json", TargetEntity.VNF_ADAPTER)
-                       httpClient.addAdditionalHeader("Accept", "application/json")
-                       httpClient.addAdditionalHeader("Authorization", "Basic YnBlbDpwYXNzd29yZDEk")
+                       // Get the Basic Auth credentials for the VFCAdapter, username is 'bpel', auth is '07a7159d3bf51a0e53be7a8f89699be7'
+            // user 'bepl' authHeader is the same with mso.db.auth
+            String basicAuthValuedb =  UrnPropertiesReader.getVariable("mso.db.auth", execution)
+            HttpClient httpClient = httpClientFactory.newJsonClient(url, ONAPComponents.VNF_ADAPTER)
+            httpClient.addAdditionalHeader("Accept", "application/json")
+            httpClient.addAdditionalHeader("Authorization", basicAuthValuedb)
 
                        apiResponse = httpClient.post(requestBody)
 
-                       msoLogger.debug("response code:"+ apiResponse.getStatus() +"\nresponse body:"+ apiResponse.readEntity(String.class))
+                       logger.debug("response code:"+ apiResponse.getStatus() +"\nresponse body:"+ apiResponse.readEntity(String.class))
 
-                       msoLogger.trace("Completed Execute VF-C adapter Post Process ")
+                       logger.trace("Completed Execute VF-C adapter Post Process ")
                }catch(Exception e){
-            msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, "Exception occured while executing VF-C Post Call. Exception is: \n" + e, "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, "Exception is:\n" + e);
+            logger.error("Exception occured while executing VF-C Post Call. Exception is: \n" + e.getMessage());
             throw new BpmnError("MSOWorkflowException")
         }
         return apiResponse
@@ -241,20 +250,24 @@ public class DoDeleteVFCNetworkServiceInstance extends AbstractServiceTaskProces
      */
     private Response deleteRequest(DelegateExecution execution, String url, String requestBody){
 
-        msoLogger.trace("Started Execute VFC adapter Delete Process ")
-        msoLogger.info("url:"+url +"\nrequestBody:"+ requestBody)
-               Response r
+        logger.trace("Started Execute VFC adapter Delete Process ")
+        logger.info("url:"+url +"\nrequestBody:"+ requestBody)
+       Response r
         try{
 
-                       URL Url = new URL(url)
-                       HttpClient httpClient = new HttpClient(Url, "application/json", TargetEntity.VNF_ADAPTER)
-                       httpClient.addAdditionalHeader("Accept", "application/json")
-                       httpClient.addAdditionalHeader("Authorization", "Basic YnBlbDpwYXNzd29yZDEk")
-                       r = httpClient.delete(requestBody)
-
-            msoLogger.trace("Completed Execute VF-C adapter Delete Process ")
+               URL Url = new URL(url)
+            // Get the Basic Auth credentials for the VFCAdapter, username is 'bpel', auth is '07a7159d3bf51a0e53be7a8f89699be7'
+            // user 'bepl' authHeader is the same with mso.db.auth
+            String basicAuthValuedb =  UrnPropertiesReader.getVariable("mso.db.auth", execution)
+            HttpClient httpClient = httpClientFactory.newJsonClient(url, ONAPComponents.VNF_ADAPTER)
+            httpClient.addAdditionalHeader("Accept", "application/json")
+            httpClient.addAdditionalHeader("Authorization", basicAuthValuedb)
+            httpClient.addAdditionalHeader("Content-Type", "application/json")
+            r = httpClient.delete(requestBody)
+               
+            logger.trace("Completed Execute VF-C adapter Delete Process ")
         }catch(Exception e){
-            msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, "Exception occured while executing VF-C Post Call. Exception is: \n" + e, "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, "Exception is:\n" + e);
+            logger.error("Exception occured while executing VF-C Post Call. Exception is: \n" + e.getMessage());
             throw new BpmnError("MSOWorkflowException")
         }
         return r