Added orchestration status to service
[so.git] / bpmn / so-bpmn-infrastructure-common / src / main / groovy / org / onap / so / bpmn / infrastructure / scripts / DoCreateResources.groovy
index afdc570..b49f00a 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2018 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
 
 package org.onap.so.bpmn.infrastructure.scripts
 
+import org.onap.so.bpmn.common.scripts.CatalogDbUtilsFactory
 import org.onap.so.bpmn.infrastructure.properties.BPMNProperties
-
-import java.util.ArrayList
-import java.util.Iterator
-import java.util.List
 import org.apache.commons.lang3.StringUtils
 import org.apache.http.HttpResponse
 import org.camunda.bpm.engine.delegate.BpmnError
 import org.camunda.bpm.engine.delegate.DelegateExecution
-import org.codehaus.groovy.runtime.ArrayUtil
-import org.codehaus.groovy.runtime.ScriptBytecodeAdapter
-import org.codehaus.groovy.runtime.callsite.CallSite
-import org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation
-import org.codehaus.groovy.runtime.typehandling.ShortTypeHandling
-import org.json.JSONArray
 import org.json.JSONObject
 import org.onap.so.bpmn.common.recipe.BpmnRestClient
 import org.onap.so.bpmn.common.recipe.ResourceInput
@@ -48,8 +41,8 @@ import org.onap.so.bpmn.core.domain.ServiceDecomposition
 import org.onap.so.bpmn.core.domain.VnfResource
 import org.onap.so.bpmn.core.json.JsonUtils
 import org.onap.so.bpmn.common.resource.ResourceRequestBuilder
-import org.onap.so.logger.MessageEnum
-import org.onap.so.logger.MsoLogger
+import org.slf4j.Logger
+import org.slf4j.LoggerFactory
 
 
 
@@ -71,31 +64,31 @@ import org.onap.so.logger.MsoLogger
  * @param - WorkflowException
  */
 public class DoCreateResources extends AbstractServiceTaskProcessor{
-    private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, DoCreateResources.class);
+    private static final Logger logger = LoggerFactory.getLogger( DoCreateResources.class);
 
     ExceptionUtil exceptionUtil = new ExceptionUtil()
     JsonUtils jsonUtil = new JsonUtils()
