aboutsummaryrefslogtreecommitdiffstats
path: root/bpmn/MSOGammaBPMN/src/main/groovy/com/att/bpm/scripts/DoCreateVfModule.groovy
diff options
context:
space:
mode:
Diffstat (limited to 'bpmn/MSOGammaBPMN/src/main/groovy/com/att/bpm/scripts/DoCreateVfModule.groovy')
-rw-r--r--bpmn/MSOGammaBPMN/src/main/groovy/com/att/bpm/scripts/DoCreateVfModule.groovy1281
1 files changed, 0 insertions, 1281 deletions
diff --git a/bpmn/MSOGammaBPMN/src/main/groovy/com/att/bpm/scripts/DoCreateVfModule.groovy b/bpmn/MSOGammaBPMN/src/main/groovy/com/att/bpm/scripts/DoCreateVfModule.groovy
deleted file mode 100644
index 8293bfa9e3..0000000000
--- a/bpmn/MSOGammaBPMN/src/main/groovy/com/att/bpm/scripts/DoCreateVfModule.groovy
+++ /dev/null
@@ -1,1281 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * OPENECOMP - MSO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package com.att.bpm.scripts;
-
-import org.camunda.bpm.engine.delegate.BpmnError
-import org.camunda.bpm.engine.runtime.Execution
-import org.apache.commons.lang3.*
-
-import javax.xml.parsers.DocumentBuilder
-import javax.xml.parsers.DocumentBuilderFactory
-
-import org.apache.commons.codec.binary.Base64
-import org.springframework.web.util.UriUtils
-
-import org.openecomp.mso.bpmn.core.RollbackData
-import org.openecomp.mso.bpmn.core.WorkflowException
-import org.openecomp.mso.rest.APIResponse
-import org.openecomp.mso.rest.RESTClient
-import org.openecomp.mso.rest.RESTConfig
-
-import org.w3c.dom.Document
-import org.w3c.dom.Element
-import org.w3c.dom.NamedNodeMap
-import org.w3c.dom.Node
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource
-
-
-
-public class DoCreateVfModule extends VfModuleBase {
-
- String Prefix="DCVFM_"
- ExceptionUtil exceptionUtil = new ExceptionUtil()
-
- /**
- * Validates the request message and sets up the workflow.
- * @param execution the execution
- */
- public void preProcessRequest(Execution execution) {
- def method = getClass().getSimpleName() + '.preProcessRequest(' +
- 'execution=' + execution.getId() +
- ')'
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- logDebug('Entered ' + method, isDebugLogEnabled)
-
- execution.setVariable('prefix', Prefix)
-try{
- String request = execution.getVariable("DoCreateVfModuleRequest")
- utils.logAudit("DoCreateVfModule request: " + request)
-
- def rollbackData = execution.getVariable("RollbackData")
- if (rollbackData == null) {
- rollbackData = new RollbackData()
- }
-
- execution.setVariable ("CreateAAIVfModuleRequest", request)
- execution.setVariable("DCVFM_vnfParamsExistFlag", false)
- //tenantId
- def tenantId = ""
- if (utils.nodeExists(request, "tenant-id")) {
- tenantId = utils.getNodeText(request, "tenant-id")
- }
- execution.setVariable("DCVFM_tenantId", tenantId)
- rollbackData.put("VFMODULE", "tenantid", tenantId)
- //volumeGroupId
- def volumeGroupId = ""
- if (utils.nodeExists(request, "volume-group-id")) {
- volumeGroupId = utils.getNodeText(request, "volume-group-id")
- }
- execution.setVariable("DCVFM_volumeGroupId", volumeGroupId)
- //volumeGroupId
- def volumeGroupName = ""
- if (utils.nodeExists(request, "volume-group-name")) {
- volumeGroupName = utils.getNodeText(request, "volume-group-name")
- }
- execution.setVariable("DCVFM_volumeGroupName", volumeGroupName)
- //cloudSiteId
- def cloudSiteId = ""
- if (utils.nodeExists(request, "aic-cloud-region")) {
- cloudSiteId = utils.getNodeText(request, "aic-cloud-region")
- }
- execution.setVariable("DCVFM_cloudSiteId", cloudSiteId)
- rollbackData.put("VFMODULE", "aiccloudregion", cloudSiteId)
- logDebug("cloudSiteId: " + cloudSiteId, isDebugLogEnabled)
- //vnfType
- def vnfType = ""
- if (utils.nodeExists(request, "vnf-type")) {
- vnfType = utils.getNodeText(request, "vnf-type")
- }
- execution.setVariable("DCVFM_vnfType", vnfType)
- rollbackData.put("VFMODULE", "vnftype", vnfType)
- logDebug("vnfType: " + vnfType, isDebugLogEnabled)
- //vnfName
- def vnfName = ""
- if (utils.nodeExists(request, "vnf-name")) {
- vnfName = utils.getNodeText(request, "vnf-name")
- }
- execution.setVariable("DCVFM_vnfName", vnfName)
- rollbackData.put("VFMODULE", "vnfname", vnfName)
- logDebug("vnfName: " + vnfName, isDebugLogEnabled)
- //vnfId
- def vnfId = ""
- if (utils.nodeExists(request, "vnf-id")) {
- vnfId = utils.getNodeText(request, "vnf-id")
- }
- execution.setVariable("DCVFM_vnfId", vnfId)
- rollbackData.put("VFMODULE", "vnfid", vnfId)
- logDebug("vnfId: " + vnfId, isDebugLogEnabled)
- //vfModuleName
- def vfModuleName = ""
- if (utils.nodeExists(request, "vf-module-name")) {
- vfModuleName = utils.getNodeText(request, "vf-module-name")
- }
- execution.setVariable("DCVFM_vfModuleName", vfModuleName)
- rollbackData.put("VFMODULE", "vfmodulename", vfModuleName)
- logDebug("vfModuleName: " + vfModuleName, isDebugLogEnabled)
- //vfModuleModelName
- def vfModuleModelName = ""
- if (utils.nodeExists(request, "vf-module-model-name")) {
- vfModuleModelName = utils.getNodeText(request, "vf-module-model-name")
- }
- execution.setVariable("DCVFM_vfModuleModelName", vfModuleModelName)
- rollbackData.put("VFMODULE", "vfmodulemodelname", vfModuleModelName)
- logDebug("vfModuleModelName: " + vfModuleModelName, isDebugLogEnabled)
- //vfModuleId
- def vfModuleId = ""
- if (utils.nodeExists(request, "vf-module-id")) {
- vfModuleId = utils.getNodeText(request, "vf-module-id")
- }
- execution.setVariable("DCVFM_vfModuleId", vfModuleId)
- logDebug("vfModuleId: " + vfModuleId, isDebugLogEnabled)
- def requestId = ""
- if (utils.nodeExists(request, "request-id")) {
- requestId = utils.getNodeText(request, "request-id")
- }
- execution.setVariable("DCVFM_requestId", requestId)
- logDebug("requestId: " + requestId, isDebugLogEnabled)
- //serviceId
- def serviceId = ""
- if (utils.nodeExists(request, "service-id")) {
- serviceId = utils.getNodeText(request, "service-id")
- }
- execution.setVariable("DCVFM_serviceId", serviceId)
- logDebug("serviceId: " + serviceId, isDebugLogEnabled)
- //serviceInstanceId
- def serviceInstanceId = ""
- if (utils.nodeExists(request, "service-instance-id")) {
- serviceInstanceId = utils.getNodeText(request, "service-instance-id")
- }
- execution.setVariable("DCVFM_serviceInstanceId", serviceInstanceId)
- rollbackData.put("VFMODULE", "serviceInstanceId", serviceInstanceId)
- logDebug("serviceInstanceId: " + serviceInstanceId, isDebugLogEnabled)
- //source
- def source = ""
- if (utils.nodeExists(request, "source")) {
- source = utils.getNodeText(request, "source")
- }
- execution.setVariable("DCVFM_source", source)
- rollbackData.put("VFMODULE", "source", source)
- logDebug("source: " + source, isDebugLogEnabled)
- //backoutOnFailure
- NetworkUtils networkUtils = new NetworkUtils()
- def backoutOnFailure = networkUtils.isRollbackEnabled(execution,request)
- execution.setVariable("DCVFM_backoutOnFailure", backoutOnFailure)
- logDebug("backoutOnFailure: " + backoutOnFailure, isDebugLogEnabled)
- //isBaseVfModule
- def isBaseVfModule = "false"
- if (utils.nodeExists(request, "is-base-vf-module")) {
- isBaseVfModule = utils.getNodeText(request, "is-base-vf-module")
- }
- execution.setVariable("DCVFM_isBaseVfModule", isBaseVfModule)
- logDebug("isBaseVfModule: " + isBaseVfModule, isDebugLogEnabled)
-
- //asdcServiceModelVersion
- def asdcServiceModelVersion = ""
- if (utils.nodeExists(request, "asdc-service-model-version")) {
- asdcServiceModelVersion = utils.getNodeText(request, "asdc-service-model-version")
- }
- execution.setVariable("DCVFM_asdcServiceModelVersion", asdcServiceModelVersion)
- logDebug("asdcServiceModelVersion: " + asdcServiceModelVersion, isDebugLogEnabled)
-
- //Get or Generate UUID
- String uuid = execution.getVariable("DCVFM_uuid")
- if(uuid == null){
- uuid = UUID.randomUUID()
- logDebug("Generated messageId (UUID) is: " + uuid, isDebugLogEnabled)
- }else{
- logDebug("Found messageId (UUID) is: " + uuid, isDebugLogEnabled)
- }
- execution.setVariable("DCVFM_uuid", uuid)
- execution.setVariable("DCVFM_baseVfModuleId", "")
- execution.setVariable("DCVFM_baseVfModuleHeatStackId", "")
- execution.setVariable("DCVFM_heatStackId", "")
- execution.setVariable("DCVFM_contrailServiceInstanceFqdn", "")
- execution.setVariable("DCVFM_volumeGroupStackId", "")
- execution.setVariable("DCVFM_cloudRegionForVolume", "")
- rollbackData.put("VFMODULE", "rollbackPrepareUpdateVfModule", "false")
- rollbackData.put("VFMODULE", "rollbackUpdateAAIVfModule", "false")
- rollbackData.put("VFMODULE", "rollbackVnfAdapterCreate", "false")
- rollbackData.put("VFMODULE", "rollbackSDNCRequestActivate", "false")
- rollbackData.put("VFMODULE", "rollbackSDNCRequestAssign", "false")
- rollbackData.put("VFMODULE", "rollbackCreateAAIVfModule", "false")
-
- String sdncCallbackUrl = (String) execution.getVariable('URN_mso_workflow_sdncadapter_callback')
- if (sdncCallbackUrl == null || sdncCallbackUrl.trim().isEmpty()) {
- def msg = 'Required variable \'URN_mso_workflow_sdncadapter_callback\' is missing'
- logError(msg)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg)
- }
- execution.setVariable("DCVFM_sdncCallbackUrl", sdncCallbackUrl)
- utils.logAudit("SDNC Callback URL: " + sdncCallbackUrl)
- logDebug("SDNC Callback URL is: " + sdncCallbackUrl, isDebugLogEnabled)
- String vnfCallbackUrl = (String) execution.getVariable('URN_mso_workflow_vnfadapter_rest_callback')
- if (vnfCallbackUrl == null || vnfCallbackUrl.trim().isEmpty()) {
- def msg = 'Required variable \'URN_mso_workflow_vnfadapter_rest_callback\' is missing'
- logError(msg)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg)
- }
-
- // Process the parameters
-
- String vnfParamsChildNodes = utils.getChildNodes(request, "vnf-params")
- if(vnfParamsChildNodes == null || vnfParamsChildNodes.length() < 1){
- utils.log("DEBUG", "Request contains NO VNF Params", isDebugLogEnabled)
- }else{
- utils.log("DEBUG", "Request does contain VNF Params", isDebugLogEnabled)
- execution.setVariable("DCVFM_vnfParamsExistFlag", true)
-
- InputSource xmlSource = new InputSource(new StringReader(request));
- DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
- docFactory.setNamespaceAware(true)
- DocumentBuilder docBuilder = docFactory.newDocumentBuilder()
- Document xml = docBuilder.parse(xmlSource)
- //Get params, build map
- Map<String, String> paramsMap = new HashMap<String, String>()
- NodeList paramsList = xml.getElementsByTagNameNS("*", "param")
-
- for (int z = 0; z < paramsList.getLength(); z++) {
- Node node = paramsList.item(z)
- String paramValue = node.getTextContent()
- NamedNodeMap e = node.getAttributes()
- String paramName = e.getNamedItem("name").getTextContent()
- paramsMap.put(paramName, paramValue)
- }
- execution.setVariable("DCVFM_vnfParamsMap", paramsMap)
- }
-
- execution.setVariable("RollbackData", rollbackData)
-}catch(BpmnError b){
- throw b
-}catch(Exception e){
- exceptionUtil.buildAndThrowWorkflowException(execution, 2000, "Internal Error encountered in PreProcess method!")
-}
-
- logDebug('Exited ' + method, isDebugLogEnabled)
- }
-
- /**
- * Validates a workflow response.
- * @param execution the execution
- * @param responseVar the execution variable in which the response is stored
- * @param responseCodeVar the execution variable in which the response code is stored
- * @param errorResponseVar the execution variable in which the error response is stored
- */
- public void validateWorkflowResponse(Execution execution, String responseVar,
- String responseCodeVar, String errorResponseVar) {
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils(this)
- sdncAdapterUtils.validateSDNCResponse(execution, responseVar, responseCodeVar, errorResponseVar)
- }
-
-
- /**
- * Sends the empty, synchronous response back to the API Handler.
- * @param execution the execution
- */
- public void sendResponse(Execution execution) {
- def method = getClass().getSimpleName() + '.sendResponse(' +
- 'execution=' + execution.getId() +
- ')'
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- logDebug('Entered ' + method, isDebugLogEnabled)
-
- try {
- buildResponse(execution, "", 200)
- logDebug('Exited ' + method, isDebugLogEnabled)
- } catch (BpmnError e) {
- throw e;
- } catch (Exception e) {
- logError('Caught exception in ' + method, e)
- exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Internal Error')
- }
- }
-
- /**
- * Using the received vnfId and vfModuleId, query AAI to get the corresponding VNF info.
- * A 200 response is expected with the VNF info in the response body. Will find out the base module info
- * and existing VNF's name for add-on modules
- *
- * @param execution The flow's execution instance.
- */
- public void postProcessCreateAAIVfModule(Execution execution) {
- def method = getClass().getSimpleName() + '.getVfModule(' +
- 'execution=' + execution.getId() +
- ')'
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- logDebug('Entered ' + method, isDebugLogEnabled)
-
- try {
- def createResponse = execution.getVariable('DCVFM_createVfModuleResponse')
- utils.logAudit("createVfModule Response: " + createResponse)
-
- def rollbackData = execution.getVariable("RollbackData")
- String vnfName = utils.getNodeText1(createResponse, 'vnf-name')
- if (vnfName != null) {
- execution.setVariable('DCVFM_vnfName', vnfName)
- logDebug("vnfName retrieved from AAI is: " + vnfName, isDebugLogEnabled)
- rollbackData.put("VFMODULE", "vnfname", vnfName)
- }
- String vnfId = utils.getNodeText1(createResponse, 'vnf-id')
- execution.setVariable('DCVFM_vnfId', vnfId)
- logDebug("vnfId is: " + vnfId, isDebugLogEnabled)
- String vfModuleId = utils.getNodeText1(createResponse, 'vf-module-id')
- execution.setVariable('DCVFM_vfModuleId', vfModuleId)
- logDebug("vfModuleId is: " + vfModuleId, isDebugLogEnabled)
- rollbackData.put("VFMODULE", "vnfid", vnfId)
- rollbackData.put("VFMODULE", "vfmoduleid", vfModuleId)
- rollbackData.put("VFMODULE", "rollbackCreateAAIVfModule", "true")
- rollbackData.put("VFMODULE", "rollbackPrepareUpdateVfModule", "true")
- execution.setVariable("RollbackData", rollbackData)
- } catch (Exception ex) {
- ex.printStackTrace()
- logDebug('Exception occurred while postProcessing CreateAAIVfModule request:' + ex.getMessage(),isDebugLogEnabled)
- exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Bad response from CreateAAIVfModule' + ex.getMessage())
- }
- logDebug('Exited ' + method, isDebugLogEnabled)
- }
-
-
- /**
- * Using the received vnfId and vfModuleId, query AAI to get the corresponding VNF info.
- * A 200 response is expected with the VNF info in the response body. Will find out the base module info.
- *
- * @param execution The flow's execution instance.
- */
- public void queryAAIVfModule(Execution execution) {
- def isDebugLogEnabled=execution.getVariable("isDebugLogEnabled")
- def method = getClass().getSimpleName() + '.getVfModule(' +
- 'execution=' + execution.getId() +
- ')'
- logDebug('Entered ' + method, isDebugLogEnabled)
-
- try {
- def vnfId = execution.getVariable('DCVFM_vnfId')
- def vfModuleId = execution.getVariable('DCVFM_vfModuleId')
-
- AaiUtil aaiUriUtil = new AaiUtil(this)
- String aai_uri = aaiUriUtil.getNetworkGenericVnfUri(execution)
- logDebug('AAI URI is: ' + aai_uri, isDebugLogEnabled)
-
- String endPoint = execution.getVariable("URN_aai_endpoint") + "${aai_uri}/" + UriUtils.encode(vnfId, "UTF-8")
- utils.logAudit("AAI endPoint: " + endPoint)
-
- String basicAuthCred = utils.getBasicAuth(execution.getVariable("URN_aai_auth"),execution.getVariable("URN_mso_msoKey"))
-
- try {
- RESTConfig config = new RESTConfig(endPoint);
- def responseData = ''
- def aaiRequestId = UUID.randomUUID().toString()
- RESTClient client = new RESTClient(config).
- addHeader('X-TransactionId', aaiRequestId).
- addHeader('X-FromAppId', 'MSO').
- addHeader('Content-Type', 'application/xml').
- addHeader('Accept','application/xml');
-
- if (basicAuthCred != null && !"".equals(basicAuthCred)) {
- client.addAuthorizationHeader(basicAuthCred)
- }
-
- logDebug('sending GET to AAI endpoint \'' + endPoint + '\'', isDebugLogEnabled)
- APIResponse response = client.httpGet()
- utils.logAudit("createVfModule - invoking httpGet() to AAI")
-
- responseData = response.getResponseBodyAsString()
- if (responseData != null) {
- logDebug("Received generic VNF data: " + responseData, isDebugLogEnabled)
-
- }
-
- utils.logAudit("createVfModule - queryAAIVfModule Response: " + responseData)
- utils.logAudit("createVfModule - queryAAIVfModule ResponseCode: " + response.getStatusCode())
-
- execution.setVariable('DCVFM_queryAAIVfModuleResponseCode', response.getStatusCode())
- execution.setVariable('DCVFM_queryAAIVfModuleResponse', responseData)
- logDebug('Response code:' + response.getStatusCode(), isDebugLogEnabled)
- logDebug('Response:' + System.lineSeparator() + responseData, isDebugLogEnabled)
- if (response.getStatusCode() == 200) {
- // Parse the VNF record from A&AI to find base module info
- logDebug('Parsing the VNF data to find base module info', isDebugLogEnabled)
- if (responseData != null) {
- def vfModulesText = utils.getNodeXml(responseData, "vf-modules")
- def xmlVfModules= new XmlSlurper().parseText(vfModulesText)
- def vfModules = xmlVfModules.'**'.findAll {it.name() == "vf-module"}
- int vfModulesSize = 0
- for (i in 0..vfModules.size()-1) {
- def vfModuleXml = groovy.xml.XmlUtil.serialize(vfModules[i])
- def isBaseVfModule = utils.getNodeText(vfModuleXml, "is-base-vf-module")
-
- if (isBaseVfModule == "true") {
- String baseModuleId = utils.getNodeText1(vfModuleXml, "vf-module-id")
- execution.setVariable("DCVFM_baseVfModuleId", baseModuleId)
- logDebug('Received baseVfModuleId: ' + baseModuleId, isDebugLogEnabled)
- String baseModuleHeatStackId = utils.getNodeText1(vfModuleXml, "heat-stack-id")
- execution.setVariable("DCVFM_baseVfModuleHeatStackId", baseModuleHeatStackId)
- logDebug('Received baseVfModuleHeatStackId: ' + baseModuleHeatStackId, isDebugLogEnabled)
- }
- }
- }
- }
- } catch (Exception ex) {
- ex.printStackTrace()
- logDebug('Exception occurred while executing AAI GET:' + ex.getMessage(),isDebugLogEnabled)
- exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'AAI GET Failed:' + ex.getMessage())
- }
- logDebug('Exited ' + method, isDebugLogEnabled)
- } catch (BpmnError e) {
- throw e;
- } catch (Exception e) {
- logError('Caught exception in ' + method, e)
- exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in queryAAIVfModule(): ' + e.getMessage())
- }
- }
-
-
- public void preProcessSDNCAssignRequest(Execution execution){
- def isDebugLogEnabled = execution.getVariable("isDebugLogEnabled")
- execution.setVariable("prefix", Prefix)
- logDebug(" ======== STARTED preProcessSDNCAssignRequest ======== ", isDebugLogEnabled)
- def vnfId = execution.getVariable("DCVFM_vnfId")
- def vfModuleId = execution.getVariable("DCVFM_vfModuleId")
- def serviceInstanceId = execution.getVariable("DCVFM_serviceInstanceId")
- logDebug("NEW VNF ID: " + vnfId, isDebugLogEnabled)
- utils.logAudit("NEW VNF ID: " + vnfId)
-
- try{
-
- //Build SDNC Request
-
- def svcInstId = ""
- if (serviceInstanceId == null || serviceInstanceId.isEmpty()) {
- svcInstId = vfModuleId
- }
- else {
- svcInstId = serviceInstanceId
- }
-
- String assignSDNCRequest = buildSDNCRequest(execution, svcInstId, "assign")
-
- assignSDNCRequest = utils.formatXml(assignSDNCRequest)
- execution.setVariable("DCVFM_assignSDNCRequest", assignSDNCRequest)
- logDebug("Outgoing AssignSDNCRequest is: \n" + assignSDNCRequest, isDebugLogEnabled)
- utils.logAudit("Outgoing AssignSDNCRequest is: \n" + assignSDNCRequest)
-
- }catch(Exception e){
- utils.log("ERROR", "Exception Occured Processing preProcessSDNCAssignRequest. Exception is:\n" + e, isDebugLogEnabled)
- exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occurred during prepareProvision Method:\n" + e.getMessage())
- }
- logDebug("======== COMPLETED preProcessSDNCAssignRequest ======== ", isDebugLogEnabled)
- }
-
- public void preProcessSDNCGetRequest(Execution execution){
- def isDebugLogEnabled = execution.getVariable("isDebugLogEnabled")
- execution.setVariable("prefix", Prefix)
- utils.log("DEBUG", " ======== STARTED preProcessSDNCGetRequest Process ======== ", isDebugLogEnabled)
- try{
- String response = execution.getVariable("DCVFM_assignSDNCAdapterResponse")
- utils.logAudit("DCVFM_assignSDNCAdapterResponse is: \n" + response)
-
- String data = utils.getNodeXml(response, "response-data")
- data = data.replaceAll("&lt;", "<")
- data = data.replaceAll("&gt;", ">")
- String vnfId = utils.getNodeText1(data, "vnf-id")
- def vfModuleId = execution.getVariable('DCVFM_vfModuleId')
- def serviceInstanceId = execution.getVariable('DCVFM_serviceInstanceId')
-
- String uuid = execution.getVariable('testReqId') // for junits
- if(uuid==null){
- uuid = execution.getVariable("att-mso-request-id") + "-" + System.currentTimeMillis()
- }
-
- String serviceOperation = "/VNF-API:vnfs/vnf-list/" + vfModuleId
- def callbackUrl = execution.getVariable("DCVFM_sdncCallbackUrl")
- utils.logAudit("callbackUrl:" + callbackUrl)
-
- def svcInstId = ""
- if (serviceInstanceId == null || serviceInstanceId.isEmpty()) {
- svcInstId = vfModuleId
- }
- else {
- svcInstId = serviceInstanceId
- }
-
- //!!!! TEMPORARY WORKAROUND FOR SDNC REPLICATION ISSUE
- sleep(5000)
-
- String SDNCGetRequest =
- """<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5="http://ecomp.att.com/mso/request/types/v1"
- xmlns:sdncadapterworkflow="http://ecomp.att.com/mso/workflow/schema/v1"
- xmlns:sdncadapter="http://domain2.att.com/workflow/sdnc/adapter/schema/v1">
- <sdncadapter:RequestHeader>
- <sdncadapter:RequestId>${uuid}</sdncadapter:RequestId>
- <sdncadapter:SvcInstanceId>${svcInstId}</sdncadapter:SvcInstanceId>
- <sdncadapter:SvcAction>query</sdncadapter:SvcAction>
- <sdncadapter:SvcOperation>${serviceOperation}</sdncadapter:SvcOperation>
- <sdncadapter:CallbackUrl>${callbackUrl}</sdncadapter:CallbackUrl>
- <sdncadapter:MsoAction>mobility</sdncadapter:MsoAction>
- </sdncadapter:RequestHeader>
- <sdncadapterworkflow:SDNCRequestData></sdncadapterworkflow:SDNCRequestData>
- </sdncadapterworkflow:SDNCAdapterWorkflowRequest>"""
-
- utils.logAudit("SDNCGetRequest: \n" + SDNCGetRequest)
- execution.setVariable("DCVFM_getSDNCRequest", SDNCGetRequest)
- utils.log("DEBUG", "Outgoing GetSDNCRequest is: \n" + SDNCGetRequest, isDebugLogEnabled)
-
- }catch(Exception e){
- utils.log("ERROR", "Exception Occurred Processing preProcessSDNCGetRequest. Exception is:\n" + e, isDebugLogEnabled)
- exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occured during prepareProvision Method:\n" + e.getMessage())
- }
- utils.log("DEBUG", "======== COMPLETED preProcessSDNCGetRequest Process ======== ", isDebugLogEnabled)
- }
-
-
- public void preProcessVNFAdapterRequest(Execution execution) {
- def method = getClass().getSimpleName() + '.VNFAdapterCreateVfModule(' +
- 'execution=' + execution.getId() +
- ')'
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- logDebug('Entered ' + method, isDebugLogEnabled)
-
- //def xml = execution.getVariable("DoCreateVfModuleRequest")
- //logDebug('VNF REQUEST is: ' + xml, isDebugLogEnabled)
-
- //Get variables
- //cloudSiteId
- def cloudSiteId = execution.getVariable("DCVFM_cloudSiteId")
- //tenantId
- def tenantId = execution.getVariable("DCVFM_tenantId")
- //vnfType
- def vnfType = execution.getVariable("DCVFM_vnfType")
- //vnfName
- def vnfName = execution.getVariable("DCVFM_vnfName")
- //vnfId
- def vnfId = execution.getVariable("DCVFM_vnfId")
- //vfModuleName
- def vfModuleName = execution.getVariable("DCVFM_vfModuleName")
- //vfModuleModelName
- def vfModuleModelName = execution.getVariable("DCVFM_vfModuleModelName")
- //vfModuleId
- def vfModuleId = execution.getVariable("DCVFM_vfModuleId")
- //requestId
- def requestId = execution.getVariable("DCVFM_requestId")
- //serviceId
- def serviceId = execution.getVariable("DCVFM_serviceId")
- //serviceInstanceId
- def serviceInstanceId = execution.getVariable("DCVFM_serviceInstanceId")
- //backoutOnFailure
- def backoutOnFailure = execution.getVariable("DCVFM_backoutOnFailure")
- //volumeGroupId
- def volumeGroupId = execution.getVariable("DCVFM_volumeGroupId")
- // baseVfModuleId
- def baseVfModuleId = execution.getVariable("DCVFM_baseVfModuleId")
- // baseVfModuleStackId
- def baseVfModuleStackId = execution.getVariable("DCVFM_baseVfModuleHeatStackId")
- // asdcServiceModelVersion
- def asdcServiceModelVersion = execution.getVariable("DCVFM_asdcServiceModelVersion")
- //volumeGroupStackId
- def volumeGroupStackId = execution.getVariable("DCVFM_volumeGroupStackId")
-
- def messageId = execution.getVariable('att-mso-request-id') + '-' +
- System.currentTimeMillis()
-
- def notificationUrl = execution.getVariable("URN_mso_workflow_vnfadapter_rest_callback")
- def useQualifiedHostName = execution.getVariable("URN_mso_use_qualified_host")
-
- utils.logAudit("notificationUrl: " + notificationUrl)
- utils.logAudit("QualifiedHostName: " + useQualifiedHostName)
-
- if ('true'.equals(useQualifiedHostName)) {
- notificationUrl = utils.getQualifiedHostNameForCallback(notificationUrl)
- }
-
- String vnfParams
- if(execution.getVariable("DCVFM_vnfParamsExistFlag") == true){
- StringBuilder sbParams = new StringBuilder()
- Map<String, String> paramsMap = execution.getVariable("DCVFM_vnfParamsMap")
-
- for (Map.Entry<String, String> entry : paramsMap.entrySet()) {
- String paramsXml
- String paramName = entry.getKey();
- String paramValue = entry.getValue()
- paramsXml =
- """ <entry>
- <key>${paramName}</key>
- <value>${paramValue}</value>
- </entry>
- """
-
- vnfParams = sbParams.append(paramsXml)
- }
- }else{
- vnfParams = ""
- }
-
- //Get SDNC Response Data for VnfSubCreate Request
- String sdncGetResponse = execution.getVariable('DCVFM_getSDNCAdapterResponse')
- utils.logAudit("sdncGetResponse: " + sdncGetResponse)
-
- String vfModuleParams = buildVfModuleParams(vnfParams, sdncGetResponse, vnfId, vnfName,
- vfModuleId, vfModuleName)
-
- def svcInstId = ""
- if (serviceInstanceId == null || serviceInstanceId.isEmpty()) {
- svcInstId = serviceId
- }
- else {
- svcInstId = serviceInstanceId
- }
-
-
- def createVnfARequest = """
- <createVfModuleRequest>
- <cloudSiteId>${cloudSiteId}</cloudSiteId>
- <tenantId>${tenantId}</tenantId>
- <vnfId>${vnfId}</vnfId>
- <vnfName>${vnfName}</vnfName>
- <vfModuleName>${vfModuleName}</vfModuleName>
- <vfModuleId>${vfModuleId}</vfModuleId>
- <vnfType>${vnfType}</vnfType>
- <vfModuleType>${vfModuleModelName}</vfModuleType>
- <vnfVersion>${asdcServiceModelVersion}</vnfVersion>
- <requestType></requestType>
- <volumeGroupId>${volumeGroupId}</volumeGroupId>
- <volumeGroupStackId>${volumeGroupStackId}</volumeGroupStackId>
- <baseVfModuleId>${baseVfModuleId}</baseVfModuleId>
- <baseVfModuleStackId>${baseVfModuleStackId}</baseVfModuleStackId>
- <skipAAI>true</skipAAI>
- <backout>${backoutOnFailure}</backout>
- <failIfExists>true</failIfExists>
- <vfModuleParams>
- ${vfModuleParams}
- </vfModuleParams>
- <msoRequest>
- <requestId>${requestId}</requestId>
- <serviceInstanceId>${svcInstId}</serviceInstanceId>
- </msoRequest>
- <messageId>${messageId}</messageId>
- <notificationUrl>${notificationUrl}</notificationUrl>
- </createVfModuleRequest>"""
-
- utils.logAudit("Create VfModule Request to VNF Adapter : " + createVnfARequest)
- logDebug("Create VfModule Request to VNF Adapter: " + createVnfARequest, isDebugLogEnabled)
- execution.setVariable("DCVFM_createVnfARequest", createVnfARequest)
- }
-
- /**
- * Validates the request, request id and service instance id. If a problem is found,
- * a WorkflowException is generated and an MSOWorkflowException event is thrown. This
- * method also sets up the log context for the workflow.
- * @param execution the execution
- * @return the validated request
- */
- public String validateInfraRequest(Execution execution) {
- def method = getClass().getSimpleName() + '.validateInfraRequest(' +
- 'execution=' + execution.getId() +
- ')'
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- logDebug('Entered ' + method, isDebugLogEnabled)
-
- String processKey = getProcessKey(execution);
- def prefix = execution.getVariable("prefix")
-
- if (prefix == null) {
- exceptionUtil.buildAndThrowWorkflowException(execution, 1002, processKey + " prefix is null")
- }
-
- try {
- def request = execution.getVariable(prefix + 'Request')
-
- if (request == null) {
- request = execution.getVariable(processKey + 'Request')
-
- if (request == null) {
- request = execution.getVariable('bpmnRequest')
- }
-
- setVariable(execution, processKey + 'Request', null);
- setVariable(execution, 'bpmnRequest', null);
- setVariable(execution, prefix + 'Request', request);
- }
-
- if (request == null) {
- exceptionUtil.buildAndThrowWorkflowException(execution, 1002, processKey + " request is null")
- }
- utils.logAudit("DoCreateVfModule Request: " + request)
-
- /*
-
- def requestId = execution.getVariable("att-mso-request-id")
-
- if (requestId == null) {
- createWorkflowException(execution, 1002, processKey + " request has no att-mso-request-id")
- }
-
- def serviceInstanceId = execution.getVariable("att-mso-service-instance-id")
-
- if (serviceInstanceId == null) {
- createWorkflowException(execution, 1002, processKey + " request message has no att-mso-service-instance-id")
- }
-
- utils.logContext(requestId, serviceInstanceId)
- */
- logDebug('Incoming message: ' + System.lineSeparator() + request, isDebugLogEnabled)
- logDebug('Exited ' + method, isDebugLogEnabled)
- return request
- } catch (BpmnError e) {
- throw e;
- } catch (Exception e) {
- logError('Caught exception in ' + method, e)
- exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Invalid Message")
- }
- }
-
- public boolean isVolumeGroupIdPresent(Execution execution) {
-
- def method = getClass().getSimpleName() + '.isVolumeGroupIdPresent(' +
- 'execution=' + execution.getId() +
- ')'
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- logDebug('Entered ' + method, isDebugLogEnabled)
-
- def request = execution.getVariable('DoCreateVfModuleRequest')
- String volumeGroupId = utils.getNodeText1(request, "volume-group-id")
- if (volumeGroupId == null || volumeGroupId.isEmpty()) {
- logDebug('No volume group id is present', isDebugLogEnabled)
- return false
- }
- else {
- logDebug('Volume group id is present', isDebugLogEnabled)
- return true
- }
-
- }
-
- public boolean isVolumeGroupNamePresent(Execution execution) {
-
- def method = getClass().getSimpleName() + '.isVolumeGroupNamePresent(' +
- 'execution=' + execution.getId() +
- ')'
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- logDebug('Entered ' + method, isDebugLogEnabled)
-
- def request = execution.getVariable('DoCreateVfModuleRequest')
- String volumeGroupName = utils.getNodeText1(request, "volume-group-name")
- if (volumeGroupName == null || volumeGroupName.isEmpty()) {
- logDebug('No volume group name is present', isDebugLogEnabled)
- return false
- }
- else {
- logDebug('Volume group name is present', isDebugLogEnabled)
- return true
- }
-
- }
-
- public String buildSDNCRequest(Execution execution, String svcInstId, String action){
-
- String uuid = execution.getVariable('testReqId') // for junits
- if(uuid==null){
- uuid = execution.getVariable("att-mso-request-id") + "-" + System.currentTimeMillis()
- }
- def callbackURL = execution.getVariable("DCVFM_sdncCallbackUrl")
- def requestId = execution.getVariable("DCVFM_requestId")
- def serviceId = execution.getVariable("DCVFM_serviceId")
- def vnfType = execution.getVariable("DCVFM_vnfType")
- def vnfName = execution.getVariable("DCVFM_vnfName")
- def tenantId = execution.getVariable("DCVFM_tenantId")
- def source = execution.getVariable("DCVFM_source")
- def backoutOnFailure = execution.getVariable("DCVFM_backoutOnFailure")
- def vfModuleId = execution.getVariable("DCVFM_vfModuleId")
- def vfModuleName = execution.getVariable("DCVFM_vfModuleName")
- def vfModuleModelName = execution.getVariable("DCVFM_vfModuleModelName")
- def vnfId = execution.getVariable("DCVFM_vnfId")
- def cloudSiteId = execution.getVariable("DCVFM_cloudSiteId")
-
- String sdncVNFParamsXml = ""
-
- if(execution.getVariable("DCVFM_vnfParamsExistFlag") == true){
- sdncVNFParamsXml = buildSDNCParamsXml(execution)
- }else{
- sdncVNFParamsXml = ""
- }
-
- String sdncRequest =
- """<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5="http://ecomp.att.com/mso/request/types/v1"
- xmlns:sdncadapterworkflow="http://ecomp.att.com/mso/workflow/schema/v1"
- xmlns:sdncadapter="http://domain2.att.com/workflow/sdnc/adapter/schema/v1">
- <sdncadapter:RequestHeader>
- <sdncadapter:RequestId>${requestId}</sdncadapter:RequestId>
- <sdncadapter:SvcInstanceId>${svcInstId}</sdncadapter:SvcInstanceId>
- <sdncadapter:SvcAction>${action}</sdncadapter:SvcAction>
- <sdncadapter:SvcOperation>vnf-topology-operation</sdncadapter:SvcOperation>
- <sdncadapter:CallbackUrl>${callbackURL}</sdncadapter:CallbackUrl>
- </sdncadapter:RequestHeader>
- <sdncadapterworkflow:SDNCRequestData>
- <request-information>
- <request-id>${requestId}</request-id>
- <request-action>VNFActivateRequest</request-action>
- <source>${source}</source>
- <notification-url/>
- </request-information>
- <service-information>
- <service-id>${serviceId}</service-id>
- <service-type>${serviceId}</service-type>
- <service-instance-id>${svcInstId}</service-instance-id>
- <subscriber-name>notsurewecare</subscriber-name>
- </service-information>
- <vnf-request-information>
- <vnf-id>${vfModuleId}</vnf-id>
- <vnf-type>${vfModuleModelName}</vnf-type>
- <vnf-name>${vfModuleName}</vnf-name>
- <generic-vnf-id>${vnfId}</generic-vnf-id>
- <generic-vnf-name>${vnfName}</generic-vnf-name>
- <generic-vnf-type>${vnfType}</generic-vnf-type>
- <aic-cloud-region>${cloudSiteId}</aic-cloud-region>
- <tenant>${tenantId}</tenant>
- ${sdncVNFParamsXml}
- </vnf-request-information>
- </sdncadapterworkflow:SDNCRequestData>
- </sdncadapterworkflow:SDNCAdapterWorkflowRequest>"""
-
- utils.logAudit("sdncRequest: " + sdncRequest)
- return sdncRequest
-
- }
-
- public void preProcessSDNCActivateRequest(Execution execution) {
- def method = getClass().getSimpleName() + '.preProcessSDNCActivateRequest(' +
- 'execution=' + execution.getId() +
- ')'
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- logDebug('Entered ' + method, isDebugLogEnabled)
- execution.setVariable("prefix", Prefix)
- logDebug(" ======== STARTED preProcessSDNCActivateRequest Process ======== ", isDebugLogEnabled)
- try{
- String vnfId = execution.getVariable("DCVFM_vnfId")
- String vfModuleId = execution.getVariable("DCVFM_vfModuleId")
- String serviceInstanceId = execution.getVariable("DCVFM_serviceInstanceId")
-
- def svcInstId = ""
- if (serviceInstanceId == null || serviceInstanceId.isEmpty()) {
- svcInstId = vfModuleId
- }
- else {
- svcInstId = serviceInstanceId
- }
- String activateSDNCRequest = buildSDNCRequest(execution, svcInstId, "activate")
-
- execution.setVariable("DCVFM_activateSDNCRequest", activateSDNCRequest)
- logDebug("Outgoing CommitSDNCRequest is: \n" + activateSDNCRequest, isDebugLogEnabled)
- utils.logAudit("Outgoing CommitSDNCRequest is: \n" + activateSDNCRequest)
-
- }catch(Exception e){
- log.debug("Exception Occured Processing preProcessSDNCActivateRequest. Exception is:\n" + e, isDebugLogEnabled)
- exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occured during preProcessSDNCActivateRequest Method:\n" + e.getMessage())
- }
- logDebug("======== COMPLETED preProcessSDNCActivateRequest Process ======== ", isDebugLogEnabled)
- }
-
- public void postProcessVNFAdapterRequest(Execution execution) {
- def method = getClass().getSimpleName() + '.postProcessVNFAdapterRequest(' +
- 'execution=' + execution.getId() +
- ')'
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- logDebug('Entered ' + method, isDebugLogEnabled)
- execution.setVariable("prefix",Prefix)
- try{
- logDebug(" *** STARTED postProcessVNFAdapterRequest Process*** ", isDebugLogEnabled)
-
- String vnfResponse = execution.getVariable("DCVFM_createVnfAResponse")
- logDebug("VNF Adapter Response is: " + vnfResponse, isDebugLogEnabled)
- utils.logAudit("createVnfAResponse is: \n" + vnfResponse)
-
- RollbackData rollbackData = execution.getVariable("RollbackData")
- if(vnfResponse != null){
-
- if(vnfResponse.contains("createVfModuleResponse")){
- logDebug("Received a Good Response from VNF Adapter for CREATE_VF_MODULE Call.", isDebugLogEnabled)
- execution.setVariable("DCVFM_vnfVfModuleCreateCompleted", true)
- String heatStackId = utils.getNodeText1(vnfResponse, "vfModuleStackId")
- execution.setVariable("DCVFM_heatStackId", heatStackId)
- logDebug("Received heat stack id from VNF Adapter: " + heatStackId, isDebugLogEnabled)
- rollbackData.put("VFMODULE", "heatstackid", heatStackId)
- // Parse vnfOutputs for network_fqdn
- if (vnfResponse.contains("vfModuleOutputs")) {
- def vfModuleOutputsXml = utils.getNodeXml(vnfResponse, "vfModuleOutputs")
- InputSource source = new InputSource(new StringReader(vfModuleOutputsXml));
- DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
- docFactory.setNamespaceAware(true)
- DocumentBuilder docBuilder = docFactory.newDocumentBuilder()
- Document outputsXml = docBuilder.parse(source)
-
- NodeList entries = outputsXml.getElementsByTagNameNS("*", "entry")
- for (int i = 0; i< entries.getLength(); i++) {
- Node node = entries.item(i)
- if (node.getNodeType() == Node.ELEMENT_NODE) {
- Element element = (Element) node
- String key = element.getElementsByTagNameNS("*", "key").item(0).getTextContent()
- if (key.equals("contrail-service-instance-fqdn")) {
- String contrailServiceInstanceFqdn = element.getElementsByTagNameNS("*", "value").item(0).getTextContent()
- logDebug("Obtained contrailServiceInstanceFqdn: " + contrailServiceInstanceFqdn, isDebugLogEnabled)
- execution.setVariable("DCVFM_contrailServiceInstanceFqdn", contrailServiceInstanceFqdn)
- }
- }
- }
- }
- }else{
- logDebug("Received a BAD Response from VNF Adapter for CREATE_VF_MODULE Call.", isDebugLogEnabled)
- exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "VNF Adapter Error")
- }
- }else{
- logDebug("Response from VNF Adapter is Null for CREATE_VF_MODULE Call.", isDebugLogEnabled)
- exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Empty response from VNF Adapter")
- }
-
- rollbackData.put("VFMODULE", "rollbackVnfAdapterCreate", "true")
- execution.setVariable("RollbackData", rollbackData)
-
- }catch(BpmnError b){
- throw b
- }catch(Exception e){
- logDebug("Internal Error Occured in PostProcess Method", isDebugLogEnabled)
- exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Internal Error Occured in PostProcess Method")
- }
- logDebug(" *** COMPLETED postProcessVnfAdapterResponse Process*** ", isDebugLogEnabled)
- }
-
-
- public void preProcessUpdateAAIVfModuleRequestOrch(Execution execution) {
- def method = getClass().getSimpleName() + '.preProcessUpdateAAIVfModuleRequestOrch(' +
- 'execution=' + execution.getId() +
- ')'
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- logDebug('Entered ' + method, isDebugLogEnabled)
- execution.setVariable("prefix", Prefix)
- logDebug(" ======== STARTED preProcessUpdateAAIVfModuleRequestOrch ======== ", isDebugLogEnabled)
-
- try{
-
- //Build UpdateAAIVfModule Request
- boolean setContrailServiceInstanceFqdn = false
- def contrailServiceInstanceFqdn = execution.getVariable("DCVFM_contrailServiceInstanceFqdn")
- if (!contrailServiceInstanceFqdn.equals("")) {
- setContrailServiceInstanceFqdn = true
- }
-
- String updateAAIVfModuleRequest = buildUpdateAAIVfModuleRequest(execution, false, true, true, setContrailServiceInstanceFqdn)
-
- updateAAIVfModuleRequest = utils.formatXml(updateAAIVfModuleRequest)
- execution.setVariable("DCVFM_updateAAIVfModuleRequest", updateAAIVfModuleRequest)
- logDebug("Outgoing UpdateAAIVfModuleRequest is: \n" + updateAAIVfModuleRequest, isDebugLogEnabled)
- utils.logAudit("Outgoing UpdateAAIVfModuleRequest is: \n" + updateAAIVfModuleRequest)
-
- }catch(Exception e){
- utils.log("ERROR", "Exception Occured Processing preProcessUpdateAAIVfModuleRequestOrch. Exception is:\n" + e, isDebugLogEnabled)
- exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occured during preProcessUpdateAAIVfModuleRequestOrch Method:\n" + e.getMessage())
- }
- logDebug("======== COMPLETED preProcessUpdateAAIVfModuleRequestOrch ======== ", isDebugLogEnabled)
-
- }
-
- public void preProcessUpdateAAIVfModuleRequestGroup(Execution execution) {
- def method = getClass().getSimpleName() + '.preProcessUpdateAAIVfModuleRequestGroup(' +
- 'execution=' + execution.getId() +
- ')'
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- logDebug('Entered ' + method, isDebugLogEnabled)
- execution.setVariable("prefix", Prefix)
- logDebug(" ======== STARTED preProcessUpdateAAIVfModuleRequestGroup ======== ", isDebugLogEnabled)
-
- try{
-
- //Build UpdateAAIVfModule Request
-
- String updateAAIVfModuleRequest = buildUpdateAAIVfModuleRequest(execution, true, false, false, false)
-
- updateAAIVfModuleRequest = utils.formatXml(updateAAIVfModuleRequest)
- execution.setVariable("DCVFM_updateAAIVfModuleRequest", updateAAIVfModuleRequest)
- logDebug("Outgoing UpdateAAIVfModuleRequest is: \n" + updateAAIVfModuleRequest, isDebugLogEnabled)
- utils.logAudit("Outgoing UpdateAAIVfModuleRequest is: \n" + updateAAIVfModuleRequest)
-
- }catch(Exception e){
- utils.log("ERROR", "Exception Occured Processing preProcessUpdateAAIVfModuleRequestGroup. Exception is:\n" + e, isDebugLogEnabled)
- exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occured during preProcessUpdateAAIVfModuleRequestGroup Method:\n" + e.getMessage())
- }
- logDebug("======== COMPLETED preProcessUpdateAAIVfModuleRequestGroup ======== ", isDebugLogEnabled)
-
- }
-
- public void validateSDNCResponse(Execution execution, String response, String method){
- def isDebugLogEnabled=execution.getVariable("isDebugLogEnabled")
- execution.setVariable("prefix",Prefix)
- logDebug(" *** STARTED ValidateSDNCResponse Process*** ", isDebugLogEnabled)
-
- WorkflowException workflowException = execution.getVariable("WorkflowException")
- boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
-
- utils.logAudit("workflowException: " + workflowException)
-
- SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils(this)
- sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)
-
- utils.logAudit("SDNCResponse: " + response)
-
- String sdncResponse = response
- if(execution.getVariable(Prefix + 'sdncResponseSuccess') == true){
- logDebug("Received a Good Response from SDNC Adapter for " + method + " SDNC Call. Response is: \n" + sdncResponse, isDebugLogEnabled)
- RollbackData rollbackData = execution.getVariable("RollbackData")
-
- if(method.equals("assign")){
- rollbackData.put("VFMODULE", "rollbackSDNCRequestAssign", "true")
- execution.setVariable("CRTGVNF_sdncAssignCompleted", true)
- }
- else if (method.equals("activate")) {
- rollbackData.put("VFMODULE", "rollbackSDNCRequestActivate", "true")
- }
- execution.setVariable("RollbackData", rollbackData)
- }else{
- logDebug("Received a BAD Response from SDNC Adapter for " + method + " SDNC Call.", isDebugLogEnabled)
- throw new BpmnError("MSOWorkflowException")
- }
- logDebug(" *** COMPLETED ValidateSDNCResponse Process*** ", isDebugLogEnabled)
- }
-
- public void preProcessUpdateAfterCreateRequest(Execution execution){
- def isDebugLogEnabled = execution.getVariable("isDebugLogEnabled")
- execution.setVariable("prefix", Prefix)
- utils.log("DEBUG", " ======== STARTED preProcessRequest Process ======== ", isDebugLogEnabled)
- try{
- String response = execution.getVariable("DCVFM_assignSDNCAdapterResponse")
- utils.logAudit("DCVFM_assignSDNCAdapterResponse: " + response)
-
- String data = utils.getNodeXml(response, "response-data")
- data = data.replaceAll("&lt;", "<")
- data = data.replaceAll("&gt;", ">")
- String vnfId = utils.getNodeText1(data, "vnf-id")
-
- String uuid = execution.getVariable('testReqId') // for junits
- if(uuid==null){
- uuid = execution.getVariable("att-mso-request-id") + "-" + System.currentTimeMillis()
- }
-
- String serviceOperation = "/VNF-API:vnfs/vnf-list/" + vnfId
- def callbackUrl = execution.getVariable("DCVFM_sdncCallbackUrl")
- utils.logAudit("callbackUrl: " + callbackUrl)
-
- String SDNCGetRequest =
- """<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5="http://ecomp.att.com/mso/request/types/v1"
- xmlns:sdncadapterworkflow="http://ecomp.att.com/mso/workflow/schema/v1"
- xmlns:sdncadapter="http://domain2.att.com/workflow/sdnc/adapter/schema/v1">
- <sdncadapter:RequestHeader>
- <sdncadapter:RequestId>${uuid}</sdncadapter:RequestId>
- <sdncadapter:SvcAction>query</sdncadapter:SvcAction>
- <sdncadapter:SvcOperation>${serviceOperation}</sdncadapter:SvcOperation>
- <sdncadapter:CallbackUrl>${callbackUrl}</sdncadapter:CallbackUrl>
- <sdncadapter:MsoAction>mobility</sdncadapter:MsoAction>
- </sdncadapter:RequestHeader>
- <sdncadapterworkflow:SDNCRequestData></sdncadapterworkflow:SDNCRequestData>
- </sdncadapterworkflow:SDNCAdapterWorkflowRequest>"""
-
- execution.setVariable("DCVFM_getSDNCRequest", SDNCGetRequest)
- utils.log("DEBUG", "Outgoing GetSDNCRequest is: \n" + SDNCGetRequest, isDebugLogEnabled)
- utils.logAudit("Outgoing GetSDNCRequest: " + SDNCGetRequest)
-
- }catch(Exception e){
- utils.log("ERROR", "Exception Occured Processing preProcessSDNCGetRequest. Exception is:\n" + e, isDebugLogEnabled)
- exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occured during prepareProvision Method:\n" + e.getMessage())
- }
- utils.log("DEBUG", "======== COMPLETED preProcessSDNCGetRequest Process ======== ", isDebugLogEnabled)
- }
-
- public String buildUpdateAAIVfModuleRequest(Execution execution, boolean updateVolumeGroupId,
- boolean updateOrchestrationStatus, boolean updateHeatStackId, boolean updateContrailFqdn){
-
- def vnfId = execution.getVariable("DCVFM_vnfId")
- def vfModuleId = execution.getVariable("DCVFM_vfModuleId")
- def volumeGroupIdString = ""
- if (updateVolumeGroupId) {
- volumeGroupIdString = "<volume-group-id>" + execution.getVariable("DCVFM_volumeGroupId") +
- "</volume-group-id>"
- }
- def orchestrationStatusString = ""
- if (updateOrchestrationStatus) {
- orchestrationStatusString = "<orchestration-status>Created</orchestration-status>"
- }
- def heatStackIdString = ""
- if (updateHeatStackId) {
- heatStackIdString = "<heat-stack-id>" + execution.getVariable("DCVFM_heatStackId") + "</heat-stack-id>"
- }
- def contrailFqdnString = ""
- if (updateContrailFqdn) {
- contrailFqdnString = "<contrail-service-instance-fqdn>" + execution.getVariable("DCVFM_contrailServiceInstanceFqdn") +
- "</contrail-service-instance-fqdn>"
- }
-
- String updateAAIVfModuleRequest =
- """<UpdateAAIVfModuleRequest>
- <vnf-id>${vnfId}</vnf-id>
- <vf-module-id>${vfModuleId}</vf-module-id>
- ${heatStackIdString}
- ${orchestrationStatusString}
- ${volumeGroupIdString}
- ${contrailFqdnString}
- </UpdateAAIVfModuleRequest>"""
-
- utils.logAudit("updateAAIVfModule Request: " + updateAAIVfModuleRequest)
- return updateAAIVfModuleRequest
-
- }
-
- public String buildSDNCParamsXml(Execution execution){
-
- String params = ""
- StringBuilder sb = new StringBuilder()
- Map<String, String> paramsMap = execution.getVariable("DCVFM_vnfParamsMap")
-
- for (Map.Entry<String, String> entry : paramsMap.entrySet()) {
- String paramsXml
- String key = entry.getKey();
- if(key.endsWith("_network")){
- String requestKey = key.substring(0, key.indexOf("_network"))
- String requestValue = entry.getValue()
- paramsXml =
-"""<vnf-networks>
- <network-role>{ functx:substring-before-match(data($param/@name), '_network') }</network-role>
- <network-name>{ $param/text() }</network-name>
-</vnf-networks>"""
- }else{
- paramsXml = ""
- }
- params = sb.append(paramsXml)
- }
- return params
- }
-
- public void queryCloudRegion (Execution execution) {
- def isDebugLogEnabled=execution.getVariable("isDebugLogEnabled")
- execution.setVariable("prefix", Prefix)
- utils.log("DEBUG", " ======== STARTED queryCloudRegion ======== ", isDebugLogEnabled)
-
- try {
- String cloudRegion = execution.getVariable("DCVFM_cloudSiteId")
-
- // Prepare AA&I url
- String aai_endpoint = execution.getVariable("URN_aai_endpoint")
- AaiUtil aaiUtil = new AaiUtil(this)
- String aai_uri = aaiUtil.getCloudInfrastructureCloudRegionUri(execution)
- String queryCloudRegionRequest = "${aai_endpoint}${aai_uri}/" + cloudRegion
- utils.logAudit("CloudRegion Request: " + queryCloudRegionRequest)
-
- execution.setVariable("DCVFM_queryCloudRegionRequest", queryCloudRegionRequest)
- utils.log("DEBUG", "DCVFM_queryCloudRegionRequest - " + "\n" + queryCloudRegionRequest, isDebugLogEnabled)
-
- cloudRegion = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "PO", cloudRegion)
-
- if ((cloudRegion != "ERROR")) {
- if(execution.getVariable("DCVFM_queryCloudRegionReturnCode") == "404"){
- execution.setVariable("DCVFM_cloudRegionForVolume", "AAIAIC25")
- }else{
- execution.setVariable("DCVFM_cloudRegionForVolume", cloudRegion)
- }
- execution.setVariable("DCVFM_isCloudRegionGood", true)
- } else {
- String errorMessage = "AAI Query Cloud Region Unsuccessful. AAI Response Code: " + execution.getVariable("DCVFM_queryCloudRegionReturnCode")
- utils.log("DEBUG", errorMessage, isDebugLogEnabled)
- exceptionUtil.buildAndThrowWorkflowException(execution, 2500, errorMessage)
- execution.setVariable("DCVFM_isCloudRegionGood", false)
- }
- utils.log("DEBUG", " is Cloud Region Good: " + execution.getVariable("DCVFM_isCloudRegionGood"), isDebugLogEnabled)
-
- } catch(BpmnError b){
- utils.log("ERROR", "Rethrowing MSOWorkflowException", isDebugLogEnabled)
- throw b
- }catch (Exception ex) {
- // try error
- String errorMessage = "Bpmn error encountered in CreateVfModule flow. Unexpected Response from AAI - " + ex.getMessage()
- utils.log("ERROR", " AAI Query Cloud Region Failed. Exception - " + "\n" + errorMessage, isDebugLogEnabled)
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Exception occured during queryCloudRegion method")
- }
- }
-
- /**
- *This method occurs when an MSOWorkflowException is caught. It logs the
- *variables and ensures that the "WorkflowException" Variable is set.
- *
- */
- public void processBPMNException(Execution execution){
- def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
- execution.setVariable("prefix",Prefix)
- try{
- utils.log("DEBUG", "Caught a BPMN Exception", isDebugEnabled)
- utils.log("DEBUG", "Started processBPMNException Method", isDebugEnabled)
- utils.log("DEBUG", "Variables List: " + execution.getVariables(), isDebugEnabled)
- if(execution.getVariable("WorkflowException") == null){
- exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Exception occured during DoCreateVfModule Sub Process")
- }
-
- }catch(Exception e){
- utils.log("DEBUG", "Caught Exception during processBPMNException Method: " + e, isDebugEnabled)
- }
- utils.log("DEBUG", "Completed processBPMNException Method", isDebugEnabled)
- }
-
- public void prepareCreateAAIVfModuleVolumeGroupRequest(Execution execution) {
- def method = getClass().getSimpleName() + '.prepareCreateAAIVfModuleVolumeGroupRequest(' +
- 'execution=' + execution.getId() +
- ')'
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- logDebug('Entered ' + method, isDebugLogEnabled)
- execution.setVariable("prefix", Prefix)
- logDebug(" ======== STARTED prepareCreateAAIVfModuleVolumeGroupRequest ======== ", isDebugLogEnabled)
-
- try{
-
- //Build CreateAAIVfModuleVolumeGroup Request
-
- def vnfId = execution.getVariable("DCVFM_vnfId")
- def vfModuleId = execution.getVariable("DCVFM_vfModuleId")
- def volumeGroupId = execution.getVariable("DCVFM_volumeGroupId")
- //def aicCloudRegion = execution.getVariable("DCVFM_cloudSiteId")
- def aicCloudRegion = execution.getVariable("DCVFM_cloudRegionForVolume")
- String createAAIVfModuleVolumeGroupRequest =
- """<CreateAAIVfModuleVolumeGroupRequest>
- <vnf-id>${vnfId}</vnf-id>
- <vf-module-id>${vfModuleId}</vf-module-id>
- <volume-group-id>${volumeGroupId}</volume-group-id>
- <aic-cloud-region>${aicCloudRegion}</aic-cloud-region>
- </CreateAAIVfModuleVolumeGroupRequest>"""
-
- createAAIVfModuleVolumeGroupRequest = utils.formatXml(createAAIVfModuleVolumeGroupRequest)
- execution.setVariable("DCVFM_createAAIVfModuleVolumeGroupRequest", createAAIVfModuleVolumeGroupRequest)
- logDebug("Outgoing CreateAAIVfModuleVolumeGroupRequest is: \n" + createAAIVfModuleVolumeGroupRequest, isDebugLogEnabled)
- utils.logAudit("Outgoing CreateAAIVfModuleVolumeGroupRequest is: \n" + createAAIVfModuleVolumeGroupRequest)
-
- }catch(Exception e){
- utils.log("ERROR", "Exception Occured Processing prepareCreateAAIVfModuleVolumeGroupRequest. Exception is:\n" + e, isDebugLogEnabled)
- exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occured during prepareCreateAAIVfModuleVolumeGroupRequest Method:\n" + e.getMessage())
- }
- logDebug("======== COMPLETED prepareCreateAAIVfModuleVolumeGroupRequest ======== ", isDebugLogEnabled)
-
- }
-
-
-}
-