aboutsummaryrefslogtreecommitdiffstats
path: root/bpmn/MSOInfrastructureBPMN/src
diff options
context:
space:
mode:
authorRob Daugherty <rd472p@att.com>2018-04-06 15:28:01 +0000
committerGerrit Code Review <gerrit@onap.org>2018-04-06 15:28:01 +0000
commit4753058c41eeb0d4153787e5f509451e1682eb17 (patch)
treeae1e741e40aeb2b61a0356977faf9a9ebcd19066 /bpmn/MSOInfrastructureBPMN/src
parent73ba75b9804e7889aa6407a9158783ba15f01df2 (diff)
parent0890c025573c5e46f48090a9381f86d8bd431681 (diff)
Merge "Added hc and configscaleout to vfmoduleinfra"
Diffstat (limited to 'bpmn/MSOInfrastructureBPMN/src')
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleInfra.groovy1110
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVfModuleInfra.bpmn299
-rw-r--r--bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVfModuleInfraTest.java22
3 files changed, 800 insertions, 631 deletions
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleInfra.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleInfra.groovy
index 3b2c4ea2f8..3f0b8d11f1 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleInfra.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleInfra.groovy
@@ -1,552 +1,558 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * 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 org.openecomp.mso.bpmn.infrastructure.scripts;
-
-import groovy.json.JsonSlurper
-import groovy.json.JsonOutput
-
-import org.camunda.bpm.engine.delegate.BpmnError
-import org.camunda.bpm.engine.delegate.DelegateExecution
-import org.apache.commons.lang3.*
-import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor;
-import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil;
-import org.openecomp.mso.bpmn.common.scripts.NetworkUtils;
-import org.openecomp.mso.bpmn.common.scripts.SDNCAdapterUtils;
-import org.openecomp.mso.bpmn.common.scripts.VidUtils;
-import org.openecomp.mso.bpmn.core.RollbackData
-import org.openecomp.mso.bpmn.core.WorkflowException
-import org.openecomp.mso.bpmn.core.json.JsonUtils
-
-public class CreateVfModuleInfra extends AbstractServiceTaskProcessor {
-
- ExceptionUtil exceptionUtil = new ExceptionUtil()
- JsonUtils jsonUtil = new JsonUtils()
-
- /**
- * Validates the request message and sets up the workflow.
- * @param execution the execution
- */
- public void preProcessRequest(DelegateExecution execution) {
- def method = getClass().getSimpleName() + '.preProcessRequest(' +
- 'execution=' + execution.getId() +
- ')'
- def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
- logDebug('Entered ' + method, isDebugLogEnabled)
-
- execution.setVariable("CVFMI_sentSyncResponse", false)
-
- def prefix = 'CVFMI_'
- logDebug('Entered 1' + method, isDebugLogEnabled)
- execution.setVariable('prefix', prefix)
- logDebug('Entered 2' + method, isDebugLogEnabled)
- execution.setVariable("isVidRequest", "false")
-
- logDebug("Set variables", isDebugLogEnabled)
-
- def rollbackData = execution.getVariable("RollbackData")
- if (rollbackData == null) {
- rollbackData = new RollbackData()
- }
- execution.setVariable("RollbackData", rollbackData)
-
- logDebug("Set rollback data", isDebugLogEnabled)
- def incomingRequest = execution.getVariable('bpmnRequest')
-
- utils.log("DEBUG", "Incoming Infra Request: " + incomingRequest, isDebugLogEnabled)
- utils.logAudit("CreateVfModule Infra incoming Request: " + incomingRequest)
-
- setBasicDBAuthHeader(execution, isDebugLogEnabled)
-
- // check if request is xml or json
- try {
- def jsonSlurper = new JsonSlurper()
- def jsonOutput = new JsonOutput()
- Map reqMap = jsonSlurper.parseText(incomingRequest)
- utils.log("DEBUG", " Request is in JSON format.", isDebugLogEnabled)
-
- def serviceInstanceId = execution.getVariable('serviceInstanceId')
- def vnfId = execution.getVariable('vnfId')
-
- execution.setVariable(prefix + 'serviceInstanceId', serviceInstanceId)
- execution.setVariable(prefix+'vnfId', vnfId)
- execution.setVariable("isVidRequest", "true")
-
- def vnfName = ''
- def asdcServiceModelVersion = ''
- def serviceModelInfo = null
- def vnfModelInfo = null
-
- def relatedInstanceList = reqMap.requestDetails?.relatedInstanceList
-
- if (relatedInstanceList != null) {
- relatedInstanceList.each {
- if (it.relatedInstance.modelInfo?.modelType == 'service') {
- asdcServiceModelVersion = it.relatedInstance.modelInfo?.modelVersion
- serviceModelInfo = jsonOutput.toJson(it.relatedInstance.modelInfo)
-
- }
- if (it.relatedInstance.modelInfo.modelType == 'vnf') {
- vnfName = it.relatedInstance.instanceName ?: ''
- vnfModelInfo = jsonOutput.toJson(it.relatedInstance.modelInfo)
- }
- }
- }
-
- execution.setVariable(prefix + 'vnfName', vnfName)
- execution.setVariable(prefix + 'asdcServiceModelVersion', asdcServiceModelVersion)
- execution.setVariable(prefix + 'serviceModelInfo', serviceModelInfo)
- execution.setVariable(prefix + 'vnfModelInfo', vnfModelInfo)
-
-
- def vnfType = execution.getVariable('vnfType')
- execution.setVariable(prefix + 'vnfType', vnfType)
- def vfModuleId = execution.getVariable('vfModuleId')
- execution.setVariable(prefix + 'vfModuleId', vfModuleId)
- def volumeGroupId = execution.getVariable('volumeGroupId')
- execution.setVariable(prefix + 'volumeGroupId', volumeGroupId)
- def userParams = reqMap.requestDetails?.requestParameters?.userParams
-
- Map<String, String> userParamsMap = [:]
- if (userParams != null) {
- userParams.each { userParam ->
- userParamsMap.put(userParam.name, jsonOutput.toJson(userParam.value).toString())
- }
- }
-
- utils.log("DEBUG", 'Processed user params: ' + userParamsMap, isDebugLogEnabled)
-
- execution.setVariable(prefix + 'vfModuleInputParams', userParamsMap)
-
- def isBaseVfModule = "false"
- if (execution.getVariable('isBaseVfModule') == true) {
- isBaseVfModule = "true"
- }
-
- execution.setVariable(prefix + 'isBaseVfModule', isBaseVfModule)
-
- def requestId = execution.getVariable("mso-request-id")
- execution.setVariable(prefix + 're
##########################################################################
#
#==================LICENSE_START==========================================
#
#
# 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============================================
#
# ECOMP is a trademark and service mark of AT&T Intellectual Property.
#
##########################################################################

heat_template_version: 2013-05-23

description: Heat template that deploys vFirewall demo app for ONAP

##############
#            #
# PARAMETERS #
#            #
##############

parameters:
  vfw_image_name:
    type: string
    label: Image name or ID
    description: Image to be used for compute instance
  firewall_flavor_name:
    type: string
    label: Firewall Flavor
    description: Type of instance (flavor) to be used for firewall VM
  sink_flavor_name:
    type: string
    label: Flavor
    description: Type of instance (flavor) to be used for vSink VM
  packetgen_flavor_name:
    type: string
    label: Flavor
    description: Type of instance (flavor) to be used for packet generator
  public_net_id:
    type: string
    label: Public network name or ID
    description: Public network that enables remote connection to VNF
  unprotected_private_net_id:
    type: string
    label: Unprotected private network name or ID
    description: Private network that connects vPacketGenerator with vFirewall
  protected_private_net_id:
    type: string
    label: Protected private network name or ID
    description: Private network that connects vFirewall with vSink
  onap_private_net_id:
    type: string
    label: ONAP management network name or ID
    description: Private network that connects ONAP components and the VNF
  onap_private_subnet_id:
    type: string
    label: ONAP management sub-network name or ID
    description: Private sub-network that connects ONAP components and the VNF
  unprotected_private_net_cidr:
    type: string
    label: Unprotected private network CIDR
    description: The CIDR of the unprotected private network
  protected_private_net_cidr:
    type: string
    label: Protected private network CIDR
    description: The CIDR of the protected private network
  onap_private_net_cidr:
    type: string
    label: ONAP private network CIDR
    description: The CIDR of the protected private network
  vfw_private_ip_0:
    type: string
    label: vFirewall private IP address towards the unprotected network
    description: Private IP address that is assigned to the vFirewall to communicate with the vPacketGenerator
  vfw_private_ip_1:
    type: string
    label: vFirewall private IP address towards the protected network
    description: Private IP address that is assigned to the vFirewall to communicate with the vSink
  vfw_private_ip_2:
    type: string
    label: vFirewall private IP address towards the ONAP management network
    description: Private IP address that is assigned to the vFirewall to communicate with ONAP components
  vpg_private_ip_0:
    type: string
    label: vPacketGenerator private IP address towards the unprotected network
    description: Private IP address that is assigned to the vPacketGenerator to communicate with the vFirewall
  vpg_private_ip_1:
    type: string
    label: vPacketGenerator private IP address towards the ONAP management network
    description: Private IP address that is assigned to the vPacketGenerator to communicate with ONAP components
  vsn_private_ip_0:
    type: string
    label: vSink private IP address towards the protected network
    description: Private IP address that is assigned to the vSink to communicate with the vFirewall
  vsn_private_ip_1:
    type: string
    label: vSink private IP address towards the ONAP management network
    description: Private IP address that is assigned to the vSink to communicate with ONAP components
  vfw_private_0_port_vnic_type:
    type: string
    description: vfw port 0 vnic type (normal, direct)
    default: normal
  vfw_private_1_port_vnic_type:
    type: string
    description: vfw port 1 vnic type (normal, direct)
    default: normal
  vfw_private_2_port_vnic_type:
    type: string
    description: vfw port 2 vnic type (normal, direct)
    default: normal
  vsn_private_0_port_vnic_type:
    type: string
    description: vsn port 0 vnic type (normal, direct)
    default: normal
  vsn_private_1_port_vnic_type:
    type: string
    description: vsn port 1 vnic type (normal, direct)
    default: normal
  vpg_private_0_port_vnic_type:
    type: string
    description: vpg port 0 vnic type (normal, direct)
    default: normal
  vpg_private_1_port_vnic_type:
    type: string
    description: vpg port 1 vnic type (normal, direct)
    default: normal
  vfw_name_0:
    type: string
    label: vFirewall name
    description: Name of the vFirewall
  vpg_name_0:
    type: string
    label: vPacketGenerator name
    description: Name of the vPacketGenerator
  vsn_name_0:
    type: string
    label: vSink name
    description: Name of the vSink
  vnf_id:
    type: string
    label: VNF ID
    description: The VNF ID is provided by ONAP
  vf_module_id:
    type: string
    label: vFirewall module ID
    description: The vFirewall Module ID is provided by ONAP
  dcae_collector_ip:
    type: string
    label: DCAE collector IP address
    description: IP address of the DCAE collector
  dcae_collector_port:
    type: string
    label: DCAE collector port
    description: Port of the DCAE collector
  key_name:
    type: string
    label: Key pair name
    description: Public/Private key pair name
  pub_key:
    type: string
    label: Public key
    description: Public key to be installed on the compute instance
  install_script_version:
    type: string
    label: Installation script version number
    description: Version number of the scripts that install the vFW demo app
  demo_artifacts_version:
    type: string
    label: Artifacts version used in demo vnfs
    description: Artifacts (jar, tar.gz) version used in demo vnfs
  nexus_artifact_repo:
    type: string
    description: Root URL for the Nexus repository for Maven artifacts.
    default: "https://nexus.onap.org"
  cloud_env:
    type: string
    label: Cloud environment
    description: Cloud environment (e.g., openstack, rackspace)
  sec_group:
    type: string
    description: ONAP Security Group
  sdnc_model_name:
    type: string
    description: SDNC Model Name metatada
  sdnc_model_version:
    type: string
    description: SDNC Model Version metatada
  sdnc_artifact_name:
    type: string
    description: SDNC Artifact Name metatada

#############
#           #
# RESOURCES #
#           #
#############

resources:
  random-str:
    type: OS::Heat::RandomString
    properties:
      length: 4

  my_keypair:
    type: OS::Nova::KeyPair
    properties:
      name:
        str_replace:
          template: base_rand
          params:
            base: { get_param: key_name }
            rand: { get_resource: random-str }
      public_key: { get_param: pub_key }
      save_private_key: false

  unprotected_private_network:
    type: OS::Neutron::Net
    properties:
      name: { get_param: unprotected_private_net_id }

  protected_private_network:
    type: OS::Neutron::Net
    properties:
      name: { get_param: protected_private_net_id }

  unprotected_private_subnet:
    type: OS::Neutron::Subnet
    properties:
      network_id: { get_resource: unprotected_private_network }
      cidr: { get_param: unprotected_private_net_cidr }

  protected_private_subnet:
    type: OS::Neutron::Subnet
    properties:
      network_id: { get_resource: protected_private_network }
      cidr: { get_param: protected_private_net_cidr }

  # Virtual Firewall instantiation
  vfw_private_0_port:
    type: OS::Neutron::Port
    properties:
      network: { get_resource: unprotected_private_network }
      binding:vnic_type: { get_param: vfw_private_0_port_vnic_type}
      fixed_ips: [{"subnet": { get_resource: unprotected_private_subnet }, "ip_address": { get_param: vfw_private_ip_0 }}]
      security_groups:
      - { get_param: sec_group }

  vfw_private_1_port:
    type: OS::Neutron::Port
    properties:
      allowed_address_pairs: [{ "ip_address": { get_param: vpg_private_ip_0 }}]
      network: { get_resource: protected_private_network }
      binding:vnic_type: { get_param: vfw_private_1_port_vnic_type}
      fixed_ips: [{"subnet": { get_resource: protected_private_subnet }, "ip_address": { get_param: vfw_private_ip_1 }}]
      security_groups:
      - { get_param: sec_group }

  vfw_private_2_port:
    type: OS::Neutron::Port
    properties:
      network: { get_param: onap_private_net_id }
      binding:vnic_type: { get_param: vfw_private_2_port_vnic_type}
      fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vfw_private_ip_2 }}]
      security_groups:
      - { get_param: sec_group }

  vfw_0:
    type: OS::Nova::Server
    properties:
      image: { get_param: vfw_image_name }
      flavor: { get_param: firewall_flavor_name }
      name: { get_param: vfw_name_0 }
      key_name: { get_resource: my_keypair }
      networks:
        - network: { get_param: public_net_id }
        - port: { get_resource: vfw_private_0_port }
        - port: { get_resource: vfw_private_1_port }
        - port: { get_resource: vfw_private_2_port }
      metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}
      user_data_format: RAW
      user_data:
        str_replace:
          params:
            __dcae_collector_ip__ : { get_param: dcae_collector_ip }
            __dcae_collector_port__ : { get_param: dcae_collector_port }
            __demo_artifacts_version__ : { get_param: demo_artifacts_version }
            __install_script_version__ : { get_param: install_script_version }
            __vfw_private_ip_0__ : { get_param: vfw_private_ip_0 }
            __vfw_private_ip_1__ : { get_param: vfw_private_ip_1 }
            __vfw_private_ip_2__ : { get_param: vfw_private_ip_2 }
            __unprotected_private_net_cidr__ : { get_param: unprotected_private_net_cidr }
            __protected_private_net_cidr__ : { get_param: protected_private_net_cidr }
            __onap_private_net_cidr__ : { get_param: onap_private_net_cidr }
            __cloud_env__ : { get_param: cloud_env }
            __nexus_artifact_repo__: { get_param: nexus_artifact_repo }
          template: |
            #!/bin/bash

            # Create configuration files
            mkdir /opt/config
            echo "__dcae_collector_ip__" > /opt/config/dcae_collector_ip.txt
            echo "__dcae_collector_port__" > /opt/config/dcae_collector_port.txt
            echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt
            echo "__install_script_version__" > /opt/config/install_script_version.txt
            echo "__vfw_private_ip_0__" > /opt/config/vfw_private_ip_0.txt
            echo "__vfw_private_ip_1__" > /opt/config/vfw_private_ip_1.txt
            echo "__vfw_private_ip_2__" > /opt/config/vfw_private_ip_2.txt
            echo "__unprotected_private_net_cidr__" > /opt/config/unprotected_private_net_cidr.txt
            echo "__protected_private_net_cidr__" > /opt/config/protected_private_net_cidr.txt
            echo "__onap_private_net_cidr__" > /opt/config/onap_private_net_cidr.txt
            echo "__cloud_env__" > /opt/config/cloud_env.txt
            echo "__nexus_artifact_repo__" > /opt/config/nexus_artifact_repo.txt

            # Download and run install script
            apt-get update
            apt-get -y install unzip
            if [[ "__install_script_version__" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi
            curl -k -L "__nexus_artifact_repo__/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vfw&a=vfw-scripts&e=zip&v=__install_script_version__" -o /opt/vfw-scripts-__install_script_version__.zip
            unzip -j /opt/vfw-scripts-__install_script_version__.zip -d /opt v_firewall_install.sh
            cd /opt
            chmod +x v_firewall_install.sh
            ./v_firewall_install.sh


  # Virtual Packet Generator instantiation
  vpg_private_0_port:
    type: OS::Neutron::Port
    properties:
      network: { get_resource: unprotected_private_network }
      binding:vnic_type: { get_param: vpg_private_0_port_vnic_type}
      fixed_ips: [{"subnet": { get_resource: unprotected_private_subnet }, "ip_address": { get_param: vpg_private_ip_0 }}]
      security_groups:
      - { get_param: sec_group }

  vpg_private_1_port:
    type: OS::Neutron::Port
    properties:
      network: { get_param: onap_private_net_id }
      binding:vnic_type: { get_param: vpg_private_1_port_vnic_type}
      fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vpg_private_ip_1 }}]
      security_groups:
      - { get_param: sec_group }

  vpg_0:
    type: OS::Nova::Server
    properties:
      image: { get_param: vfw_image_name }
      flavor: { get_param: packetgen_flavor_name }
      name: { get_param: vpg_name_0 }
      key_name: { get_resource: my_keypair }
      networks:
        - network: { get_param: public_net_id }
        - port: { get_resource: vpg_private_0_port }
        - port: { get_resource: vpg_private_1_port }
      metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}
      user_data_format: RAW
      user_data:
        str_replace:
          params:
            __fw_ipaddr__: { get_param: vfw_private_ip_0 }
            __protected_net_cidr__: { get_param: protected_private_net_cidr }
            __sink_ipaddr__: { get_param: vsn_private_ip_0 }
            __demo_artifacts_version__ : { get_param: demo_artifacts_version }
            __install_script_version__ : { get_param: install_script_version }
            __vpg_private_ip_0__ : { get_param: vpg_private_ip_0 }
            __vpg_private_ip_1__ : { get_param: vpg_private_ip_1 }
            __unprotected_private_net_cidr__ : { get_param: unprotected_private_net_cidr }
            __onap_private_net_cidr__ : { get_param: onap_private_net_cidr }
            __cloud_env__ : { get_param: cloud_env }
            __nexus_artifact_repo__: { get_param: nexus_artifact_repo }
          template: |
            #!/bin/bash

            # Create configuration files
            mkdir /opt/config
            echo "__fw_ipaddr__" > /opt/config/fw_ipaddr.txt
            echo "__protected_net_cidr__" > /opt/config/protected_net_cidr.txt
            echo "__sink_ipaddr__" > /opt/config/sink_ipaddr.txt
            echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt
            echo "__install_script_version__" > /opt/config/install_script_version.txt
            echo "__vpg_private_ip_0__" > /opt/config/vpg_private_ip_0.txt
            echo "__vpg_private_ip_1__" > /opt/config/vpg_private_ip_1.txt
            echo "__unprotected_private_net_cidr__" > /opt/config/unprotected_private_net_cidr.txt
            echo "__onap_private_net_cidr__" > /opt/config/onap_private_net_cidr.txt
            echo "__cloud_env__" > /opt/config/cloud_env.txt
            echo "__nexus_artifact_repo__" > /opt/config/nexus_artifact_repo.txt

            # Download and run install script
            apt-get update
            apt-get -y install unzip
            if [[ "__install_script_version__" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi
            curl -k -L "__nexus_artifact_repo__/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vfw&a=vfw-scripts&e=zip&v=__install_script_version__" -o /opt/vfw-scripts-__install_script_version__.zip
            unzip -j /opt/vfw-scripts-__install_script_version__.zip -d /opt v_packetgen_install.sh
            cd /opt
            chmod +x v_packetgen_install.sh
            ./v_packetgen_install.sh


  # Virtual Sink instantiation
  vsn_private_0_port:
    type: OS::Neutron::Port
    properties:
      network: { get_resource: protected_private_network }
      binding:vnic_type: { get_param: vsn_private_0_port_vnic_type}
      fixed_ips: [{"subnet": { get_resource: protected_private_subnet }, "ip_address": { get_param: vsn_private_ip_0 }}]
      security_groups:
      - { get_param: sec_group }

  vsn_private_1_port:
    type: OS::Neutron::Port
    properties:
      network: { get_param: onap_private_net_id }
      binding:vnic_type: { get_param: vsn_private_1_port_vnic_type}
      fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vsn_private_ip_1 }}]
      security_groups:
      - { get_param: sec_group }

  vsn_0:
    type: OS::Nova::Server
    properties:
      image: { get_param: vfw_image_name }
      flavor: { get_param: sink_flavor_name }
      name: { get_param: vsn_name_0 }
      key_name: { get_resource: my_keypair }
      networks:
        - network: { get_param: public_net_id }
        - port: { get_resource: vsn_private_0_port }
        - port: { get_resource: vsn_private_1_port }
      metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}
      user_data_format: RAW
      user_data:
        str_replace:
          params:
            __protected_net_gw__: { get_param: vfw_private_ip_1 }
            __unprotected_net__: { get_param: unprotected_private_net_cidr }
            __install_script_version__ : { get_param: install_script_version }
            __vsn_private_ip_0__ : { get_param: vsn_private_ip_0 }
            __vsn_private_ip_1__ : { get_param: vsn_private_ip_1 }
            __protected_private_net_cidr__ : { get_param: protected_private_net_cidr }
            __onap_private_net_cidr__ : { get_param: onap_private_net_cidr }
            __cloud_env__ : { get_param: cloud_env }
            __nexus_artifact_repo__: { get_param: nexus_artifact_repo }
          template: |
            #!/bin/bash

            # Create configuration files
            mkdir /opt/config
            echo "__protected_net_gw__" > /opt/config/protected_net_gw.txt
            echo "__unprotected_net__" > /opt/config/unprotected_net.txt
            echo "__install_script_version__" > /opt/config/install_script_version.txt
            echo "__vsn_private_ip_0__" > /opt/config/vsn_private_ip_0.txt
            echo "__vsn_private_ip_1__" > /opt/config/vsn_private_ip_1.txt
            echo "__protected_private_net_cidr__" > /opt/config/protected_private_net_cidr.txt
            echo "__onap_private_net_cidr__" > /opt/config/onap_private_net_cidr.txt
            echo "__cloud_env__" > /opt/config/cloud_env.txt
            echo "__nexus_artifact_repo__" > /opt/config/nexus_artifact_repo.txt

            # Download and run install script
            apt-get update
            apt-get -y install unzip
            if [[ "__install_script_version__" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi
            curl -k -L "__nexus_artifact_repo__/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vfw&a=vfw-scripts&e=zip&v=__install_script_version__" -o /opt/vfw-scripts-__install_script_version__.zip
            unzip -j /opt/vfw-scripts-__install_script_version__.zip -d /opt v_sink_install.sh
            cd /opt
            chmod +x v_sink_install.sh
            ./v_sink_install.sh
<camunda:in source="CVFMI_vfModuleId" target="vfModuleId" />
+ </bpmn2:extensionElements>
+ <bpmn2:incoming>updateInfraRequestResponseGood</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_1tk5ru7</bpmn2:outgoing>
+ </bpmn2:callActivity>
+ <bpmn2:sequenceFlow id="SequenceFlow_1crl7uf" sourceRef="ServiceTask_1" targetRef="UpdateInfraRequestResponseCheck" />
+ <bpmn2:exclusiveGateway id="ExclusiveGateway_1hncvjy" name="Error on ConfigScaleOut?" default="SequenceFlow_0td7d9m">
+ <bpmn2:incoming>SequenceFlow_1tk5ru7</bpmn2:incoming>
+ <bpmn2:outgoing>SequenceFlow_0td7d9m</bpmn2:outgoing>
+ <bpmn2:outgoing>SequenceFlow_0h5cld9</bpmn2:outgoing>
+ </bpmn2:exclusiveGateway>
+ <bpmn2:sequenceFlow id="SequenceFlow_1tk5ru7" sourceRef="CallActivity_17ukiqm" targetRef="ExclusiveGateway_1hncvjy" />
+ <bpmn2:sequenceFlow id="SequenceFlow_0td7d9m" name="no" sourceRef="ExclusiveGateway_1hncvjy" targetRef="PrepareMSOCompletionHandler" />
+ <bpmn2:endEvent id="EndEvent_0a97jcr">
+ <bpmn2:incoming>SequenceFlow_0h5cld9</bpmn2:incoming>
+ <bpmn2:errorEventDefinition errorRef="Error_1" />
+ </bpmn2:endEvent>
+ <bpmn2:sequenceFlow id="SequenceFlow_0h5cld9" name="yes" sourceRef="ExclusiveGateway_1hncvjy" targetRef="EndEvent_0a97jcr">
+ <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("errorConfigScaleOutCode") != "0"]]></bpmn2:conditionExpression>
+ </bpmn2:sequenceFlow>
</bpmn2:process>
<bpmn2:error id="Error_1" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
<bpmn2:error id="Error_2" name="REST Fault" errorCode="RESTFault" />
@@ -218,40 +281,41 @@ exceptionUtil.processJavaException(execution)]]></bpmn2:script>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_50" targetElement="_BPMNShape_ScriptTask_124">
<di:waypoint xsi:type="dc:Point" x="77" y="249" />
- <di:waypoint xsi:type="dc:Point" x="226" y="249" />
+ <di:waypoint xsi:type="dc:Point" x="142" y="249" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="99" y="249" width="6" height="6" />
+ <dc:Bounds x="110" y="234" width="0" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_ScriptTask_124" bpmnElement="PreProcessRequest">
- <dc:Bounds x="226" y="209" width="100" height="80" />
+ <dc:Bounds x="142" y="209" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_ServiceTask_86" bpmnElement="SendResponse">
- <dc:Bounds x="432" y="209" width="100" height="80" />
+ <dc:Bounds x="309" y="209" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_3" sourceElement="_BPMNShape_ScriptTask_124" targetElement="_BPMNShape_ServiceTask_86">
- <di:waypoint xsi:type="dc:Point" x="326" y="249" />
- <di:waypoint xsi:type="dc:Point" x="432" y="249" />
+ <di:waypoint xsi:type="dc:Point" x="242" y="249" />
+ <di:waypoint xsi:type="dc:Point" x="309" y="249" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="348" y="249" width="6" height="6" />
+ <dc:Bounds x="276" y="234" width="0" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_ScriptTask_178" bpmnElement="DoCreateVfModuleSubprocess">
- <dc:Bounds x="612" y="209" width="145" height="80" />
+ <dc:Bounds x="816" y="209" width="145" height="80" />
</bpmndi:BPMNShape>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_7" bpmnElement="SequenceFlow_7" sourceElement="_BPMNShape_ServiceTask_86" targetElement="_BPMNShape_ScriptTask_178">
- <di:waypoint xsi:type="dc:Point" x="532" y="249" />
- <di:waypoint xsi:type="dc:Point" x="612" y="249" />
- </bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_IntermediateThrowEvent_47" bpmnElement="IntermediateThrowEvent_1">
- <dc:Bounds x="823" y="231" width="36" height="36" />
+ <dc:Bounds x="1031" y="231" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="841" y="272" width="0" height="0" />
+ <dc:Bounds x="1016" y="272" width="65" height="13" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_4" sourceElement="_BPMNShape_ScriptTask_178" targetElement="_BPMNShape_IntermediateThrowEvent_47">
- <di:waypoint xsi:type="dc:Point" x="756" y="249" />
- <di:waypoint xsi:type="dc:Point" x="823" y="249" />
+ <di:waypoint xsi:type="dc:Point" x="961" y="249" />
+ <di:waypoint xsi:type="dc:Point" x="995" y="249" />
+ <di:waypoint xsi:type="dc:Point" x="995" y="249" />
+ <di:waypoint xsi:type="dc:Point" x="1031" y="249" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1010" y="249" width="0" height="0" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_IntermediateCatchEvent_32" bpmnElement="IntermediateCatchEvent_1">
<dc:Bounds x="39" y="349" width="36" height="36" />
@@ -266,27 +330,27 @@ exceptionUtil.processJavaException(execution)]]></bpmn2:script>
<dc:Bounds x="277" y="327" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_179" bpmnElement="UpdateInfraRequestResponseCheck" isMarkerVisible="true">
- <dc:Bounds x="443" y="341" width="50" height="50" />
+ <dc:Bounds x="406" y="342" width="50" height="50" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="435" y="308" width="68" height="22" />
+ <dc:Bounds x="407" y="309" width="49" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_ScriptTask_220" bpmnElement="PrepareMSOCompletionHandler">
- <dc:Bounds x="552" y="327" width="100" height="80" />
+ <dc:Bounds x="810" y="327" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_ScriptTask_221" bpmnElement="MSOCompletionHandler">
- <dc:Bounds x="708" y="327" width="100" height="80" />
+ <dc:Bounds x="948" y="327" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_EndEvent_177" bpmnElement="EndEvent_1">
- <dc:Bounds x="1020" y="349" width="36" height="36" />
+ <dc:Bounds x="1237" y="349" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="1038" y="390" width="0" height="0" />
+ <dc:Bounds x="1210" y="390" width="90" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_EndEvent_178" bpmnElement="EndEvent_2">
- <dc:Bounds x="452" y="469" width="36" height="36" />
+ <dc:Bounds x="413" y="454" width="36" height="36" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="470" y="510" width="0" height="0" />
+ <dc:Bounds x="386" y="495" width="90" height="0" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_5" bpmnElement="SequenceFlow_5" sourceElement="_BPMNShape_IntermediateCatchEvent_32" targetElement="_BPMNShape_ScriptTask_219">
@@ -300,38 +364,25 @@ exceptionUtil.processJavaException(execution)]]></bpmn2:script>
<di:waypoint xsi:type="dc:Point" x="227" y="367" />
<di:waypoint xsi:type="dc:Point" x="277" y="367" />
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_8" bpmnElement="SequenceFlow_8" sourceElement="_BPMNShape_ServiceTask_103" targetElement="_BPMNShape_ExclusiveGateway_179">
- <di:waypoint xsi:type="dc:Point" x="377" y="367" />
- <di:waypoint xsi:type="dc:Point" x="410" y="367" />
- <di:waypoint xsi:type="dc:Point" x="410" y="366" />
- <di:waypoint xsi:type="dc:Point" x="443" y="366" />
- <bpmndi:BPMNLabel>
- <dc:Bounds x="407" y="366" width="6" height="6" />
- </bpmndi:BPMNLabel>
- </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_9" bpmnElement="updateInfraRequestResponseBad" sourceElement="_BPMNShape_ExclusiveGateway_179" targetElement="_BPMNShape_EndEvent_178">
- <di:waypoint xsi:type="dc:Point" x="468" y="391" />
- <di:waypoint xsi:type="dc:Point" x="469" y="421" />
- <di:waypoint xsi:type="dc:Point" x="470" y="421" />
- <di:waypoint xsi:type="dc:Point" x="470" y="469" />
+ <di:waypoint xsi:type="dc:Point" x="430" y="391" />
+ <di:waypoint xsi:type="dc:Point" x="431" y="454" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="459" y="419" width="20" height="22" />
+ <dc:Bounds x="423.56413838294776" y="426.8392769104355" width="12" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_11" bpmnElement="updateInfraRequestResponseGood" sourceElement="_BPMNShape_ExclusiveGateway_179" targetElement="_BPMNShape_ScriptTask_220">
- <di:waypoint xsi:type="dc:Point" x="493" y="366" />
- <di:waypoint xsi:type="dc:Point" x="523" y="366" />
- <di:waypoint xsi:type="dc:Point" x="523" y="367" />
- <di:waypoint xsi:type="dc:Point" x="552" y="367" />
+ <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_11" bpmnElement="updateInfraRequestResponseGood" sourceElement="_BPMNShape_ExclusiveGateway_179" targetElement="CallActivity_17ukiqm_di">
+ <di:waypoint xsi:type="dc:Point" x="456" y="367" />
+ <di:waypoint xsi:type="dc:Point" x="525" y="367" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="510" y="367" width="27" height="22" />
+ <dc:Bounds x="482.10526315789474" y="367.00000000000006" width="18" height="12" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_12" bpmnElement="SequenceFlow_12" sourceElement="_BPMNShape_ScriptTask_220" targetElement="_BPMNShape_ScriptTask_221">
- <di:waypoint xsi:type="dc:Point" x="652" y="367" />
- <di:waypoint xsi:type="dc:Point" x="708" y="367" />
+ <di:waypoint xsi:type="dc:Point" x="910" y="367" />
+ <di:waypoint xsi:type="dc:Point" x="948" y="367" />
<bpmndi:BPMNLabel>
- <dc:Bounds x="678" y="367" width="6" height="6" />
+ <dc:Bounds x="884" y="349" width="90" height="6" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_SubProcess_20" bpmnElement="ErrorHandler" isExpanded="true">
@@ -389,15 +440,21 @@ exceptionUtil.processJavaException(execution)]]></bpmn2:script>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_ScriptTask_241" bpmnElement="SetSuccessIndicator">
- <dc:Bounds x="858" y="328" width="103" height="79" />
+ <dc:Bounds x="1105" y="327" width="103" height="79" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_16" bpmnElement="SequenceFlow_14" sourceElement="_BPMNShape_ScriptTask_221" targetElement="_BPMNShape_ScriptTask_241">
- <di:waypoint xsi:type="dc:Point" x="808" y="367" />
- <di:waypoint xsi:type="dc:Point" x="858" y="367" />
+ <di:waypoint xsi:type="dc:Point" x="1048" y="367" />
+ <di:waypoint xsi:type="dc:Point" x="1105" y="366" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1031.5" y="341.5" width="90" height="20" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_18" bpmnElement="SequenceFlow_16" sourceElement="_BPMNShape_ScriptTask_241" targetElement="_BPMNShape_EndEvent_177">
- <di:waypoint xsi:type="dc:Point" x="960" y="367" />
- <di:waypoint xsi:type="dc:Point" x="1020" y="367" />
+ <di:waypoint xsi:type="dc:Point" x="1208" y="367" />
+ <di:waypoint xsi:type="dc:Point" x="1237" y="367" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="1177.5" y="342" width="90" height="20" />
+ </bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="SubProcess_0pgv3l6_di" bpmnElement="SubProcess_0pgv3l6" isExpanded="true">
<dc:Bounds x="160" y="1001" width="313" height="169" />
@@ -450,6 +507,98 @@ exceptionUtil.processJavaException(execution)]]></bpmn2:script>
<bpmndi:BPMNShape id="ScriptTask_036ipyg_di" bpmnElement="SendErrorResponse">
<dc:Bounds x="296" y="698" width="100" height="80" />
</bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="CallActivity_0i3men0_di" bpmnElement="CallActivity_0i3men0">
+ <dc:Bounds x="478" y="209" width="145" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_0e2ta6w_di" bpmnElement="SequenceFlow_0e2ta6w">
+ <di:waypoint xsi:type="dc:Point" x="409" y="249" />
+ <di:waypoint xsi:type="dc:Point" x="478" y="249" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="444" y="224" width="0" height="0" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ExclusiveGateway_09h60ub_di" bpmnElement="ExclusiveGateway_09h60ub" isMarkerVisible="true">
+ <dc:Bounds x="690.4550758459743" y="224.00350058343057" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="679" y="274.00350058343054" width="73" height="25" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_1vx081s_di" bpmnElement="SequenceFlow_1vx081s">
+ <di:waypoint xsi:type="dc:Point" x="740" y="249" />
+ <di:waypoint xsi:type="dc:Point" x="775" y="249" />
+ <di:waypoint xsi:type="dc:Point" x="775" y="249" />
+ <di:waypoint xsi:type="dc:Point" x="816" y="249" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="784" y="249" width="12" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_07llpjo_di" bpmnElement="SequenceFlow_07llpjo">
+ <di:waypoint xsi:type="dc:Point" x="623" y="249" />
+ <di:waypoint xsi:type="dc:Point" x="653" y="249" />
+ <di:waypoint xsi:type="dc:Point" x="653" y="249" />
+ <di:waypoint xsi:type="dc:Point" x="690" y="249" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="668" y="249" width="0" height="0" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="EndEvent_0n6bb71_di" bpmnElement="EndEvent_0n6bb71">
+ <dc:Bounds x="697" y="118" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="715" y="159" width="0" height="0" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_0nszq2o_di" bpmnElement="SequenceFlow_0nszq2o">
+ <di:waypoint xsi:type="dc:Point" x="715" y="224" />
+ <di:waypoint xsi:type="dc:Point" x="715" y="154" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="721" y="179" width="17" height="13" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="CallActivity_17ukiqm_di" bpmnElement="CallActivity_17ukiqm">
+ <dc:Bounds x="525" y="327" width="145" height="80" />
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_1crl7uf_di" bpmnElement="SequenceFlow_1crl7uf">
+ <di:waypoint xsi:type="dc:Point" x="377" y="367" />
+ <di:waypoint xsi:type="dc:Point" x="406" y="367" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="391.5" y="346" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="ExclusiveGateway_1hncvjy_di" bpmnElement="ExclusiveGateway_1hncvjy" isMarkerVisible="true">
+ <dc:Bounds x="712" y="342" width="50" height="50" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="696" y="308" width="82" height="24" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_1tk5ru7_di" bpmnElement="SequenceFlow_1tk5ru7">
+ <di:waypoint xsi:type="dc:Point" x="670" y="367" />
+ <di:waypoint xsi:type="dc:Point" x="712" y="367" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="691" y="346" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="SequenceFlow_0td7d9m_di" bpmnElement="SequenceFlow_0td7d9m">
+ <di:waypoint xsi:type="dc:Point" x="762" y="367" />
+ <di:waypoint xsi:type="dc:Point" x="810" y="367" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="780" y="346" width="12" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="EndEvent_0a97jcr_di" bpmnElement="EndEvent_0a97jcr">
+ <dc:Bounds x="719" y="454" width="36" height="36" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="692" y="495" width="0" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="SequenceFlow_0h5cld9_di" bpmnElement="SequenceFlow_0h5cld9">
+ <di:waypoint xsi:type="dc:Point" x="737" y="392" />
+ <di:waypoint xsi:type="dc:Point" x="737" y="423" />
+ <di:waypoint xsi:type="dc:Point" x="737" y="423" />
+ <di:waypoint xsi:type="dc:Point" x="737" y="454" />
+ <bpmndi:BPMNLabel>
+ <dc:Bounds x="743" y="417" width="18" height="12" />
+ </bpmndi:BPMNLabel>
+ </bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn2:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVfModuleInfraTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVfModuleInfraTest.java
index 390882e660..de2ae771a5 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVfModuleInfraTest.java
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVfModuleInfraTest.java
@@ -26,6 +26,7 @@ import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockAAIVfModule;
import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockSDNCAdapterVfModule;
import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockVNFAdapterRestVfModule;
import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDBUpdateVfModule;
+import static org.openecomp.mso.bpmn.mock.StubResponseAPPC.MockAppcError;
import java.io.IOException;
import java.util.HashMap;
@@ -41,6 +42,7 @@ import org.openecomp.mso.bpmn.mock.FileUtil;
/**
* Unit test cases for CreateVfModuleInfra.bpmn
*/
+@Ignore
public class CreateVfModuleInfraTest extends WorkflowTest {
private final CallbackSet callbacks = new CallbackSet();
@@ -65,6 +67,7 @@ public class CreateVfModuleInfraTest extends WorkflowTest {
@Test
@Deployment(resources = {
"process/CreateVfModuleInfra.bpmn",
+ "subprocess/BuildingBlock/AppCClient.bpmn",
"subprocess/DoCreateVfModule.bpmn",
"subprocess/GenericGetVnf.bpmn",
"subprocess/SDNCAdapterV1.bpmn",
@@ -76,7 +79,8 @@ public class CreateVfModuleInfraTest extends WorkflowTest {
"subprocess/UpdateAAIVfModule.bpmn",
"subprocess/UpdateAAIGenericVnf.bpmn",
"subprocess/CompleteMsoProcess.bpmn",
- "subprocess/FalloutHandler.bpmn"
+ "subprocess/FalloutHandler.bpmn",
+ "subprocess/BuildingBlock/AppCClient.bpmn"
})
public void sunnyDayVIDWithPreloads() throws Exception {
@@ -88,6 +92,7 @@ public class CreateVfModuleInfraTest extends WorkflowTest {
MockSDNCAdapterVfModule();
MockVNFAdapterRestVfModule();
MockDBUpdateVfModule();
+ MockAppcError();
String businessKey = UUID.randomUUID().toString();
String createVfModuleRequest =
@@ -123,6 +128,7 @@ public class CreateVfModuleInfraTest extends WorkflowTest {
@Test
@Deployment(resources = {
"process/CreateVfModuleInfra.bpmn",
+ "subprocess/BuildingBlock/AppCClient.bpmn",
"subprocess/DoCreateVfModule.bpmn",
"subprocess/GenericGetVnf.bpmn",
"subprocess/SDNCAdapterV1.bpmn",
@@ -134,7 +140,8 @@ public class CreateVfModuleInfraTest extends WorkflowTest {
"subprocess/UpdateAAIVfModule.bpmn",
"subprocess/UpdateAAIGenericVnf.bpmn",
"subprocess/CompleteMsoProcess.bpmn",
- "subprocess/FalloutHandler.bpmn"
+ "subprocess/FalloutHandler.bpmn",
+ "subprocess/BuildingBlock/AppCClient.bpmn"
})
public void sunnyDayVIDNoPreloads() throws Exception {
@@ -146,6 +153,7 @@ public class CreateVfModuleInfraTest extends WorkflowTest {
MockSDNCAdapterVfModule();
MockVNFAdapterRestVfModule();
MockDBUpdateVfModule();
+ MockAppcError();
String businessKey = UUID.randomUUID().toString();
String createVfModuleRequest =
@@ -208,6 +216,7 @@ public class CreateVfModuleInfraTest extends WorkflowTest {
@Ignore
@Deployment(resources = {
"process/CreateVfModuleInfra.bpmn",
+ "subprocess/BuildingBlock/AppCClient.bpmn",
"subprocess/DoCreateVfModule.bpmn",
"subprocess/GenericGetVnf.bpmn",
"subprocess/SDNCAdapterV1.bpmn",
@@ -220,7 +229,8 @@ public class CreateVfModuleInfraTest extends WorkflowTest {
"subprocess/UpdateAAIVfModule.bpmn",
"subprocess/UpdateAAIGenericVnf.bpmn",
"subprocess/CompleteMsoProcess.bpmn",
- "subprocess/FalloutHandler.bpmn"
+ "subprocess/FalloutHandler.bpmn",
+ "subprocess/BuildingBlock/AppCClient.bpmn"
})
public void sunnyDayVIDWithVolumeGroupAttach() throws Exception {
@@ -234,6 +244,7 @@ public class CreateVfModuleInfraTest extends WorkflowTest {
MockSDNCAdapterVfModule();
MockVNFAdapterRestVfModule();
MockDBUpdateVfModule();
+ MockAppcError();
String businessKey = UUID.randomUUID().toString();
String createVfModuleRequest =
@@ -294,6 +305,7 @@ public class CreateVfModuleInfraTest extends WorkflowTest {
@Test
@Deployment(resources = {
"process/CreateVfModuleInfra.bpmn",
+ "subprocess/BuildingBlock/AppCClient.bpmn",
"subprocess/DoCreateVfModule.bpmn",
"subprocess/GenericGetVnf.bpmn",
"subprocess/SDNCAdapterV1.bpmn",
@@ -305,7 +317,8 @@ public class CreateVfModuleInfraTest extends WorkflowTest {
"subprocess/UpdateAAIVfModule.bpmn",
"subprocess/UpdateAAIGenericVnf.bpmn",
"subprocess/CompleteMsoProcess.bpmn",
- "subprocess/FalloutHandler.bpmn"
+ "subprocess/FalloutHandler.bpmn",
+ "subprocess/BuildingBlock/AppCClient.bpmn"
})
public void sunnyDayVIDMultipleUserParamValues() throws Exception {
@@ -317,6 +330,7 @@ public class CreateVfModuleInfraTest extends WorkflowTest {
MockSDNCAdapterVfModule();
MockVNFAdapterRestVfModule();
MockDBUpdateVfModule();
+ MockAppcError();
String businessKey = UUID.randomUUID().toString();
String createVfModuleRequest =