Add nssiId for AllocateTNNSSI request
[so.git] / bpmn / so-bpmn-infrastructure-common / src / main / groovy / org / onap / so / bpmn / infrastructure / scripts / CreateVfModuleVolumeInfraV1.groovy
index aa56965..4725f9a 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. 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.apache.commons.lang3.*
 import org.camunda.bpm.engine.delegate.BpmnError
-import org.camunda.bpm.engine.delegate.DelegateExecution;
-import org.onap.so.bpmn.common.scripts.AaiUtil;
+import org.camunda.bpm.engine.delegate.DelegateExecution
+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.onap.logging.filter.base.ErrorCode
 import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor;
 import org.onap.so.bpmn.common.scripts.ExceptionUtil;
 import org.onap.so.bpmn.common.scripts.MsoUtils
 import org.onap.so.bpmn.core.WorkflowException
+import org.onap.so.logger.LoggingAnchor
 import org.onap.so.logger.MessageEnum
-import org.onap.so.logger.MsoLogger
-import org.onap.so.rest.APIResponse
-
+import org.slf4j.Logger
+import org.slf4j.LoggerFactory
 import groovy.json.JsonOutput
 import groovy.json.JsonSlurper
 
+
 class CreateVfModuleVolumeInfraV1 extends AbstractServiceTaskProcessor {
        
-       private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, CreateVfModuleVolumeInfraV1.class);
+    private static final Logger logger = LoggerFactory.getLogger( CreateVfModuleVolumeInfraV1.class);
        public static final String  prefix='CVMVINFRAV1_'
 
        /**
@@ -63,13 +69,13 @@ class CreateVfModuleVolumeInfraV1 extends AbstractServiceTaskProcessor {
                execution.setVariable(prefix+'syncResponseSent', false)
 
                String createVolumeIncoming = validateRequest(execution, 'vnfId')
-               msoLogger.debug(createVolumeIncoming)
+               logger.debug(createVolumeIncoming)
 
                try {
                        def jsonSlurper = new JsonSlurper()
                        Map reqMap = jsonSlurper.parseText(createVolumeIncoming)
                        setupVariables(execution, reqMap, isDebugEnabled)
-                       msoLogger.debug("XML request:\n" + createVolumeIncoming)
+                       logger.debug("XML request:\n" + createVolumeIncoming)
                }
                catch(groovy.json.JsonException je) {
                        (new ExceptionUtil()).buildAndThrowWorkflowException(execution, 2500, 'Request is not a valid JSON document')
@@ -95,7 +101,7 @@ class CreateVfModuleVolumeInfraV1 extends AbstractServiceTaskProcessor {
                // volumeGroupId - is generated
                String volumeGroupId = UUID.randomUUID()
                execution.setVariable('volumeGroupId', volumeGroupId)
-               msoLogger.debug("Generated volumeGroupId: " + volumeGroupId)
+               logger.debug("Generated volumeGroupId: " + volumeGroupId)
                
                // volumeGroupName
                def volGrpName = requestMap.requestDetails.requestInfo?.instanceName ?: ''
@@ -109,6 +115,10 @@ class CreateVfModuleVolumeInfraV1 extends AbstractServiceTaskProcessor {
                def lcpCloudRegionId = requestMap.requestDetails.cloudConfiguration.lcpCloudRegionId
                execution.setVariable('lcpCloudRegionId', lcpCloudRegionId)
                
+               // cloudOwner
+               def cloudOwner = requestMap.requestDetails.cloudConfiguration.cloudOwner
+               execution.setVariable('cloudOwner', cloudOwner)
+               
                // tenant
                def tenantId = requestMap.requestDetails.cloudConfiguration.tenantId
                execution.setVariable('tenantId', tenantId)
@@ -150,7 +160,7 @@ class CreateVfModuleVolumeInfraV1 extends AbstractServiceTaskProcessor {
                // disableRollback (true or false)
                def disableRollback = requestMap.requestDetails.requestInfo.suppressRollback
                execution.setVariable('disableRollback', disableRollback)
-               msoLogger.debug('disableRollback (suppressRollback) from request: ' + disableRollback)
+               logger.debug('disableRollback (suppressRollback) from request: ' + disableRollback)
                
        }
 
@@ -163,7 +173,7 @@ class CreateVfModuleVolumeInfraV1 extends AbstractServiceTaskProcessor {
 
                String syncResponse = """{"requestReferences":{"instanceId":"${volumeGroupId}","requestId":"${requestId}"}}""".trim()
 
-               msoLogger.debug("Sync Response: " + "\n" + syncResponse)
+               logger.debug("Sync Response: " + "\n" + syncResponse)
                sendWorkflowResponse(execution, 200, syncResponse)
 
                execution.setVariable(prefix+'syncResponseSent', true)
@@ -185,7 +195,7 @@ class CreateVfModuleVolumeInfraV1 extends AbstractServiceTaskProcessor {
         * @param isDebugEnabled
         */
        public void buildWorkflowException(DelegateExecution execution, int errorCode, errorMessage, isDebugEnabled) {
-               msoLogger.debug(errorMessage)
+               logger.debug(errorMessage)
                (new ExceptionUtil()).buildWorkflowException(execution, 2500, errorMessage)
        }
 
