Implement the tasks of delete NS work flow 91/14491/1
authorc00149107 <chenchuanyu@huawei.com>
Fri, 22 Sep 2017 07:29:48 +0000 (15:29 +0800)
committerc00149107 <chenchuanyu@huawei.com>
Fri, 22 Sep 2017 07:29:48 +0000 (15:29 +0800)
Implement the tasks of delete NS work flow

Change-Id: I0598ca35aaa3b923a9a3517b4482fdbba7415740
Issue-ID:SO-57
Signed-off-by: c00149107 <chenchuanyu@huawei.com>
bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVFCNetworkServiceInstance.groovy
bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVFCNetworkServiceInstance.groovy

index 14fd419..b346faf 100644 (file)
@@ -81,7 +81,7 @@ public class DoCreateVFCNetworkServiceInstance extends AbstractServiceTaskProces
            String operationId = execution.getVariable("operationId")\r
            utils.log("DEBUG", "serviceType:" + serviceType, isDebugEnabled)\r
            String nodeTemplateUUID = execution.getVariable("nodeTemplateUUID")\r
-           utils.log("DEBUG", "globalSubscriberId:" + globalSubscriberId, isDebugEnabled)\r
+           utils.log("DEBUG", "nodeTemplateUUID:" + nodeTemplateUUID, isDebugEnabled)\r
            /*\r
             * segmentInformation needed as a object of segment\r
             * {\r
@@ -123,7 +123,7 @@ public class DoCreateVFCNetworkServiceInstance extends AbstractServiceTaskProces
         String nsServiceDescription = execution.getVariable("nsServiceDescription")\r
         String reqBody = "{\"nsServiceName\":\"" + nsServiceName + "\",\"nsServiceDescription\":\"" + nsServiceDescription\r
               +"\",\"nsOperationKey\":" + nsOperationKey + ",\"nsParameters\":" + nsParameters\r
-        APIResponse createRsp = postRequest(createUrl, reqBody)\r
+        APIResponse apiResponse = postRequest(createUrl, reqBody)\r
         String returnCode = apiResponse.getStatusCode()\r
         String aaiResponseAsString = apiResponse.getResponseBodyAsString()\r
         String nsInstanceId = "";\r
@@ -145,7 +145,7 @@ public class DoCreateVFCNetworkServiceInstance extends AbstractServiceTaskProces
         String reqBody = "{\"nsServiceName\":\"" + nsServiceName + "\",\"nsServiceDescription\":\"" + nsServiceDescription\r
               +"\",\"nsOperationKey\":" + nsOperationKey + ",\"nsParameters\":" + nsParameters\r
         String url = instantiateUrl.replaceAll("{nsInstanceId}", execution.getVariable("nsInstanceId")) \r
-        APIResponse createRsp = postRequest(url, reqBody)\r
+        APIResponse apiResponse = postRequest(url, reqBody)\r
         String returnCode = apiResponse.getStatusCode()\r
         String aaiResponseAsString = apiResponse.getResponseBodyAsString()\r
         String jobId = "";\r
@@ -162,7 +162,7 @@ public class DoCreateVFCNetworkServiceInstance extends AbstractServiceTaskProces
         String jobId = execution.getVariable("jobId")\r
         String nsOperationKey = excution.getVariable("nsOperationKey");\r
         String url = queryJobUrl.replaceAll("{jobId}", execution.getVariable("jobId")) \r
-        APIResponse createRsp = postRequest(url, nsOperationKey)\r
+        APIResponse apiResponse = postRequest(url, nsOperationKey)\r
         String returnCode = apiResponse.getStatusCode()\r
         String aaiResponseAsString = apiResponse.getResponseBodyAsString()\r
         String operationStatus = "error"\r
index 72982bb..f3659ed 100644 (file)
@@ -60,23 +60,69 @@ public class DODeleteVFCNetworkServiceInstance extends AbstractServiceTaskProces
      * Pre Process the BPMN Flow Request\r
      * Inclouds:\r
      * generate the nsOperationKey\r
-     * generate the nsParameters\r
      */\r
