From 025301d08b061482c1f046d562bf017c8cbcfe8d Mon Sep 17 00:00:00 2001 From: ChrisC Date: Tue, 31 Jan 2017 11:40:03 +0100 Subject: Initial OpenECOMP MSO commit Change-Id: Ia6a7574859480717402cc2f22534d9973a78fa6d Signed-off-by: ChrisC --- .../com/att/bpm/scripts/DoDeleteVfModule.groovy | 264 +++++++++++++++++++++ 1 file changed, 264 insertions(+) create mode 100644 bpmn/MSOGammaBPMN/src/main/groovy/com/att/bpm/scripts/DoDeleteVfModule.groovy (limited to 'bpmn/MSOGammaBPMN/src/main/groovy/com/att/bpm/scripts/DoDeleteVfModule.groovy') diff --git a/bpmn/MSOGammaBPMN/src/main/groovy/com/att/bpm/scripts/DoDeleteVfModule.groovy b/bpmn/MSOGammaBPMN/src/main/groovy/com/att/bpm/scripts/DoDeleteVfModule.groovy new file mode 100644 index 0000000000..5b726a0835 --- /dev/null +++ b/bpmn/MSOGammaBPMN/src/main/groovy/com/att/bpm/scripts/DoDeleteVfModule.groovy @@ -0,0 +1,264 @@ +/*- + * ============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 java.io.Serializable; + +import org.camunda.bpm.engine.delegate.BpmnError +import org.camunda.bpm.engine.runtime.Execution + +import org.openecomp.mso.rest.APIResponse +import org.openecomp.mso.rest.RESTClient +import org.openecomp.mso.rest.RESTConfig +import org.openecomp.mso.bpmn.core.RollbackData +import org.openecomp.mso.bpmn.core.WorkflowException + + + +public class DoDeleteVfModule extends AbstractServiceTaskProcessor{ + + def Prefix="DoDVfMod_" + + public void initProcessVariables(Execution execution) { + execution.setVariable("prefix",Prefix) + } + + // parse the incoming DELETE_VF_MODULE request for the Generic Vnf and Vf Module Ids + // and formulate the outgoing request for PrepareUpdateAAIVfModuleRequest + public void preProcessRequest(Execution execution) { + def isDebugEnabled=execution.getVariable("isDebugLogEnabled") + def xml = execution.getVariable("DoDeleteVfModuleRequest") + utils.logAudit("DoDeleteVfModule Request: " + xml) + + utils.log("DEBUG", "input request xml: " + xml, isDebugEnabled) + initProcessVariables(execution) + def vnfId = utils.getNodeText1(xml,"vnf-id") + def vfModuleId = utils.getNodeText1(xml,"vf-module-id") +// execution.setVariable("DoDVfMod_vnfId", vnfId) +// execution.setVariable("DoDVfMod_vfModuleId", vfModuleId) + // formulate the request for PrepareUpdateAAIVfModule + String request = """ + ${vnfId} + ${vfModuleId} + pending-delete + """ as String + utils.log("DEBUG", "PrepareUpdateAAIVfModuleRequest :" + request, isDebugEnabled) + utils.logAudit("UpdateAAIVfModule Request: " + request) + execution.setVariable("PrepareUpdateAAIVfModuleRequest", request) + execution.setVariable("DoDVfMod_vfModuleFromAAI", null) + } + + // build a SDNC vnf-topology-operation request for the specified action + // (note: the action passed is expected to be 'changedelete' or 'delete') + public void prepSDNCAdapterRequest(Execution execution, String action) { + def isDebugEnabled=execution.getVariable("isDebugLogEnabled") + def xml = execution.getVariable("DoDeleteVfModuleRequest") + utils.logAudit("DoDeleteVfModule Request: " + xml) + + def srvInstId = execution.getVariable("att-mso-service-instance-id") + def callbackUrl = execution.getVariable("URN_mso_workflow_sdncadapter_callback") + utils.log("DEBUG", "input request xml: " + xml, isDebugEnabled) + + String requestId = "" + try { + requestId = execution.getVariable("att-mso-request-id") + } catch (Exception ex) { + requestId = utils.getNodeText1(xml, "request-id") + } + + String source = utils.getNodeText1(xml, "source") + String serviceId = utils.getNodeText1(xml, "service-id") + String vnfId = utils.getNodeText1(xml, "vnf-id") + String vnfType = utils.getNodeText1(xml, "vnf-type") + String vnfName = utils.getNodeText1(xml, "vnf-name") + String tenantId = utils.getNodeText1(xml, "tenant-id") + String vfModuleId = utils.getNodeText1(xml, "vf-module-id") + String serviceInstanceIdToSdnc = "" + if (xml.contains("service-instance-id")) { + serviceInstanceIdToSdnc = utils.getNodeText1(xml, "service-instance-id") + } else { + serviceInstanceIdToSdnc = vfModuleId + } + String vfModuleName = utils.getNodeText1(xml, "vf-module-name") + // Get vfModuleName from AAI response if it was not specified on the request + if (vfModuleName == null || vfModuleName.isEmpty()) { + if (execution.getVariable("DoDVfMod_vfModuleFromAAI") != null) { + VfModule vfModuleFromAAI = execution.getVariable("DoDVfMod_vfModuleFromAAI") + vfModuleName = vfModuleFromAAI.getElementText("vf-module-name") + } + } + String vfModuleModelName = utils.getNodeText1(xml, "vf-module-model-name") + String cloudSiteId = utils.getNodeText1(xml, "aic-cloud-region") + String request = """ + + ${requestId} + ${vfModuleId} + ${action} + vnf-topology-operation + ${callbackUrl} + + + + ${requestId} + DisconnectVNFRequest + ${source} + + + + + + ${serviceId} + ${serviceId} + ${serviceInstanceIdToSdnc} + notsurewecare + + + ${vfModuleId} + ${vfModuleModelName} + ${vfModuleName} + ${vnfId} + ${vnfName} + ${vnfType} + ${cloudSiteId} + ${tenantId} + + + """ + + utils.log("DEBUG", "sdncAdapterWorkflowRequest: " + request, isDebugEnabled) + utils.logAudit("DoDeleteVfModule - SDNCAdapterWorkflowRequest: " + request) + execution.setVariable("sdncAdapterWorkflowRequest", request) + } + + // parse the incoming DELETE_VF_MODULE request + // and formulate the outgoing VnfAdapterDeleteV1 request + public void prepVNFAdapterRequest(Execution execution) { + def isDebugEnabled=execution.getVariable("isDebugLogEnabled") + def xml = execution.getVariable("DoDeleteVfModuleRequest") + def requestId = UUID.randomUUID().toString() + def origRequestId = execution.getVariable('att-mso-request-id') + def srvInstId = execution.getVariable('att-mso-service-instance-id') + def aicCloudRegion = utils.getNodeText1(xml, "aic-cloud-region") + def vnfId = utils.getNodeText1(xml, "vnf-id") + def vnfName = utils.getNodeText1(xml, "vnf-name") + def vfModuleId = utils.getNodeText1(xml, "vf-module-id") + def vfModuleStackId = execution.getVariable('DoDVfMod_heatStackId') + def tenantId = utils.getNodeText1(xml, "tenant-id") + 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") + if ('true'.equals(useQualifiedHostName)) { + notificationUrl = utils.getQualifiedHostNameForCallback(notificationUrl) + } + + String request = """ + + ${aicCloudRegion} + ${tenantId} + ${vnfId} + ${vfModuleId} + ${vfModuleStackId} + true + + ${origRequestId} + ${srvInstId} + + ${messageId} + ${notificationUrl} + + """ as String + + utils.log("DEBUG", "vnfAdapterRestV1Request: " + request, isDebugEnabled) + utils.logAudit("deleteVfModuleRequest: " + request) + execution.setVariable("vnfAdapterRestV1Request", request) + } + + // parse the incoming DELETE_VF_MODULE request + // and formulate the outgoing UpdateAAIVfModuleRequest request + public void prepUpdateAAIVfModule(Execution execution) { + def isDebugEnabled=execution.getVariable("isDebugLogEnabled") + def xml = execution.getVariable("DoDeleteVfModuleRequest") + utils.log("DEBUG", "input request xml: " + xml, isDebugEnabled) + initProcessVariables(execution) + def vnfId = utils.getNodeText1(xml,"vnf-id") + def vfModuleId = utils.getNodeText1(xml,"vf-module-id") + // formulate the request for UpdateAAIVfModule + String request = """ + ${vnfId} + ${vfModuleId} + DELETE + deleted + """ as String + utils.log("DEBUG", "UpdateAAIVfModuleRequest :" + request, isDebugEnabled) + utils.logAudit("UpdateAAIVfModuleRequest: " + request) + execution.setVariable("UpdateAAIVfModuleRequest", request) + } + + // parse the incoming DELETE_VF_MODULE request + // and formulate the outgoing DeleteAAIVfModuleRequest request + public void prepDeleteAAIVfModule(Execution execution) { + def isDebugEnabled=execution.getVariable("isDebugLogEnabled") + def xml = execution.getVariable("DoDeleteVfModuleRequest") + utils.log("DEBUG", "input request xml: " + xml, isDebugEnabled) + initProcessVariables(execution) + def vnfId = utils.getNodeText1(xml,"vnf-id") + def vfModuleId = utils.getNodeText1(xml,"vf-module-id") + // formulate the request for UpdateAAIVfModule + String request = """ + ${vnfId} + ${vfModuleId} + """ as String + utils.log("DEBUG", "DeleteAAIVfModuleRequest :" + request, isDebugEnabled) + utils.logAudit("DeleteAAIVfModuleRequest: " + request) + execution.setVariable("DeleteAAIVfModuleRequest", request) + } + + // generates a WorkflowException if + // - + public void handleDoDeleteVfModuleFailure(Execution execution) { + def isDebugEnabled=execution.getVariable("isDebugLogEnabled") + utils.log("ERROR", "AAI error occurred deleting the Generic Vnf: " + + execution.getVariable("DoDVfMod_deleteGenericVnfResponse"), isDebugEnabled) + String processKey = getProcessKey(execution); + WorkflowException exception = new WorkflowException(processKey, 5000, + execution.getVariable("DoDVfMod_deleteGenericVnfResponse")) + execution.setVariable("WorkflowException", exception) + } + + public void sdncValidateResponse(Execution execution, String response){ + def isDebugEnabled=execution.getVariable("isDebugLogEnabled") + execution.setVariable("prefix",Prefix) + + WorkflowException workflowException = execution.getVariable("WorkflowException") + boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator") + + SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils(this) + sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator) + + if(execution.getVariable(Prefix + 'sdncResponseSuccess') == true){ + utils.log("DEBUG", "Successfully Validated SDNC Response", isDebugEnabled) + }else{ + throw new BpmnError("MSOWorkflowException") + } + } +} -- cgit 1.2.3-korg