@@ -228,7 +238,7 @@ class CreateVfModuleVolumeInfraV1 extends AbstractServiceTaskProcessor {
 
                String buildDBRequestAsString = utils.formatXml(dbRequest)
                execution.setVariable(prefix+"createDBRequest", buildDBRequestAsString)
-               msoLogger.debug("DB Infra Request: " + buildDBRequestAsString)
+               logger.debug("DB Infra Request: " + buildDBRequestAsString)
        }
 
 
@@ -242,8 +252,8 @@ class CreateVfModuleVolumeInfraV1 extends AbstractServiceTaskProcessor {
                def dbReturnCode = execution.getVariable(prefix+'dbReturnCode')
                def createDBResponse =  execution.getVariable(prefix+'createDBResponse')
 
-               msoLogger.debug('DB return code: ' + dbReturnCode)
-               msoLogger.debug('DB response: ' + createDBResponse)
+               logger.debug('DB return code: ' + dbReturnCode)
+               logger.debug('DB response: ' + createDBResponse)
 
                def requestId = execution.getVariable("mso-request-id")
                def source = execution.getVariable(prefix+'source')
@@ -264,7 +274,7 @@ class CreateVfModuleVolumeInfraV1 extends AbstractServiceTaskProcessor {
 
                execution.setVariable(prefix+'Success', true)
                execution.setVariable(prefix+'CompleteMsoProcessRequest', xmlMsoCompletionRequest)
-               msoLogger.debug(" Overall SUCCESS Response going to CompleteMsoProcess - " + "\n" + xmlMsoCompletionRequest)
+               logger.debug(" Overall SUCCESS Response going to CompleteMsoProcess - " + "\n" + xmlMsoCompletionRequest)
 
        }
 
@@ -297,7 +307,8 @@ class CreateVfModuleVolumeInfraV1 extends AbstractServiceTaskProcessor {
                String xmlHandlerRequest = utils.formatXml(falloutHandlerRequest)
 
                execution.setVariable(prefix+'FalloutHandlerRequest', xmlHandlerRequest)
-               msoLogger.error(MessageEnum.BPMN_GENERAL_EXCEPTION_ARG, "Overall Error Response going to FalloutHandler", "BPMN", MsoLogger.getServiceName(), MsoLogger.ErrorCode.UnknownError, "\n" + xmlHandlerRequest);
+               logger.error(LoggingAnchor.FIVE, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), "Overall Error Response " +
+                               "going to FalloutHandler", "BPMN", ErrorCode.UnknownError.getValue(), "\n" + xmlHandlerRequest);
        }
 
 
@@ -310,34 +321,21 @@ class CreateVfModuleVolumeInfraV1 extends AbstractServiceTaskProcessor {
 
                def request = execution.getVariable(prefix+"Request")
                def serviceInstanceId = utils.getNodeText(request, "service-instance-id")
-
-               AaiUtil aaiUtil = new AaiUtil(this)
-               String aaiEndpoint = aaiUtil.getSearchNodesQueryEndpoint(execution)
-
-               def String queryAAIRequest = aaiEndpoint + "?search-node-type=service-instance&filter=service-instance-id:EQUALS:" + serviceInstanceId
-               msoLogger.debug("AAI query service instance request: " + queryAAIRequest)
-
-               APIResponse response = aaiUtil.executeAAIGetCall(execution, queryAAIRequest)
-
-               String returnCode = response.getStatusCode()
-               String aaiResponseAsString = response.getResponseBodyAsString()
-
-               msoLogger.debug("AAI query service instance return code: " + returnCode)
-               msoLogger.debug("AAI query service instance response: " + aaiResponseAsString)
-
                ExceptionUtil exceptionUtil = new ExceptionUtil()
+               try {
 
-               if (returnCode=='200') {
-                       msoLogger.debug('Service instance ' + serviceInstanceId + ' found in AAI.')
-               } else {
-                       if (returnCode=='404') {
+                       AAIResourceUri uri = AAIUriFactory.createNodesUri(Types.SERVICE_INSTANCE.getFragment(serviceInstanceId))
+                       if(getAAIClient().exists(uri)){
+                               logger.debug('Service instance ' + serviceInstanceId + ' found in AAI.')
+                       }else{
                                def message = 'Service instance ' + serviceInstanceId + ' was not found in AAI. Return code: 404.'
-                               msoLogger.debug(message)
+                               logger.debug(message)
                                exceptionUtil.buildAndThrowWorkflowException(execution, 2500, message)
-                       } else {
-                               WorkflowException aWorkflowException = exceptionUtil.MapAAIExceptionToWorkflowException(aaiResponseAsString, execution)
-                               throw new BpmnError("MSOWorkflowException")
                        }
+               }catch(BpmnError bpmnError){
+                       throw bpmnError
+               }catch(Exception ex){
+                       exceptionUtil.buildAndThrowWorkflowException(execution, 2500, ex.getMessage())
                }
        }