-    public void preProcessRequest (Execution execution) {        \r
+    public void preProcessRequest (Execution execution) {\r
+        def isDebugEnabled=execution.getVariable("isDebugLogEnabled")\r
+        String msg = ""\r
+        utils.log("DEBUG", " *** preProcessRequest() *** ", isDebugEnabled)\r
+        try {\r
+            //deal with operation key\r
+            String globalSubscriberId = execution.getVariable("globalSubscriberId")\r
+            utils.log("DEBUG", "globalSubscriberId:" + globalSubscriberId, isDebugEnabled)\r
+            String serviceType = execution.getVariable("serviceType")\r
+            utils.log("DEBUG", "serviceType:" + serviceType, isDebugEnabled)\r
+            String serviceId = execution.getVariable("serviceId")\r
+            utils.log("DEBUG", "serviceId:" + serviceId, isDebugEnabled)\r
+            String operationId = execution.getVariable("operationId")\r
+            utils.log("DEBUG", "serviceType:" + serviceType, isDebugEnabled)\r
+            String nodeTemplateUUID = execution.getVariable("nodeTemplateUUID")\r
+            utils.log("DEBUG", "nodeTemplateUUID:" + nodeTemplateUUID, isDebugEnabled)\r
+            String nsInstanceId = execution.getVariable("nsInstanceId")\r
+            utils.log("DEBUG", "nsInstanceId:" + nsInstanceId, isDebugEnabled)\r
+            String nsOperationKey = "{\"globalSubscriberId\":\"" + globalSubscriberId + "\",\"serviceType:\""\r
+                  + serviceType + "\",\"serviceId\":\"" + serviceId + "\",\"operationId\":\"" + operationId\r
+                  +"\",\"nodeTemplateUUID\":\"" + nodeTemplateUUID + "\"}";\r
+            execution.setVariable("nsOperationKey", nsOperationKey);\r
+        } catch (BpmnError e) {\r
+            throw e;\r
+        } catch (Exception ex){\r
+            msg = "Exception in preProcessRequest " + ex.getMessage()\r
+            utils.log("DEBUG", msg, isDebugEnabled)\r
+            exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)\r
+        }\r
+        utils.log("DEBUG"," ***** Exit preProcessRequest *****",  isDebugEnabled)\r
        }\r
 \r
     /**\r
      * delete NS task\r
      */\r
     public void deleteNetworkService(Execution execution) {\r
-                \r
+        String nsOperationKey = excution.getVariable("nsOperationKey");\r
+        String url = deleteUrl.replaceAll("{nsInstanceId}", execution.getVariable("nsInstanceId")) \r
+        APIResponse apiResponse = deleteRequest(url, reqBody)\r
+        String returnCode = apiResponse.getStatusCode()\r
+        String aaiResponseAsString = apiResponse.getResponseBodyAsString()\r
+        String operationStatus = "error";\r
+        if(returnCode== "200"){\r
+            operationStatus = "finished"\r
+        }\r
+        execution.setVariable("operationStatus", operationStatus)\r
     }\r
 \r
     /**\r
      * instantiate NS task\r
      */\r
     public void terminateNetworkService(Execution execution) {\r
-\r
+        String nsOperationKey = execution.getVariable("nsOperationKey") \r
+        String url = terminateUrl.replaceAll("{nsInstanceId}", execution.getVariable("nsInstanceId")) \r
+        APIResponse apiResponse = postRequest(url, reqBody)\r
+        String returnCode = apiResponse.getStatusCode()\r
+        String aaiResponseAsString = apiResponse.getResponseBodyAsString()\r
+        String jobId = "";\r
+        if(returnCode== "200"){\r
+            jobId =  jsonUtil.getJsonValue(aaiResponseAsString, "jobId")\r
+        }\r
+        execution.setVariable("jobId", nsInstanceId)   \r
     }\r
 \r
     /**\r
@@ -89,11 +135,11 @@ public class DODeleteVFCNetworkServiceInstance extends AbstractServiceTaskProces
         APIResponse createRsp = postRequest(url, nsOperationKey)\r
         String returnCode = apiResponse.getStatusCode()\r
         String aaiResponseAsString = apiResponse.getResponseBodyAsString()\r
-        String operationStatus = "error"\r
+        String operationProgress = "100"\r
         if(returnCode== "200"){\r
-            operationStatus = jsonUtil.getJsonValue(aaiResponseAsString, "responseDescriptor.status")\r
+            operationProgress = jsonUtil.getJsonValue(aaiResponseAsString, "responseDescriptor.progress")\r
         }\r
-        exection.setVariable("operationStatus", operationStatus)\r
+        exection.setVariable("operationProgress", operationProgress)\r
     }\r
 \r
     /**\r
@@ -110,7 +156,7 @@ public class DODeleteVFCNetworkServiceInstance extends AbstractServiceTaskProces
     /**\r
      * finish NS task\r
      */\r
-    public void finishNSCreate(Execution execution) {\r
+    public void finishNSDelete(Execution execution) {\r
         //no need to do anything util now\r
     }\r
 \r
@@ -131,7 +177,29 @@ public class DODeleteVFCNetworkServiceInstance extends AbstractServiceTaskProces
             taskProcessor.logDebug( "response code:"+ apiResponse.getStatusCode() +"\nresponse body:"+ apiResponse.getResponseBodyAsString(), isDebugEnabled)\r
             taskProcessor.logDebug( "======== Completed Execute VF-C adapter Post Process ======== ", isDebugEnabled)\r
         }catch(Exception e){\r
-            taskProcessor.utils.log("ERROR", "Exception occured while executing AAI Post Call. Exception is: \n" + e, isDebugEnabled)\r
+            taskProcessor.utils.log("ERROR", "Exception occured while executing VF-C Post Call. Exception is: \n" + e, isDebugEnabled)\r
+            throw new BpmnError("MSOWorkflowException")\r
+        }        \r
+        return apiResponse\r
+    }\r
+    /**\r
+     * delete request\r
+     * url: the url of the request\r
+     * requestBody: the body of the request\r
+     */\r
+    private APIResponse deleteRequest(String url, String requestBody){\r
+        def isDebugEnabled = execution.getVariable("isDebugLogEnabled")\r
+        taskProcessor.logDebug( " ======== Started Execute VFC adapter Delete Process ======== ", isDebugEnabled)\r
+        taskProcessor.logDebug( "url:"+url +"\nrequestBody:"+ requestBody, isDebugEnabled)\r
+        APIResponse apiResponse = null\r
+        try{\r
+            RESTConfig config = new RESTConfig(url);\r
+            RESTClient client = new RESTClient(config).addHeader("X-FromAppId", "MSO").addHeader("X-TransactionId", uuid).addHeader("Accept","application/json");\r
+            apiResponse = client.httpDelete(requestBody)\r
+            taskProcessor.logDebug( "response code:"+ apiResponse.getStatusCode() +"\nresponse body:"+ apiResponse.getResponseBodyAsString(), isDebugEnabled)\r
+            taskProcessor.logDebug( "======== Completed Execute VF-C adapter Delete Process ======== ", isDebugEnabled)\r
+        }catch(Exception e){\r
+            taskProcessor.utils.log("ERROR", "Exception occured while executing VF-C Post Call. Exception is: \n" + e, isDebugEnabled)\r
             throw new BpmnError("MSOWorkflowException")\r
         }        \r
         return apiResponse\r