-    CatalogDbUtils cutils = new CatalogDbUtils()
+    CatalogDbUtils catalogDbUtils = new CatalogDbUtilsFactory().create()
 
     public void preProcessRequest(DelegateExecution execution) {
-        msoLogger.trace("preProcessRequest ")
+        logger.trace("preProcessRequest ")
         String msg = ""
 
         List addResourceList = execution.getVariable("addResourceList")
         if (addResourceList == null) {
             msg = "Input addResourceList is null"
-            msoLogger.info(msg)
+            logger.info(msg)
             exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
         }
         else if (addResourceList.size() == 0) {
             msg = "No resource in addResourceList"
-            msoLogger.info(msg)
+            logger.info(msg)
         }
-        msoLogger.trace("Exit preProcessRequest ")
+        logger.trace("Exit preProcessRequest ")
     }
 
     public void sequenceResoure(DelegateExecution execution) {
-        msoLogger.trace("Start sequenceResoure Process ")
+        logger.trace("Start sequenceResoure Process ")
         
         String incomingRequest = execution.getVariable("uuiRequest")
         String serviceModelUuid = jsonUtil.getJsonValue(incomingRequest,"service.serviceUuid")
@@ -114,8 +107,8 @@ public class DoCreateResources extends AbstractServiceTaskProcessor{
 
         // get Sequence from csar(model)  
         if(resourceSequence == null) {
-            resourceSequence = ResourceRequestBuilder.getResourceSequence(execution, serviceModelUuid)
-            msoLogger.info("Get Sequence from csar : " + resourceSequence)
+            resourceSequence = ResourceRequestBuilder.getResourceSequence(serviceModelUuid)
+            logger.info("Get Sequence from csar : " + resourceSequence)
         }
 
         if(resourceSequence != null) {
@@ -161,13 +154,13 @@ public class DoCreateResources extends AbstractServiceTaskProcessor{
         execution.setVariable("isContainsWanResource", isContainsWanResource)
         execution.setVariable("currentResourceIndex", 0)
         execution.setVariable("sequencedResourceList", sequencedResourceList)
-        msoLogger.info("sequencedResourceList: " + sequencedResourceList)
-        msoLogger.trace("COMPLETED sequenceResoure Process ")
+        logger.info("sequencedResourceList: " + sequencedResourceList)
+        logger.trace("COMPLETED sequenceResoure Process ")
     }
 
     public prepareServiceTopologyRequest(DelegateExecution execution) {
 
-        msoLogger.trace("======== Start prepareServiceTopologyRequest Process ======== ")
+        logger.trace("======== Start prepareServiceTopologyRequest Process ======== ")
 
         String serviceDecompose = execution.getVariable("serviceDecomposition")
 
@@ -182,21 +175,21 @@ public class DoCreateResources extends AbstractServiceTaskProcessor{
         execution.setVariable("modelUuid", serviceUuid)
         execution.setVariable("serviceModelName", serviceModelName)
 
-        msoLogger.trace("======== End prepareServiceTopologyRequest Process ======== ")
+        logger.trace("======== End prepareServiceTopologyRequest Process ======== ")
     }
 
     public void getCurrentResoure(DelegateExecution execution){
-        msoLogger.trace("Start getCurrentResoure Process ")
+        logger.trace("Start getCurrentResoure Process ")
         def currentIndex = execution.getVariable("currentResourceIndex")
         List<Resource> sequencedResourceList = execution.getVariable("sequencedResourceList")
         Resource currentResource = sequencedResourceList.get(currentIndex)
         execution.setVariable("resourceType", currentResource.getModelInfo().getModelName())
-        msoLogger.info("Now we deal with resouce:" + currentResource.getModelInfo().getModelName())
-        msoLogger.trace("COMPLETED getCurrentResoure Process ")
+        logger.info("Now we deal with resouce:" + currentResource.getModelInfo().getModelName())
+        logger.trace("COMPLETED getCurrentResoure Process ")
     }
 
     public void parseNextResource(DelegateExecution execution){
-        msoLogger.trace("Start parseNextResource Process ")
+        logger.trace("Start parseNextResource Process ")
         def currentIndex = execution.getVariable("currentResourceIndex")
         def nextIndex =  currentIndex + 1
         execution.setVariable("currentResourceIndex", nextIndex)
@@ -206,17 +199,17 @@ public class DoCreateResources extends AbstractServiceTaskProcessor{
         }else{
             execution.setVariable("allResourceFinished", "false")
         }
-        msoLogger.trace("COMPLETED parseNextResource Process ")
+        logger.trace("COMPLETED parseNextResource Process ")
     }
 
     public void prepareResourceRecipeRequest(DelegateExecution execution){
-        msoLogger.trace("Start prepareResourceRecipeRequest Process ")
+        logger.trace("Start prepareResourceRecipeRequest Process ")
         ResourceInput resourceInput = new ResourceInput()
         String serviceInstanceName = execution.getVariable("serviceInstanceName")
         String resourceType = execution.getVariable("resourceType")
         String resourceInstanceName = resourceType + "_" + serviceInstanceName
         resourceInput.setResourceInstanceName(resourceInstanceName)
-        msoLogger.info("Prepare Resource Request resourceInstanceName:" + resourceInstanceName)
+        logger.info("Prepare Resource Request resourceInstanceName:" + resourceInstanceName)
         String globalSubscriberId = execution.getVariable("globalSubscriberId")
         String serviceType = execution.getVariable("serviceType")
         String serviceInstanceId = execution.getVariable("serviceInstanceId")
@@ -242,47 +235,55 @@ public class DoCreateResources extends AbstractServiceTaskProcessor{
         String resourceParameters = ResourceRequestBuilder.buildResourceRequestParameters(execution, serviceModelUuid, resourceCustomizationUuid, serviceParameters)
         resourceInput.setResourceParameters(resourceParameters)
         resourceInput.setRequestsInputs(incomingRequest)
-        execution.setVariable("resourceInput", resourceInput)
-        msoLogger.trace("COMPLETED prepareResourceRecipeRequest Process ")
+        execution.setVariable("resourceInput", resourceInput.toString())
+        execution.setVariable("resourceModelUUID", resourceInput.getResourceModelInfo().getModelUuid())
+        logger.trace("COMPLETED prepareResourceRecipeRequest Process ")
     }
 
     public void executeResourceRecipe(DelegateExecution execution){
-        msoLogger.trace("Start executeResourceRecipe Process ")
+        logger.trace("Start executeResourceRecipe Process ")
 
         try {
             String requestId = execution.getVariable("msoRequestId")
             String serviceInstanceId = execution.getVariable("serviceInstanceId")
             String serviceType = execution.getVariable("serviceType")
-            ResourceInput resourceInput = execution.getVariable("resourceInput")
+            String resourceInput = execution.getVariable("resourceInput")
+            String resourceModelUUID = execution.getVariable("resourceModelUUID")
 
             // requestAction is action, not opertiontype
             //String requestAction = resourceInput.getOperationType()
             String requestAction = "createInstance"
-            JSONObject resourceRecipe = cutils.getResourceRecipe(execution, resourceInput.getResourceModelInfo().getModelUuid(), requestAction)
+            JSONObject resourceRecipe = catalogDbUtils.getResourceRecipe(execution, resourceModelUUID, requestAction)
 
             if (resourceRecipe != null) {
-                String recipeURL = BPMNProperties.getProperty("bpelURL", "http://bpmn-infra:8081") + resourceRecipe.getString("orchestrationUri")
+                String recipeURL = BPMNProperties.getProperty("bpelURL", "http://so-bpmn-infra.onap:8081") + resourceRecipe.getString("orchestrationUri")
                 int recipeTimeOut = resourceRecipe.getInt("recipeTimeout")
                 String recipeParamXsd = resourceRecipe.get("paramXSD")
-                HttpResponse resp = BpmnRestClient.post(recipeURL, requestId, recipeTimeOut, requestAction, serviceInstanceId, serviceType, resourceInput.toString(), recipeParamXsd)
+
+                BpmnRestClient bpmnRestClient = new BpmnRestClient()
+                HttpResponse resp = bpmnRestClient.post(recipeURL, requestId, recipeTimeOut, requestAction, serviceInstanceId, serviceType, resourceInput, recipeParamXsd)
             } else {
-                String exceptionMessage = "Resource receipe is not found for resource modeluuid: " +
-                        resourceInput.getResourceModelInfo().getModelUuid()
-                msoLogger.trace(exceptionMessage)
+                String exceptionMessage = "Resource receipe is not found for resource modeluuid: " + resourceModelUUID
+                logger.trace(exceptionMessage)
                 exceptionUtil.buildAndThrowWorkflowException(execution, 500, exceptionMessage)
             }
 
-            msoLogger.trace("======== end executeResourceRecipe Process ======== ")
+            logger.trace("======== end executeResourceRecipe Process ======== ")
         }catch(BpmnError b){
-            msoLogger.debug("Rethrowing MSOWorkflowException")
+            logger.debug("Rethrowing MSOWorkflowException")
             throw b
         }catch(Exception e){
-            msoLogger.debug("Error occured within DoCreateResources executeResourceRecipe method: " + e)
+            logger.debug("Error occured within DoCreateResources executeResourceRecipe method: " + e)
             exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured during DoCreateResources executeResourceRecipe Catalog")
         }
     }
 
     public void postConfigRequest(DelegateExecution execution){
         //now do noting
+        ServiceDecomposition serviceDecomposition = execution.getVariable("serviceDecomposition")
+        for (VnfResource resource : serviceDecomposition.vnfResources) {
+            resource.setOrchestrationStatus("Active")
+        }
+        execution.setVariable("serviceDecomposition", serviceDecomposition)
     }
 }