Merge "SDWAN bandwidth update DG."
authorDan Timoney <dtimoney@att.com>
Mon, 1 Apr 2019 16:22:11 +0000 (16:22 +0000)
committerGerrit Code Review <gerrit@onap.org>
Mon, 1 Apr 2019 16:22:11 +0000 (16:22 +0000)
Former-commit-id: 1b34b6dd37c6fc1963fe66b00a1ee91344f65ef6

68 files changed:
installation/ansible-server/src/main/Playbooks/ansible_huawei_rollback@0.00.yml [new file with mode: 0644]
installation/sdnc/src/main/scripts/startODL.sh
installation/src/main/properties/lcm-dg.properties
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-aai-pnf-put.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation.json
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-tenant-auth.json
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-device-param.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-lanport-param.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-site-param.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-wan-param.json
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-activate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-create.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-deactivate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-delete.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-activate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-create.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-deactivate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-delete.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-activate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-create.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-deactivate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-delete.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-activate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-create.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-deactivate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-delete.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-activate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-create.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-deactivate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-delete.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_validate-sdwan-vf-vpn-input-parameters.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/resources/graph.versions
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-pnf-put.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation.xml [changed mode: 0755->0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-tenant-auth.xml
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-device-param.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-lanport-param.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-site-param.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-wan-param.xml
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-activate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-create.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-deactivate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-delete.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-activate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-create.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-deactivate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-delete.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-activate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-create.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-deactivate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-delete.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-activate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-create.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-deactivate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-delete.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-activate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-create.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-deactivate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-delete.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_validate-sdwan-vf-vpn-input-parameters.xml [new file with mode: 0644]
platform-logic/lcm/src/main/json/LCM_rollback.json [new file with mode: 0644]
platform-logic/lcm/src/main/resources/graph.versions
platform-logic/lcm/src/main/xml/LCM_rollback.xml [new file with mode: 0644]
platform-logic/restapi-templates/src/main/json/sdlan-bridge-domain.json [new file with mode: 0644]
platform-logic/restapi-templates/src/main/json/sdlan-ip-subnets-del.json [new file with mode: 0644]
platform-logic/restapi-templates/src/main/json/sdlan-ip-subnets.json [new file with mode: 0644]
platform-logic/restapi-templates/src/main/json/sdlan-port-del.json [new file with mode: 0644]
platform-logic/restapi-templates/src/main/json/sdlan-port.json [new file with mode: 0644]

diff --git a/installation/ansible-server/src/main/Playbooks/ansible_huawei_rollback@0.00.yml b/installation/ansible-server/src/main/Playbooks/ansible_huawei_rollback@0.00.yml
new file mode 100644 (file)
index 0000000..ef56c54
--- /dev/null
@@ -0,0 +1,21 @@
+---\r
+- hosts: all\r
+  tasks:\r
+  - name: create a temporary file for additional data\r
+    file: \r
+        path: /tmp/tmp-{{Id}}\r
+        state: touch\r
+    become: false\r
+\r
+  - name: prepare additional data\r
+    shell: echo {{additionalData}} > /tmp/tmp-{{Id}}\r
+    become: false\r
+\r
+  - name: execute rollback operation\r
+    shell: ./swm/rollback.sh {{pnfId}} {{oldSwVersion}} /tmp/tmp-{{Id}}\r
+\r
+  - name: remove the temporary file\r
+    file:\r
+        path: /tmp/tmp-{{Id}}\r
+        state: absent\r
+    become: false\r
index 73e3eaa..0987625 100755 (executable)
 # ============LICENSE_END=========================================================
 ###
 
+# Append features to karaf boot feature configuration
+# $1 additional feature to be added
+# $2 repositories to be added (optional)
+function addToFeatureBoot() {
+  CFG=$ODL_HOME/etc/org.apache.karaf.features.cfg
+  ORIG=$CFG.orig
+  if [ -n "$2" ] ; then
+    echo "Add repository: $2"
+    mv $CFG $ORIG
+    cat $ORIG | sed -e "\|featuresRepositories|s|$|,$2|" > $CFG
+  fi
+  echo "Add boot feature: $1"
+  mv $CFG $ORIG
+  cat $ORIG | sed -e "\|featuresBoot *=|s|$|,$1|" > $CFG
+}
+
+function install_sdnrwt_features() {
+  addToFeatureBoot "$SDNRWT_BOOTFEATURES" $SDNRWT_REPOSITORY
+}
+
 function enable_odl_cluster(){
   if [ -z $SDNC_REPLICAS ]; then
      echo "SDNC_REPLICAS is not configured in Env field"
@@ -81,6 +101,14 @@ ENABLE_ODL_CLUSTER=${ENABLE_ODL_CLUSTER:-false}
 IS_PRIMARY_CLUSTER=${IS_PRIMARY_CLUSTER:-false}
 MY_ODL_CLUSTER=${MY_ODL_CLUSTER:-127.0.0.1}
 INSTALLED_DIR=${INSTALLED_FILE:-/opt/opendaylight/current/daexim}
+SDNRWT=${SDNRWT:-false}
+SDNRWT_BOOTFEATURES=${SDNRWT_BOOTFEATURES:-sdnr-wt-feature-aggregator}
+
+
+echo "Settings:"
+echo "  ENABLE_ODL_CLUSTER=$ENABLE_ODL_CLUSTER"
+echo "  SDNC_REPLICAS=$SDNC_REPLICAS"
+echo "  SDNRWT=$SDNRWT"
 
 #
 # Wait for database
@@ -115,6 +143,8 @@ then
 
     if $ENABLE_ODL_CLUSTER ; then enable_odl_cluster ; fi
 
+       if $SDNRWT ; then install_sdnrwt_features ; fi
+
        echo "Installed at `date`" > ${INSTALLED_DIR}/.installed
 fi
 
index 3c6920e..53cecfb 100644 (file)
@@ -9,9 +9,11 @@ ansible.version=0.00
 lcm.upgrade-pre-check.playbookname=ansible_precheck
 lcm.upgrade-post-check.playbookname=ansible_postcheck
 lcm.upgrade-software.playbookname=ansible_upgradesw
+lcm.rollback.playbookname=ansible_rollback
 lcm.pnf.upgrade-pre-check.playbookname=ansible_precheck_pnf
 lcm.pnf.upgrade-post-check.playbookname=ansible_postcheck_pnf
 lcm.pnf.upgrade-software.playbookname=ansible_upgradesw_pnf
+lcm.pnf.rollback.playbookname=ansible_rollback_pnf
 lcm.quiesce-traffic.playbookname=ansible_quiescetraffic
 lcm.resume-traffic.playbookname=ansible_resumetraffic
 lcm.distribute-traffic.playbookname=ansible_distributetraffic
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-aai-pnf-put.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-aai-pnf-put.json
new file mode 100644 (file)
index 0000000..40b49cf
--- /dev/null
@@ -0,0 +1,675 @@
+[\r
+    {\r
+        "id": "89a5f171.637f3",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 102.85714721679688,\r
+        "y": 27.142858505249023,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "726d4b48.6b3284"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba98d97d.0b8a38",\r
+        "type": "method",\r
+        "name": "method self-serve-aai-pnf-put",\r
+        "xml": "<method rpc='self-serve-aai-pnf-put' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 207.92857360839844,\r
+        "y": 108.31746292114258,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "f00b1d79.cbbfd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f00b1d79.cbbfd",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 193.75001525878906,\r
+        "y": 174.80955505371094,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "8e501ff3.989f9",\r
+                "f0ca58a.1b0cda8",\r
+                "ced3a890.5dcf98",\r
+                "fad2d25.74e043"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "726d4b48.6b3284",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 375.71429443359375,\r
+        "y": 26.571425437927246,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "ba98d97d.0b8a38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8e501ff3.989f9",\r
+        "type": "switchNode",\r
+        "name": "switch: ss.capability-action",\r
+        "xml": "<switch test='`$ss.capability-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 459.6429328918457,\r
+        "y": 228.74998331069946,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "11cee7f1.2e1cd8",\r
+                "107d90ac.e448ef"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "11cee7f1.2e1cd8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 683.1429290771484,\r
+        "y": 228.99998331069946,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "c5d83975.009c18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c5d83975.009c18",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"ss.capability-action is null\" />\n",\r
+        "comments": "",\r
+        "x": 843.0596008300781,\r
+        "y": 229.11108207702637,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "107d90ac.e448ef",\r
+        "type": "outcome",\r
+        "name": "assign",\r
+        "xml": "<outcome value='assign'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 682.8929252624512,\r
+        "y": 277.99998664855957,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "122bdfd4.0eeb4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "575e2623.493218",\r
+        "type": "for",\r
+        "name": "for aidx in param_length (PNF)",\r
+        "xml": "<for silentFailure='true' index=\"aidx\" start=\"0\" end=\"`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1122.884937286377,\r
+        "y": 277.9603753089905,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "95379e3b.20688"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f0ca58a.1b0cda8",\r
+        "type": "execute",\r
+        "name": "printContext",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss-aai-pnf-put.log' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 404.702392578125,\r
+        "y": 593.0952491760254,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "95379e3b.20688",\r
+        "type": "switchNode",\r
+        "name": "switch: param[].name",\r
+        "xml": "<switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$aidx].name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1445.4286041259766,\r
+        "y": 278.21428871154785,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "bf35662a.fd7a28",\r
+                "a34f4b03.d69878",\r
+                "2c5c4f3f.a39d2",\r
+                "cba4e46a.a153b8",\r
+                "8d9b71bd.4a778",\r
+                "3935817d.ee66ee"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bf35662a.fd7a28",\r
+        "type": "outcome",\r
+        "name": "pnf-name",\r
+        "xml": "<outcome value='pnf-name'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1676.3215980529785,\r
+        "y": 277.9999809265137,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "57231303.ea37dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a34f4b03.d69878",\r
+        "type": "outcome",\r
+        "name": "pnf-id",\r
+        "xml": "<outcome value='pnf-id'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1667.6788024902344,\r
+        "y": 386.9642949104309,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "f63b6a7a.ac9fd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "57231303.ea37dc",\r
+        "type": "set",\r
+        "name": "set pnf-name, index",\r
+        "xml": "<set>\n<parameter name='ss.param.pnf-name' value ='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$aidx].value`' />\n<parameter name='ss.param.pnf-name-index' value='`$aidx`' />",\r
+        "comments": "",\r
+        "x": 1879.321605682373,\r
+        "y": 278.4999966621399,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f63b6a7a.ac9fd8",\r
+        "type": "set",\r
+        "name": "set pnf-id, index",\r
+        "xml": "<set>\n<parameter name='ss.param.pnf-id' value ='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$aidx].value`' />\n<parameter name='ss.param.pnf-id-index' value='`$aidx`' />",\r
+        "comments": "",\r
+        "x": 1843.1788139343262,\r
+        "y": 386.7142958641052,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7b5b542e.56480c",\r
+        "type": "save",\r
+        "name": "update pnf",\r
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"pnf\"\n\t\tkey=\"pnf.pnf-name = $ss.param.pnf-name \" >\n<parameter name=\"pnf-name2\" value=\"`$ss.param.pnf-name2`\" />\n<parameter name=\"prov-status\" value=\"PREPROV\" />\n<parameter name=\"selflink\" value=\"`$ss.selflink`\" />\n<parameter name=\"ipaddress-v4-oam\" value=\"`$ss.param.ipv4-oam-address`\" />\n<parameter name=\"ipaddress-v6-oam\" value=\"`$ss.param.ipv6-oam-address`\" />\n<parameter name=\"model-customization-id\"\n        value=\"`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.onap-model-information.model-customization-uuid`\" />\n<parameter name=\"model-invariant-id\"\n        value=\"`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.onap-model-information.model-invariant-uuid`\" />\n<parameter name=\"model-version-id\"\n        value=\"`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.onap-model-information.model-uuid`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1060.7498931884766,\r
+        "y": 897.3929443359375,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "f112cd3.4ede93",\r
+                "84b6dbe8.3fe148"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f112cd3.4ede93",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1260.9999237060547,\r
+        "y": 897.7499914169312,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "28f613dd.534a9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "84b6dbe8.3fe148",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1267.2499351501465,\r
+        "y": 949.5000257492065,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "26471432.bb892c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dff94b2c.d48618",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update pnf.pnf-name in AnAI with pnf-name=' + $ss.param.pnf-name`\" />\n",\r
+        "comments": "",\r
+        "x": 1654.5830841064453,\r
+        "y": 897.5357427597046,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "43d277af.fa5098",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'pnf with pnf-name =' + $ss.param.pnf-name + ' is not found in AAI'`\" />\n",\r
+        "comments": "",\r
+        "x": 1653.7260665893555,\r
+        "y": 948.7738838195801,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9bdf4d2.171ffb",\r
+        "type": "save",\r
+        "name": "get pnf",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"pnf\"\n\t\tkey=\"pnf.pnf-name = $ss.param.pnf-name \"\n\tpfx=\"tmp.aai.pnf\" >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1042.03564453125,\r
+        "y": 638.0000247955322,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "1bebe350.ee380d",\r
+                "ab2a6854.6c93e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1bebe350.ee380d",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1250.5712776184082,\r
+        "y": 637.499945640564,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "4ad9bcb5.06d024"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ab2a6854.6c93e8",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1258.8211975097656,\r
+        "y": 736.3928537368774,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "363ef080.c1121"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dd0d7e04.e3135",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Encountered error to get pnf with pnf-name=' + $ss.param.pnf-name + ' from AnAI'`\" />\n",\r
+        "comments": "",\r
+        "x": 1676.4400024414062,\r
+        "y": 685.8571395874023,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "aaf8ef15.0a2c9",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'pnf with pnf-name=' + $ss.param.pnf-name + ' not found in AAI'`\" />\n",\r
+        "comments": "",\r
+        "x": 1678.1544570922852,\r
+        "y": 736.0953845977783,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "122bdfd4.0eeb4",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 840.6429214477539,\r
+        "y": 278.2499828338623,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "575e2623.493218",\r
+                "9bdf4d2.171ffb",\r
+                "7b5b542e.56480c",\r
+                "1331d99f.8d7da6",\r
+                "45a19896.9c1308"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4ad9bcb5.06d024",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1422.142864227295,\r
+        "y": 637.5357389450073,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "9a1993dc.ff74",\r
+                "dd0d7e04.e3135"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "28f613dd.534a9c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1434.4284896850586,\r
+        "y": 897.8215160369873,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "9a1993dc.ff74",\r
+                "dff94b2c.d48618"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "26471432.bb892c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1437.2857055664062,\r
+        "y": 948.6786575317383,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "9a1993dc.ff74",\r
+                "43d277af.fa5098"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "363ef080.c1121",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1424.999942779541,\r
+        "y": 736.5357389450073,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "9a1993dc.ff74",\r
+                "aaf8ef15.0a2c9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9a1993dc.ff74",\r
+        "type": "set",\r
+        "name": "set resource-resolution-data.status = FAILED",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$ss.param.aai-pnf-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n",\r
+        "comments": "",\r
+        "x": 1785.9999465942383,\r
+        "y": 637.392951965332,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6b74947.f0ea76c",\r
+        "type": "comment",\r
+        "name": "PNF params",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1096.9286308288574,\r
+        "y": 228.33332681655884,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1331d99f.8d7da6",\r
+        "type": "set",\r
+        "name": "set resource-resolution-data.status = SUCCESS",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$ss.param.aai-pnf-put-index].resource-resolution-data.status' \n\tvalue='SUCCESS' />\n",\r
+        "comments": "",\r
+        "x": 1187.9882431030273,\r
+        "y": 1092.6783409118652,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2c5c4f3f.a39d2",\r
+        "type": "outcome",\r
+        "name": "aai-pnf-put",\r
+        "xml": "<outcome value='aai-pnf-put'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1679.8215141296387,\r
+        "y": 446.2499794960022,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "b874d734.628b78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b874d734.628b78",\r
+        "type": "set",\r
+        "name": "set ss.param.aai-pnf-put-index",\r
+        "xml": "<set>\n<parameter name='ss.param.aai-pnf-put-index' value='`$aidx`' />",\r
+        "comments": "",\r
+        "x": 1913.3215255737305,\r
+        "y": 445.9999804496765,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ced3a890.5dcf98",\r
+        "type": "switchNode",\r
+        "name": "switch: ss.capability-name",\r
+        "xml": "<switch test='`$ss.capability-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 458.0357475280762,\r
+        "y": 174.46428155899048,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "4ddefe6.88848"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4ddefe6.88848",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "outputs": 1,\r
+        "x": 683.0357704162598,\r
+        "y": 174.964280128479,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "a5814d23.17c89"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a5814d23.17c89",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"ss.capability-name is null\" />\n",\r
+        "comments": "",\r
+        "x": 842.9524421691895,\r
+        "y": 175.0753788948059,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fad2d25.74e043",\r
+        "type": "set",\r
+        "name": "set param[$ss.param.aai-pnf-put-index].value = SUCCESS",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$ss.param.aai-pnf-put-index].value' \n\tvalue='SUCCESS' />\n",\r
+        "comments": "",\r
+        "x": 567.0357360839844,\r
+        "y": 418.74999713897705,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "45a19896.9c1308",\r
+        "type": "set",\r
+        "name": "set ss.selflink",\r
+        "xml": "<set>\n<parameter name=\"ss.selflink\" \n\tvalue=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/' + \n\t$service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.service-instance-id + \n\t'/service-data/pnfs/pnf/' + \n\t$ss.param.pnf-id + \n\t'/pnf-data/pnf-topology/'`\" />\n",\r
+        "comments": "",\r
+        "x": 1065.9999618530273,\r
+        "y": 808.5714473724365,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cba4e46a.a153b8",\r
+        "type": "outcome",\r
+        "name": "pnf-name2",\r
+        "xml": "<outcome value='pnf-name2'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1682.5715141296387,\r
+        "y": 331.42857694625854,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "3b829d40.830272"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b829d40.830272",\r
+        "type": "set",\r
+        "name": "set pnf-name, index",\r
+        "xml": "<set>\n<parameter name='ss.param.pnf-name2' value ='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$aidx].value`' />\n<parameter name='ss.param.pnf-name2-index' value='`$aidx`' />",\r
+        "comments": "",\r
+        "x": 1885.857265472412,\r
+        "y": 330.9286093711853,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8d9b71bd.4a778",\r
+        "type": "outcome",\r
+        "name": "ipv4-oam-address",\r
+        "xml": "<outcome value='ipv4-oam-address'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1703.7143363952637,\r
+        "y": 501.42857694625854,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "82ab755c.be9198"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "82ab755c.be9198",\r
+        "type": "set",\r
+        "name": "set ss.param.ipv4-oam-address, index",\r
+        "xml": "<set>\n<parameter name='ss.param.ipv4-oam-address' value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$aidx].value`' />\n<parameter name='ss.param.ipv4-oam-address-index' value='`$aidx`' />",\r
+        "comments": "",\r
+        "x": 2009.107265472412,\r
+        "y": 501.17865324020386,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3935817d.ee66ee",\r
+        "type": "outcome",\r
+        "name": "ipv6-oam-address",\r
+        "xml": "<outcome value='ipv6-oam-address'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1703.7143363952637,\r
+        "y": 552.857165813446,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": [\r
+            [\r
+                "2b822ef4.66ac12"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2b822ef4.66ac12",\r
+        "type": "set",\r
+        "name": "set ss.param.ipv6-oam-address, index",\r
+        "xml": "<set>\n<parameter name='ss.param.ipv6-oam-address' value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$aidx].value`' />\n<parameter name='ss.param.ipv6-oam-address-index' value='`$aidx`' />",\r
+        "comments": "",\r
+        "x": 2009.107265472412,\r
+        "y": 552.6072421073914,\r
+        "z": "de6615d.b5910e8",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
index 1a37064..b1920a2 100644 (file)
@@ -1 +1,1317 @@
-[{"id":"aac134ec.6cf1b8","type":"dgstart","name":"DGSTART","outputs":1,"x":130,"y":85,"z":"e4792a03.590918","wires":[["937a93d5.41f8b"]]},{"id":"937a93d5.41f8b","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":243.28570556640625,"y":125.23811149597168,"z":"e4792a03.590918","wires":[["1ff0b858.8b6048"]]},{"id":"1ff0b858.8b6048","type":"method","name":"method vf-module-topology-operation","xml":"<method rpc='vf-module-topology-operation' mode='sync'>\n","comments":"","outputs":1,"x":217.42862701416016,"y":164.9999942779541,"z":"e4792a03.590918","wires":[["e6e0449c.e0ce68"]]},{"id":"b858ba31.1d36a8","type":"comment","name":"vf-module-topology-operation","info":"","comments":"","x":524.344856262207,"y":32.58634376525879,"z":"e4792a03.590918","wires":[]},{"id":"e6e0449c.e0ce68","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":199.50003814697266,"y":404.3601722717285,"z":"e4792a03.590918","wires":[["6a5a06d.b6909f8","5dfb397c.6005b8","b60fc0ca.3f1f1"]]},{"id":"6a5a06d.b6909f8","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":485.0000305175781,"y":577.8575611114502,"z":"e4792a03.590918","wires":[]},{"id":"5dfb397c.6005b8","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":495.9046401977539,"y":402.57139682769775,"z":"e4792a03.590918","wires":[["3f3819ab.205506","c0da133d.5bf54","dc742571.a62c58","b0109a9a.d288c8","2db6534f.dfd25c","69657262.5b917c"]]},{"id":"3f3819ab.205506","type":"outcome","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":705.3809204101562,"y":292.85723400115967,"z":"e4792a03.590918","wires":[["bbd51bfa.9a57d8"]]},{"id":"c0da133d.5bf54","type":"outcome","name":"unassign","xml":"<outcome value='unassign'>\n","comments":"","outputs":1,"x":713.761905670166,"y":439.0479259490967,"z":"e4792a03.590918","wires":[["a83fc83c.53eca8"]]},{"id":"b0109a9a.d288c8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":705.4761619567871,"y":535.2380466461182,"z":"e4792a03.590918","wires":[["fc77d9ee.2a5968"]]},{"id":"fc77d9ee.2a5968","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$vnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n","comments":"","x":899.6665878295898,"y":535.238115310669,"z":"e4792a03.590918","wires":[]},{"id":"b60fc0ca.3f1f1","type":"call","name":"call GENERIC-RESOURCE-API:validate-vf-module-input","xml":"<call module='GENERIC-RESOURCE-API' rpc='validate-vf-module-input' mode='sync' >\n","comments":"","outputs":1,"x":615.0832824707031,"y":242.3810567855835,"z":"e4792a03.590918","wires":[[]]},{"id":"bbd51bfa.9a57d8","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-operation-assign","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign' mode='sync' >\n","comments":"","outputs":1,"x":1077.523754119873,"y":292.4286985397339,"z":"e4792a03.590918","wires":[[]]},{"id":"80ccbb30.d5a208","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-operation-deactivate","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-deactivate' mode='sync' >\n","comments":"","outputs":1,"x":1089.5237121582031,"y":389.0953416824341,"z":"e4792a03.590918","wires":[[]]},{"id":"a83fc83c.53eca8","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-operation-unassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-unassign' mode='sync' >\n","comments":"","outputs":1,"x":1083.8569831848145,"y":438.7620611190796,"z":"e4792a03.590918","wires":[[]]},{"id":"dc742571.a62c58","type":"outcome","name":"deactivate","xml":"<outcome value='deactivate'>\n","comments":"","outputs":1,"x":717.8569984436035,"y":389.7620153427124,"z":"e4792a03.590918","wires":[["80ccbb30.d5a208"]]},{"id":"cfe9d851.6e01b8","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-operation-activate","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-activate' mode='sync' >\n","comments":"","outputs":1,"x":1081.99995803833,"y":339.9999876022339,"z":"e4792a03.590918","wires":[[]]},{"id":"2db6534f.dfd25c","type":"outcome","name":"activate","xml":"<outcome value='activate'>\n","comments":"","outputs":1,"x":709.999942779541,"y":340.6666650772095,"z":"e4792a03.590918","wires":[["cfe9d851.6e01b8"]]},{"id":"69657262.5b917c","type":"outcome","name":"changeassign","xml":"<outcome value='changeassign'>\n","comments":"","outputs":1,"x":728.3333206176758,"y":486.6666555404663,"z":"e4792a03.590918","wires":[["2b822e27.0073f2"]]},{"id":"2b822e27.0073f2","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-operation-changeassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-changeassign' mode='sync' >\n","comments":"","outputs":1,"x":1097.4283905029297,"y":486.38079166412354,"z":"e4792a03.590918","wires":[[]]}]
\ No newline at end of file
+[\r
+    {\r
+        "id": "89e51e9a.af64e",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 107.00390625,\r
+        "y": 88.41365686058998,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "a0ef042f.2b7ad8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a0ef042f.2b7ad8",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 220.28961181640625,\r
+        "y": 128.65176835656166,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "a57a3919.3af3c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a57a3919.3af3c8",\r
+        "type": "method",\r
+        "name": "method vf-module-topology-operation",\r
+        "xml": "<method rpc='vf-module-topology-operation' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 194.43253326416016,\r
+        "y": 168.41365113854408,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "8614ae38.109ab"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "38a58e7b.28bdc2",\r
+        "type": "comment",\r
+        "name": "vf-module-topology-operation",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 501.34876251220703,\r
+        "y": 36.00000062584877,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8614ae38.109ab",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 176.50394439697266,\r
+        "y": 407.7738291323185,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "53a601da.db57d",\r
+                "f371244d.9451a8",\r
+                "c9966ea2.57b1d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "53a601da.db57d",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 462.0039367675781,\r
+        "y": 581.2712179720402,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f371244d.9451a8",\r
+        "type": "switchNode",\r
+        "name": "switch svc-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 472.9085464477539,\r
+        "y": 405.98505368828773,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "dc31bef9.f164b",\r
+                "1b121869.8a1878",\r
+                "320a19eb.21afb6",\r
+                "db7b02d4.3e117",\r
+                "b369a934.e11c08",\r
+                "8734e4a2.e72ad8",\r
+                "bcf05aca.9cd8e8",\r
+                "c7064bfe.3bb108",\r
+                "5dfbbd6.4b80544"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dc31bef9.f164b",\r
+        "type": "outcome",\r
+        "name": "assign",\r
+        "xml": "<outcome value='assign'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 682.3848266601562,\r
+        "y": 296.27089086174965,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "d462656f.1ce878"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1b121869.8a1878",\r
+        "type": "outcome",\r
+        "name": "unassign",\r
+        "xml": "<outcome value='unassign'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 690.765811920166,\r
+        "y": 442.46158280968666,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "52d55f39.2254f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "320a19eb.21afb6",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 678.4806060791016,\r
+        "y": 1848.9855699539185,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "aa8c9f07.7e876"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aa8c9f07.7e876",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$vnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n",\r
+        "comments": "",\r
+        "x": 872.6710319519043,\r
+        "y": 1848.9856386184692,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c9966ea2.57b1d",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:validate-vf-module-input",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-vf-module-input' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 592.0871887207031,\r
+        "y": 245.79471364617348,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d462656f.1ce878",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-assign",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1054.527660369873,\r
+        "y": 295.84235540032387,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "1a8dc80f.d90c48",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-deactivate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-deactivate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1066.5276184082031,\r
+        "y": 392.50899854302406,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "52d55f39.2254f",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-unassign",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-unassign' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1060.8608894348145,\r
+        "y": 442.17571797966957,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e3a2c358.113df",\r
+        "type": "outcome",\r
+        "name": "deactivate",\r
+        "xml": "<outcome value='deactivate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 694.8609046936035,\r
+        "y": 393.1756722033024,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "1a8dc80f.d90c48"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "db7b02d4.3e117",\r
+        "type": "outcome",\r
+        "name": "changeassign",\r
+        "xml": "<outcome value='changeassign'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 705.3372268676758,\r
+        "y": 490.0803124010563,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "f258fd95.0fe79"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f258fd95.0fe79",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-changeassign",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-changeassign' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1074.4322967529297,\r
+        "y": 489.7944485247135,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b369a934.e11c08",\r
+        "type": "outcome",\r
+        "name": "create",\r
+        "xml": "<outcome value='create'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 700.0041465759277,\r
+        "y": 691.4137353897095,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "ba7564f.359ed98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2c4e26db.d2576a",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 940.3377494812012,\r
+        "y": 743.0000324249268,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "3d832a02.563396",\r
+                "1104c91d.350e07",\r
+                "f844d17c.4dd8f",\r
+                "48cd140e.14f35c",\r
+                "b370d981.a636e8",\r
+                "6fc07521.c03a0c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1104c91d.350e07",\r
+        "type": "outcome",\r
+        "name": "CreateSiteInstance",\r
+        "xml": "<outcome value='CreateSiteInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1198.8141288757324,\r
+        "y": 689.4793787002563,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "20db622e.dd2f7e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3d832a02.563396",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1140.7185325622559,\r
+        "y": 826.8572956621647,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "66bc9e9c.1ac1f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba7564f.359ed98",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 890.3373947143555,\r
+        "y": 688.0001001358032,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "2c4e26db.d2576a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "20db622e.dd2f7e",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-site-create",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-site-create' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1655.3379516601562,\r
+        "y": 687.0001611709595,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "66bc9e9c.1ac1f",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1294.0041847229004,\r
+        "y": 826.9136921465397,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f844d17c.4dd8f",\r
+        "type": "outcome",\r
+        "name": "CreateSDWANPortInstance",\r
+        "xml": "<outcome value='CreateSDWANPortInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1204.6709251403809,\r
+        "y": 785.247186332941,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "b6270252.07dee"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6270252.07dee",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-wanport-create",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-wanport-create' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1677.194622039795,\r
+        "y": 784.767938286066,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "48cd140e.14f35c",\r
+        "type": "outcome",\r
+        "name": "CreateSDWANDeviceInstance",\r
+        "xml": "<outcome value='CreateSDWANDeviceInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1214.0352592468262,\r
+        "y": 742.4451303482056,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "3b11278c.bb8c38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b11278c.bb8c38",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-device-create",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-device-create' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1669.5590476989746,\r
+        "y": 741.9659996032715,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b370d981.a636e8",\r
+        "type": "outcome",\r
+        "name": "CreateSDWANVpnInstance",\r
+        "xml": "<outcome value='CreateSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1233.0039367675781,\r
+        "y": 594.4136924743652,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "657379da.c01418"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "657379da.c01418",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-vpn-create",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-vpn-create' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1641.5277099609375,\r
+        "y": 591.9344596862793,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "8734e4a2.e72ad8",\r
+        "type": "outcome",\r
+        "name": "activate",\r
+        "xml": "<outcome value='activate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 691.0042190551758,\r
+        "y": 978.746994972229,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "f1db3d76.89225"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cdd2825f.5d09c",\r
+        "type": "outcome",\r
+        "name": "ActivateSiteInstance",\r
+        "xml": "<outcome value='ActivateSiteInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1182.1472473144531,\r
+        "y": 978.6459150314331,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "2a41522d.67a51e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f1db3d76.89225",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 871.6709899902344,\r
+        "y": 974.1666717529297,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "7f5f8826.961548"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2a41522d.67a51e",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-site-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-site-activate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1555.6710510253906,\r
+        "y": 977.1666975021362,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e3a84270.80d99",\r
+        "type": "outcome",\r
+        "name": "ActivateSDWANDeviceInstance",\r
+        "xml": "<outcome value='ActivateSDWANDeviceInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1210.3377075195312,\r
+        "y": 1027.6667370796204,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "5a26eb28.451874"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5a26eb28.451874",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-device-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-device-activate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1645.8614044189453,\r
+        "y": 1027.1875095367432,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a4f9d63b.494d98",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-wanport-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-wanport-activate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1650.3375396728516,\r
+        "y": 1072.6666593551636,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c8acd26d.1e739",\r
+        "type": "outcome",\r
+        "name": "ActivateSDWANPortInstance",\r
+        "xml": "<outcome value='ActivateSDWANPortInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1214.8138427734375,\r
+        "y": 1073.1458868980408,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "a4f9d63b.494d98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7f5f8826.961548",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 922.0042114257812,\r
+        "y": 1024.746958732605,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "cdd2825f.5d09c",\r
+                "e3a84270.80d99",\r
+                "c8acd26d.1e739",\r
+                "58bf71df.40217",\r
+                "e2c3c98a.638358",\r
+                "7eb3a13c.fe01"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "58bf71df.40217",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1146.5757064819336,\r
+        "y": 1121.958472251892,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "9491c86f.faa978"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e2c3c98a.638358",\r
+        "type": "outcome",\r
+        "name": "ActivateSDWANVpnInstance",\r
+        "xml": "<outcome value='ActivateSDWANVpnInstance'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1225.0041465759277,\r
+        "y": 888.7469822466373,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "3b1f1b03.8cdd84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b1f1b03.8cdd84",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-vpn-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-vpn-activate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1640.5279502868652,\r
+        "y": 882.2677589952946,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bcf05aca.9cd8e8",\r
+        "type": "outcome",\r
+        "name": "deactivate",\r
+        "xml": "<outcome value='deactivate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 685.0042686462402,\r
+        "y": 1232.7470879554749,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "eace7410.b0c1f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5e7397b3.dab7a8",\r
+        "type": "outcome",\r
+        "name": "DeactivateSiteInstance",\r
+        "xml": "<outcome value='DeactivateSiteInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1178.1472778320312,\r
+        "y": 1281.646014213562,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "21bb9b2a.ea8a34"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "eace7410.b0c1f8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 857.6710453033447,\r
+        "y": 1233.1667957305908,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "c3ccf383.cfe88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "21bb9b2a.ea8a34",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-site-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-site-deactivate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1551.6710815429688,\r
+        "y": 1280.1667966842651,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5379b130.c4fdc",\r
+        "type": "outcome",\r
+        "name": "DeactivateSDWANDeviceInstance",\r
+        "xml": "<outcome value='DeactivateSDWANDeviceInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1206.3377380371094,\r
+        "y": 1330.6668362617493,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "84ada7ed.5abb58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "84ada7ed.5abb58",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-device-deactivate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-device-deactivate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1641.8614349365234,\r
+        "y": 1330.187608718872,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "45330326.89c95c",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-wanport-deactivate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-wanport-deactivate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1646.3375701904297,\r
+        "y": 1375.6667585372925,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "47362b0e.0aa804",\r
+        "type": "outcome",\r
+        "name": "DeactivateSDWANPortInstance",\r
+        "xml": "<outcome value='DeactivateSDWANPortInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1210.8138732910156,\r
+        "y": 1376.1459860801697,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "45330326.89c95c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c3ccf383.cfe88",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 917.0043296813965,\r
+        "y": 1301.7472405433655,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "5e7397b3.dab7a8",\r
+                "5379b130.c4fdc",\r
+                "47362b0e.0aa804",\r
+                "63e6c1ce.d4cf5",\r
+                "4a02ebd5.071034",\r
+                "fb94038a.0100e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "63e6c1ce.d4cf5",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1146.5756072998047,\r
+        "y": 1425.9585485458374,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "58fb4bd3.507344"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a02ebd5.071034",\r
+        "type": "outcome",\r
+        "name": "DeactivateSDWANVpnInstance",\r
+        "xml": "<outcome value='DeactivateSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1214.0042190551758,\r
+        "y": 1182.7470560073853,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "fbad4fa4.97356"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fbad4fa4.97356",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-vpn-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-vpn-deactivate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1629.5280227661133,\r
+        "y": 1176.2678327560425,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "58fb4bd3.507344",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-deactivate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-deactivate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1485.0042877197266,\r
+        "y": 1426.4137592315674,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9491c86f.faa978",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-activate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1477.0042190551758,\r
+        "y": 1119.4136819839478,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "45dbdd14.1c9594",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-activate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1059.00386428833,\r
+        "y": 343.41364446282387,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7ddcd159.af7c5",\r
+        "type": "outcome",\r
+        "name": "activate",\r
+        "xml": "<outcome value='activate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 687.003849029541,\r
+        "y": 344.08032193779945,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "45dbdd14.1c9594"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c7064bfe.3bb108",\r
+        "type": "outcome",\r
+        "name": "delete",\r
+        "xml": "<outcome value='delete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 669.0042915344238,\r
+        "y": 1569.0804500579834,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "86fe3063.f5314"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8129346a.9a7028",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 900.3378295898438,\r
+        "y": 1599.666877746582,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "abdb2c6d.26329",\r
+                "1c9b503f.e869e",\r
+                "ebc11a5b.92e8f8",\r
+                "ed7bc3fc.a812b",\r
+                "f8972855.1982c8",\r
+                "5677852c.5c596c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1c9b503f.e869e",\r
+        "type": "outcome",\r
+        "name": "DeleteSiteInstance",\r
+        "xml": "<outcome value='DeleteSiteInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1149.8142318725586,\r
+        "y": 1589.1461973190308,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "491e32c9.2d52ac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "abdb2c6d.26329",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1099.7186889648438,\r
+        "y": 1736.524130821228,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "8f601e81.71977"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "86fe3063.f5314",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 849.3378295898438,\r
+        "y": 1532.6668758392334,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "8129346a.9a7028"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "491e32c9.2d52ac",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-site-delete",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-site-delete' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1603.338005065918,\r
+        "y": 1584.6669492721558,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "8f601e81.71977",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1253.0043411254883,\r
+        "y": 1736.580527305603,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ebc11a5b.92e8f8",\r
+        "type": "outcome",\r
+        "name": "DeleteSDWANPortInstance",\r
+        "xml": "<outcome value='DeleteSDWANPortInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1163.6710815429688,\r
+        "y": 1694.9140214920044,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "f8f01738.a952f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f8f01738.a952f8",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-wanport-delete",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-wanport-delete' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1636.1947784423828,\r
+        "y": 1694.4347734451294,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ed7bc3fc.a812b",\r
+        "type": "outcome",\r
+        "name": "DeleteSDWANDeviceInstance",\r
+        "xml": "<outcome value='DeleteSDWANDeviceInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1173.0354232788086,\r
+        "y": 1641.1119375228882,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "3f658e56.9d3b42"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f658e56.9d3b42",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-device-delete",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-device-delete' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1637.5591888427734,\r
+        "y": 1640.63277053833,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f8972855.1982c8",\r
+        "type": "outcome",\r
+        "name": "DeleteSDWANVpnInstance",\r
+        "xml": "<outcome value='DeleteSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1186.004264831543,\r
+        "y": 1487.0804476737976,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "19b04dbd.6b60a2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "19b04dbd.6b60a2",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-vpn-delete",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-vpn-delete' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1595.5280227661133,\r
+        "y": 1488.6011400222778,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6fc07521.c03a0c",\r
+        "type": "outcome",\r
+        "name": "CreateSDWANLanPortInstance",\r
+        "xml": "<outcome value='CreateSDWANLanPortInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1241.0312728881836,\r
+        "y": 642.5312581062317,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "8f4dfe29.61b9d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8f4dfe29.61b9d",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-lanport-create",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-lanport-create' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1651.5550537109375,\r
+        "y": 641.0520095825195,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7eb3a13c.fe01",\r
+        "type": "outcome",\r
+        "name": "ActivateSDWANLanPortInstance",\r
+        "xml": "<outcome value='ActivateSDWANLanPortInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1229.03125,\r
+        "y": 932.03125,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "41d9f761.0dc728"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "41d9f761.0dc728",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-lanport-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-lanport-activate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1639.555030822754,\r
+        "y": 930.5520014762878,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "fb94038a.0100e",\r
+        "type": "outcome",\r
+        "name": "DeactivateSDWANLanPortInstance",\r
+        "xml": "<outcome value='DeactivateSDWANLanPortInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1213.03125,\r
+        "y": 1236.53125,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "383a8f05.b6135"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "383a8f05.b6135",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-lanport-deactivate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-lanport-deactivate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1623.555030822754,\r
+        "y": 1235.0520014762878,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5677852c.5c596c",\r
+        "type": "outcome",\r
+        "name": "DeleteSDWANLanPortInstance",\r
+        "xml": "<outcome value='DeleteSDWANLanPortInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1201.03125,\r
+        "y": 1544.53125,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "7c7dc424.e574ac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7c7dc424.e574ac",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-vf-operation-lanport-delete",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-lanport-delete' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1607.5550842285156,\r
+        "y": 1546.0520501732826,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5dfbbd6.4b80544",\r
+        "type": "outcome",\r
+        "name": "update",\r
+        "xml": "<outcome value='update'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 683.000057220459,\r
+        "y": 1791.333441734314,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "321a7638.3b493a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "321a7638.3b493a",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 857.3335571289062,\r
+        "y": 1790.9197030067444,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "31f55a0d.2f22a6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "31f55a0d.2f22a6",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1056.3335647583008,\r
+        "y": 1790.919867515564,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "b3fecb60.6fce78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b3fecb60.6fce78",\r
+        "type": "outcome",\r
+        "name": "SdwanBandwidthChange",\r
+        "xml": "<outcome value='SdwanBandwidthChange'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1300.0000381469727,\r
+        "y": 1789.000054359436,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            [\r
+                "ec71b2dd.08538"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ec71b2dd.08538",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:sdwan-bandwidth-policy-change",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-bandwidth-policy-change' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1673.5238418579102,\r
+        "y": 1789.520941734314,\r
+        "z": "3e6c75a5.b69bda",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
index d088858..8a5d8f9 100644 (file)
 [\r
-  {\r
-    "id": "b8581db5.dbca7",\r
-    "type": "get-resource",\r
-    "name": "get-resource service-subscription",\r
-    "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"service-subscription\" \n        key= 'service-subscription.service-type = $service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.subscription-service-type \n        AND customer.global-customer-id = $service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.global-customer-id'\n      force=\"true\" pfx=\"tmp.AnAI-data-tenant\">\n      \n",\r
-    "comments": "",\r
-    "outputs": 1,\r
-    "x": 597,\r
-    "y": 418.09522092342377,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "1a771e75.f79d12",\r
-        "ac62029.181ce"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "5d45ba87.92c374",\r
-    "type": "switchNode",\r
-    "name": "switch temp-ub-sub-account-id",\r
-    "xml": "<switch test='`$tmp.AnAI-data-tenant.temp-ub-sub-account-id`'>\n",\r
-    "comments": "",\r
-    "outputs": 1,\r
-    "x": 1009.0000915527344,\r
-    "y": 382.84530198574066,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "5358b5db.d1e49c",\r
-        "28c300d9.7fa36"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "5358b5db.d1e49c",\r
-    "type": "outcome",\r
-    "name": "NULL",\r
-    "xml": "<outcome value=''>",\r
-    "comments": "",\r
-    "outputs": 1,\r
-    "x": 1201.714542388916,\r
-    "y": 356.84534299373627,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "831b80bb.e08e8"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "28c300d9.7fa36",\r
-    "type": "other",\r
-    "name": "Other",\r
-    "xml": "<outcome value='Other'>",\r
-    "comments": "",\r
-    "outputs": 1,\r
-    "x": 1202.0001068115234,\r
-    "y": 411.8453058004379,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "e1a74ece.52f65"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "1a771e75.f79d12",\r
-    "type": "success",\r
-    "name": "success",\r
-    "xml": "<outcome value='success'>\n",\r
-    "comments": "",\r
-    "outputs": 1,\r
-    "x": 807.4998626708984,\r
-    "y": 390.84127938747406,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "5d45ba87.92c374"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "ac62029.181ce",\r
-    "type": "failure",\r
-    "name": "failure",\r
-    "xml": "<outcome value='failure'>\n",\r
-    "comments": "",\r
-    "outputs": 1,\r
-    "x": 801.1784515380859,\r
-    "y": 443.0555909872055,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "f81e2009.7dbd5"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "f81e2009.7dbd5",\r
-    "type": "returnFailure",\r
-    "name": "return failure",\r
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing get token rest api\" />\n",\r
-    "comments": "",\r
-    "x": 953.9284515380859,\r
-    "y": 442.80565202236176,\r
-    "z": "a703782b.2992b8",\r
-    "wires": []\r
-  },\r
-  {\r
-    "id": "4bd31b43.411d14",\r
-    "type": "service-logic",\r
-    "name": "GENERIC-RESOURCE-API ${project.version}",\r
-    "module": "GENERIC-RESOURCE-API",\r
-    "version": "${project.version}",\r
-    "comments": "",\r
-    "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
-    "outputs": 1,\r
-    "x": 177,\r
-    "y": 145.23810708522797,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "d79d2c6f.11854"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "c863bd10.503ce",\r
-    "type": "dgstart",\r
-    "name": "DGSTART",\r
-    "outputs": 1,\r
-    "x": 97.71429443359375,\r
-    "y": 82.99999749660492,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "4bd31b43.411d14"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "5dc11f37.9dd37",\r
-    "type": "block",\r
-    "name": "block : atomic",\r
-    "xml": "<block atomic=\"true\">",\r
-    "atomic": "true",\r
-    "outputs": 1,\r
-    "x": 330.95240020751953,\r
-    "y": 381.8095315694809,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "b8581db5.dbca7",\r
-        "c8c0bf77.157a7"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "d79d2c6f.11854",\r
-    "type": "method",\r
-    "name": "method sdwan-get-tenant-auth",\r
-    "xml": "<method rpc='sdwan-get-tenant-auth' mode='sync'>\n",\r
-    "comments": "",\r
-    "outputs": 1,\r
-    "x": 188.71429443359375,\r
-    "y": 239.58633935451508,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      [\r
-        "5dc11f37.9dd37"\r
-      ]\r
-    ]\r
-  },\r
-  {\r
-    "id": "e1a74ece.52f65",\r
-    "type": "set",\r
-    "name": "set prop.tenant-id",\r
-    "xml": "<set>\n<parameter name='prop.tenant-id' value='`$tmp.AnAI-data-tenant.temp-ub-sub-account-id`' />\n",\r
-    "comments": "",\r
-    "x": 1379.857177734375,\r
-    "y": 410.9523614645004,\r
-    "z": "a703782b.2992b8",\r
-    "wires": []\r
-  },\r
-  {\r
-    "id": "c8c0bf77.157a7",\r
-    "type": "execute",\r
-    "name": "execute RestApiCallNode Create tenant auth",\r
-    "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/baseservice/tenants/authorization/' + $prop.tenant-id`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"tenant-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
-    "comments": "",\r
-    "outputs": 1,\r
-    "x": 624.5000305175781,\r
-    "y": 520.9880307912827,\r
-    "z": "a703782b.2992b8",\r
-    "wires": [\r
-      []\r
-    ]\r
-  },\r
-  {\r
-    "id": "831b80bb.e08e8",\r
-    "type": "returnFailure",\r
-    "name": "return failure",\r
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing get token rest api\" />\n",\r
-    "comments": "",\r
-    "x": 1384.1427841186523,\r
-    "y": 356.6666520833969,\r
-    "z": "a703782b.2992b8",\r
-    "wires": []\r
-  }\r
-]\r
+    {\r
+        "id": "3eca748a.ef817c",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 123,\r
+        "y": 75,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "350fb0d5.88723"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "350fb0d5.88723",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 368.2857131958008,\r
+        "y": 74.23807907104492,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "7fecfee8.d291b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7fecfee8.d291b",\r
+        "type": "method",\r
+        "name": "validate-sdwan-vf-vpn-input-parameters",\r
+        "xml": "<method rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 451.9166946411133,\r
+        "y": 209.25301837921143,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "8f6f1f8b.897a9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8f6f1f8b.897a9",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 735.9167022705078,\r
+        "y": 197.25304317474365,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "634b7128.2e84d",\r
+                "adb8eda0.ca986",\r
+                "bc20a4d8.66ea78",\r
+                "376a189c.5eea28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "634b7128.2e84d",\r
+        "type": "switchNode",\r
+        "name": "switch  svc-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 995.916633605957,\r
+        "y": 45.25303936004639,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "183ac3e9.257bcc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "183ac3e9.257bcc",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1186.6309356689453,\r
+        "y": 46.2530403137207,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "65be383e.39b058"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "65be383e.39b058",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-request-id is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 1361.0594863891602,\r
+        "y": 45.25303268432617,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "adb8eda0.ca986",\r
+        "type": "switchNode",\r
+        "name": "switch svc-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 332.9166564941406,\r
+        "y": 468.2530336380005,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "83c4de98.01196",\r
+                "ce7e74f7.3c86c8",\r
+                "147fd5d9.68de3a",\r
+                "1561519f.abda0e",\r
+                "d7c5bf00.510dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "83c4de98.01196",\r
+        "type": "outcome",\r
+        "name": "create",\r
+        "xml": "<outcome value='create'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 526.5000228881836,\r
+        "y": 297.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "363f7231.506cbe"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "363f7231.506cbe",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 687.5000228881836,\r
+        "y": 297.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "46be34f.5b2c7cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ce7e74f7.3c86c8",\r
+        "type": "outcome",\r
+        "name": "deactivate",\r
+        "xml": "<outcome value='deactivate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 499.4920120239258,\r
+        "y": 906.428539276123,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "aec7db3f.798358"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "147fd5d9.68de3a",\r
+        "type": "outcome",\r
+        "name": "delete",\r
+        "xml": "<outcome value='delete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 503.20639419555664,\r
+        "y": 1077.1430969238281,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "c7708172.24701"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1561519f.abda0e",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 502.9682846069336,\r
+        "y": 1250.571382522583,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b6252f6e.c1321"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6252f6e.c1321",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$vf-module-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n",\r
+        "comments": "",\r
+        "x": 686.5398178100586,\r
+        "y": 1251.190523147583,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "46be34f.5b2c7cc",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 888,\r
+        "y": 295.6666797399521,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3528f63.34e230a",\r
+                "82048a2c.348118"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3528f63.34e230a",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1073.4999923706055,\r
+        "y": 323.66667652130127,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3198409.3ebdec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3198409.3ebdec",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is required to be SOTN CreateVPNNetworkInstance for svc-action=create\" />\n",\r
+        "comments": "",\r
+        "x": 1224.0000228881836,\r
+        "y": 317.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ee1459dc.d090c8",\r
+        "type": "other",\r
+        "name": "DeleteSDWANVpnInstance",\r
+        "xml": "<outcome value='DeleteSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 945.0634384155273,\r
+        "y": 1073.698395729065,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "773b0668.3dfda8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "640b4312.a9c5ac",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 860.6189804077148,\r
+        "y": 1149.920636177063,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "20eafb56.ca5e14"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "20eafb56.ca5e14",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is required to be SOTN DeleteVPNNetworkInstance for svc-action=delete\" />\n",\r
+        "comments": "",\r
+        "x": 1020.9524002075195,\r
+        "y": 1152.0317735671997,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "773b0668.3dfda8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1168.9523086547852,\r
+        "y": 1079.9206190109253,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "30507c3b.465aa4",\r
+                "b4bebf6c.2b4fa",\r
+                "b3df3a7b.216bd8",\r
+                "eb92e3d.8a6ff2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d7c5bf00.510dc",\r
+        "type": "outcome",\r
+        "name": "activate",\r
+        "xml": "<outcome value='activate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 520.4285774230957,\r
+        "y": 560.7143135070801,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "aa89a015.4408d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aa89a015.4408d",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 703.2857437133789,\r
+        "y": 557.8571634292603,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "c1f6d379.b3eef",\r
+                "89075fc5.672ae"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c1f6d379.b3eef",\r
+        "type": "other",\r
+        "name": "ActivateSDWANVpnInstance",\r
+        "xml": "<outcome value='ActivateSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 956.5000228881836,\r
+        "y": 537.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "ce665d03.3901d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "89075fc5.672ae",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 886.5000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "c6e2911c.5f916"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c6e2911c.5f916",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is required to be SOTN ActivateVPNNetworkInstance for svc-action=activate\" />\n",\r
+        "comments": "",\r
+        "x": 1044.0000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ce665d03.3901d",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1187.5000228881836,\r
+        "y": 537.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b3df3a7b.216bd8",\r
+                "30507c3b.465aa4",\r
+                "b4bebf6c.2b4fa",\r
+                "57bd5824.2497c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c598159a.7423c8",\r
+        "type": "other",\r
+        "name": "DeactivateSDWANVpnInstance",\r
+        "xml": "<outcome value='DeactivateSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 942.9206390380859,\r
+        "y": 908.1429328918457,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "50af0272.e02a9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e01173d7.fe6b9",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 857.9206314086914,\r
+        "y": 977.1429405212402,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d14295e9.c68018"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d14295e9.c68018",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is required to be SOTN DeactivateVPNNetworkInstance for svc-action=deactivate\" />\n",\r
+        "comments": "",\r
+        "x": 1038.9206466674805,\r
+        "y": 978.1429405212402,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "aec7db3f.798358",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 679.7776947021484,\r
+        "y": 910.6188039779663,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "c598159a.7423c8",\r
+                "e01173d7.fe6b9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c7708172.24701",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 683.5554962158203,\r
+        "y": 1076.9523208141327,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "ee1459dc.d090c8",\r
+                "640b4312.a9c5ac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "50af0272.e02a9c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1202.888786315918,\r
+        "y": 910.9523277282715,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "30507c3b.465aa4",\r
+                "b4bebf6c.2b4fa",\r
+                "b3df3a7b.216bd8",\r
+                "c2db488a.b105a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "82048a2c.348118",\r
+        "type": "other",\r
+        "name": "CreateSDWANVpnInstance",\r
+        "xml": "<outcome value='CreateSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1172.499984741211,\r
+        "y": 276.6666679382324,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "7a0b5551.c75d9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a0b5551.c75d9c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1407.49995803833,\r
+        "y": 275.6666679382324,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3f52a78f.7ab728"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f52a78f.7ab728",\r
+        "type": "for",\r
+        "name": "for loop i - vpn vf input parameters",\r
+        "xml": "<for index=\"i\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1638.000015258789,\r
+        "y": 276.6666679382324,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d37b6b2c.71fb38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d37b6b2c.71fb38",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1846.5000228881836,\r
+        "y": 277.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "9ec108e6.32a3b8",\r
+                "a16aa1da.005f3",\r
+                "3a20c40b.dcc4cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9ec108e6.32a3b8",\r
+        "type": "set",\r
+        "name": "clear tmp-data",\r
+        "xml": "<set>\n<parameter name='tmp.name' value='' />\n<parameter name='tmp.value' value='' />\n",\r
+        "comments": "",\r
+        "x": 2029.5000228881836,\r
+        "y": 237.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a16aa1da.005f3",\r
+        "type": "set",\r
+        "name": "set tmp-data",\r
+        "xml": "<set>\n<parameter name='tmp.name' value=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].name`\"/>\n<parameter name='tmp.value' value=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].value`\"/>\n",\r
+        "comments": "",\r
+        "x": 2024.0000228881836,\r
+        "y": 277.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3a20c40b.dcc4cc",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$tmp.name`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2024.0000228881836,\r
+        "y": 317.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3280408b.66ab3",\r
+                "63ad3611.30c718",\r
+                "2eab978e.1492a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d22ab892.eef718",\r
+        "type": "switchNode",\r
+        "name": "switch value",\r
+        "xml": "<switch test=\"`$tmp.value`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2484.0001907348633,\r
+        "y": 269.66669142246246,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b07f67fa.6ab208"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2eab978e.1492a8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2243.500358581543,\r
+        "y": 335.66667902469635,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "5967794c.72e8b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5967794c.72e8b8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[' + $i + ']' + '.name is a required input'`\" />\n",\r
+        "comments": "",\r
+        "x": 2418.5003623962402,\r
+        "y": 334.66667902469635,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3280408b.66ab3",\r
+        "type": "other",\r
+        "name": "name",\r
+        "xml": "<outcome value='name'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2243.500358581543,\r
+        "y": 219.66667330265045,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d22ab892.eef718"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "63ad3611.30c718",\r
+        "type": "other",\r
+        "name": "topology",\r
+        "xml": "<outcome value='topology'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2255.500114440918,\r
+        "y": 273.333335518837,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d22ab892.eef718"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b07f67fa.6ab208",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2627.5001907348633,\r
+        "y": 269.66669142246246,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3ecabf5c.8d652"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3ecabf5c.8d652",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'vf-module-request-input.vf-module-input-parameters.param '+ $tmp.name +' is a required input'`\" />\n",\r
+        "comments": "",\r
+        "x": 2785.5001907348633,\r
+        "y": 269.66669142246246,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b3df3a7b.216bd8",\r
+        "type": "switchNode",\r
+        "name": "switch service-data.vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1479.3889541625977,\r
+        "y": 576.9999761581421,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "37913775.d258a8",\r
+                "8c9e338f.0d83c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "37913775.d258a8",\r
+        "type": "other",\r
+        "name": "outcome Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1748.0000228881836,\r
+        "y": 556.666711807251,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "7c4231f0.9cbb7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7c4231f0.9cbb7",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1924.0000228881836,\r
+        "y": 557.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8c9e338f.0d83c",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1726.5000228881836,\r
+        "y": 597.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b6f61e8c.9dd35"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6f61e8c.9dd35",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1887.5000228881836,\r
+        "y": 597.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "9317c153.6ccad",\r
+                "bdedbaa4.65e588"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9317c153.6ccad",\r
+        "type": "for",\r
+        "name": "for nidx..service-data.vf-modules.vf-module[]",\r
+        "xml": "<for index='nidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2150.0000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "1fade275.78b10e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1fade275.78b10e",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n    \n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2436.0000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "99a1d82a.9dd8c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "99a1d82a.9dd8c8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2606.5000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "39ae6a67.1c8296"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "70e3cfee.6e895",\r
+        "type": "set",\r
+        "name": "set tmp.nidx and ctx.network-data",\r
+        "xml": "<set>\n<parameter name='tmp.nidx' value='`$nidx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 3007.50008392334,\r
+        "y": 574.6667140722275,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1412cffb.8d463",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 2364.0000228881836,\r
+        "y": 617.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fbeeeb3e.43c3b8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2226.5000228881836,\r
+        "y": 617.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "1412cffb.8d463"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bdedbaa4.65e588",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.nidx ",\r
+        "xml": "<switch test=\"`$tmp.nidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2072.5000228881836,\r
+        "y": 617.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "fbeeeb3e.43c3b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "57bd5824.2497c8",\r
+        "type": "switchNode",\r
+        "name": "switch network-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1451.6667098999023,\r
+        "y": 656.5555486679077,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "719dd138.28ef4",\r
+                "2dca8a18.a65586"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "719dd138.28ef4",\r
+        "type": "outcome",\r
+        "name": "outcome Created",\r
+        "xml": "<outcome value='Created'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1748.5001258850098,\r
+        "y": 656.5555467605591,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "94e9cf1a.6c399"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2dca8a18.a65586",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1716.5001258850098,\r
+        "y": 696.5555467605591,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "2c8432e2.7a0b8e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2c8432e2.7a0b8e",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'vf-module is not in appropriate state for activate. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`\" />\n",\r
+        "comments": "",\r
+        "x": 1874.0001258850098,\r
+        "y": 696.5555467605591,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b4bebf6c.2b4fa",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1398.5000228881836,\r
+        "y": 517.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "9ad9b806.2c19b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9ad9b806.2c19b8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1626.5000228881836,\r
+        "y": 517.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b7b28733.f37c08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b7b28733.f37c08",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-request-input.network-input-parameters.name is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 1764.0000228881836,\r
+        "y": 517.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "30507c3b.465aa4",\r
+        "type": "execute",\r
+        "name": "execute requiredParameters",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\n<parameter name=\"vf-module-topology-operation-input.vf-module-information.vf-module-id\" value=\"$vf-module-topology-operation-input.vf-module-information.vf-module-id\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1433.0000228881836,\r
+        "y": 477.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c2db488a.b105a8",\r
+        "type": "switchNode",\r
+        "name": "switch network-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1479.8332748413086,\r
+        "y": 906.5555257797241,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "cf4b307b.b1b04",\r
+                "acc49742.fd0df8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cf4b307b.b1b04",\r
+        "type": "outcome",\r
+        "name": "outcome Active",\r
+        "xml": "<outcome value='Active'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1753.166648864746,\r
+        "y": 880.9999837875366,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "e31a54a2.3ff1f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "acc49742.fd0df8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1723.166648864746,\r
+        "y": 920.9999837875366,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "bc3125bf.c135a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc3125bf.c135a8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'vf-module is not in appropriate state for deactivate. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`\" />\n    ",\r
+        "comments": "",\r
+        "x": 1889.166648864746,\r
+        "y": 922.9999837875366,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "eb92e3d.8a6ff2",\r
+        "type": "switchNode",\r
+        "name": "switch network-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1468.7221908569336,\r
+        "y": 1077.6666097640991,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "4005e1e5.db606",\r
+                "3f0b16e4.30f1ca"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4005e1e5.db606",\r
+        "type": "outcome",\r
+        "name": "outcome PendingDelete",\r
+        "xml": "<outcome value='PendingDelete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1768.7222518920898,\r
+        "y": 1045.444405555725,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "e99f233c.ef676"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f0b16e4.30f1ca",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1712.055564880371,\r
+        "y": 1092.1110677719116,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "26e244b4.b2362c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "26e244b4.b2362c",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'vf-module is not in appropriate state for delete. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`\" />\n",\r
+        "comments": "",\r
+        "x": 1878.055564880371,\r
+        "y": 1094.1110677719116,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "94e9cf1a.6c399",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1940.5001029968262,\r
+        "y": 657.6666488647461,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e31a54a2.3ff1f8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1953.1665267944336,\r
+        "y": 879.1481161117554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e99f233c.ef676",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1984.277732849121,\r
+        "y": 1045.8147420883179,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "39ae6a67.1c8296",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2756.666534423828,\r
+        "y": 574.0000190734863,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "70e3cfee.6e895"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc20a4d8.66ea78",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 971.0065307617188,\r
+        "y": 121.24849605560303,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "ae64d058.26533"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ae64d058.26533",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1151.0065116882324,\r
+        "y": 120.24848556518555,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d4c5df8d.2e7e3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d4c5df8d.2e7e3",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf entry not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1300.4352378845215,\r
+        "y": 121.39140319824219,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "376a189c.5eea28",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 951.0379104614258,\r
+        "y": 183.51763439178467,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "891fced5.d7d06"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "891fced5.d7d06",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1189.0065269470215,\r
+        "y": 183.2484917640686,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "2828372d.9354b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2828372d.9354b8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1404.0065116882324,\r
+        "y": 181.24848556518555,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "56c573f0.8eef8c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "56c573f0.8eef8c",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1568.0065116882324,\r
+        "y": 176.24848556518555,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-device-param.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-device-param.json
new file mode 100644 (file)
index 0000000..8a96be9
--- /dev/null
@@ -0,0 +1,551 @@
+[\r
+    {\r
+        "id": "5f7afc20.704254",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 164.00390625,\r
+        "y": 81.99999871850014,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "d406ff84.ce98e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d406ff84.ce98e",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 309.00391006469727,\r
+        "y": 163.00001588463783,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "de9e8cab.e6f6e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "de9e8cab.e6f6e",\r
+        "type": "method",\r
+        "name": "sdwan-get-vf-module-device-param",\r
+        "xml": "<method rpc='sdwan-get-vf-module-device-param' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 297.0040283203125,\r
+        "y": 250.99999871850014,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "d35337b3.c33088"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d35337b3.c33088",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 304.00392150878906,\r
+        "y": 337.00005689263344,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "768c22f7.0cb24c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "768c22f7.0cb24c",\r
+        "type": "for",\r
+        "name": "for each sdwan-get-request-input-param",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 340.6706848144531,\r
+        "y": 419.66665330529213,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "e9dd53c5.9b95c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e9dd53c5.9b95c",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 598.9982223510742,\r
+        "y": 415.99431481957436,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "32b23dbd.651cc2",\r
+                "a532fa29.a02ba8",\r
+                "a0a56af7.f42cf8",\r
+                "9b473841.95e738",\r
+                "6e94beb9.da533",\r
+                "f818f130.64cf3",\r
+                "833242d8.e1a62",\r
+                "463a228c.d26a9c",\r
+                "e732bba8.4d48f8",\r
+                "88a6e509.9d3208",\r
+                "b49703f2.4b839"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "32b23dbd.651cc2",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 806.4988403320312,\r
+        "y": 707.9948875010014,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a0a56af7.f42cf8",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 834.4979286193848,\r
+        "y": 260.9942981302738,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "46f8e7aa.98fa98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46f8e7aa.98fa98",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 976.4979286193848,\r
+        "y": 261.9942981302738,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "f768ea22.72bf98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f768ea22.72bf98",\r
+        "type": "set",\r
+        "name": "set name",\r
+        "xml": "<set>\n<parameter name='prop.device.name' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1110.4979286193848,\r
+        "y": 262.59430423378944,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a532fa29.a02ba8",\r
+        "type": "switchNode",\r
+        "name": "switch esn",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'esn'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 827.3376741409302,\r
+        "y": 297.99423709511757,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "12a81e82.d1a6f1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "12a81e82.d1a6f1",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 971.3376741409302,\r
+        "y": 297.99423709511757,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "a977ec3e.312ec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a977ec3e.312ec",\r
+        "type": "set",\r
+        "name": "set esn",\r
+        "xml": "<set>\n<parameter name='prop.device.esn' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1091.6710481643677,\r
+        "y": 297.45541873574257,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9b473841.95e738",\r
+        "type": "switchNode",\r
+        "name": "switch type",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'type'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 815.3930940628052,\r
+        "y": 372.9571887552738,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "3ec28d96.e420a2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6e94beb9.da533",\r
+        "type": "switchNode",\r
+        "name": "switch systemIp",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'systemIp'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 815.3931522369385,\r
+        "y": 464.9572059214115,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "2adae6a4.285e7a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3ec28d96.e420a2",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 961.3930940628052,\r
+        "y": 372.9571887552738,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "45b1ca2c.89f074"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "45b1ca2c.89f074",\r
+        "type": "set",\r
+        "name": "set type",\r
+        "xml": "<set>\n<parameter name='prop.device.deviceModel' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1092.3930940628052,\r
+        "y": 372.55719485878944,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2adae6a4.285e7a",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 961.3931522369385,\r
+        "y": 461.9572059214115,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "a141079c.b2f848"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a141079c.b2f848",\r
+        "type": "set",\r
+        "name": "set systemIp",\r
+        "xml": "<set>\n<parameter name='prop.device.systemIP' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1104.3931522369385,\r
+        "y": 460.55721202492714,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c177b296.16b4e",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 971.3931522369385,\r
+        "y": 497.9572059214115,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "1718a85d.d8d638"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f818f130.64cf3",\r
+        "type": "switchNode",\r
+        "name": "switch description",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'description'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 817.3931522369385,\r
+        "y": 500.9572059214115,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "c177b296.16b4e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1718a85d.d8d638",\r
+        "type": "set",\r
+        "name": "set description",\r
+        "xml": "<set>\n<parameter name='prop.device.description' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1114.3931522369385,\r
+        "y": 496.55721202492714,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "833242d8.e1a62",\r
+        "type": "switchNode",\r
+        "name": "switch vendor",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'vendor'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 804.7264375686646,\r
+        "y": 547.9572402536869,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "633adfee.bdc3d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "633adfee.bdc3d",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 972.7263956069946,\r
+        "y": 544.9571811258793,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "630caf06.a577a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "630caf06.a577a",\r
+        "type": "set",\r
+        "name": "set vendor",\r
+        "xml": "<set>\n<parameter name='prop.device.vendor' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1115.7263956069946,\r
+        "y": 543.5571872293949,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "463a228c.d26a9c",\r
+        "type": "switchNode",\r
+        "name": "switch class",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'class'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 828.4978942871094,\r
+        "y": 334.99424281716347,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "b2250b2e.750348"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b2250b2e.750348",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 972.4978942871094,\r
+        "y": 334.99424281716347,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "810d94ea.a48138"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "810d94ea.a48138",\r
+        "type": "set",\r
+        "name": "set class",\r
+        "xml": "<set>\n<parameter name='prop.device.class' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1092.8312683105469,\r
+        "y": 334.45542445778847,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e732bba8.4d48f8",\r
+        "type": "switchNode",\r
+        "name": "switch version",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'version'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 826.4978942871094,\r
+        "y": 418.99424281716347,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "3d7ee8b7.466ab8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3d7ee8b7.466ab8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 972.4978942871094,\r
+        "y": 415.99424281716347,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "314ae7d6.dc68d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "314ae7d6.dc68d8",\r
+        "type": "set",\r
+        "name": "set version",\r
+        "xml": "<set>\n<parameter name='prop.device.version' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1115.4978942871094,\r
+        "y": 414.5942489206791,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "88a6e509.9d3208",\r
+        "type": "switchNode",\r
+        "name": "switch deviceId",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'deviceId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 818.4979629516602,\r
+        "y": 594.9942914545536,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "46303600.72a7ac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46303600.72a7ac",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 974.4980506896973,\r
+        "y": 590.9943362772465,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "ba71d8b.57ad228"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba71d8b.57ad228",\r
+        "type": "set",\r
+        "name": "set deviceId",\r
+        "xml": "<set>\n<parameter name='prop.device.deviceId' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1112.8317985534668,\r
+        "y": 579.4554721415043,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b49703f2.4b839",\r
+        "type": "switchNode",\r
+        "name": "switch sdncCreate",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'sdncCreate'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 813.497917175293,\r
+        "y": 640.9942537844181,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "7e203582.a2c85c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7e203582.a2c85c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 978.4979782104492,\r
+        "y": 637.9943148195744,\r
+        "z": "492d4750.cb7708",\r
+        "wires": [\r
+            [\r
+                "840a186.e7a4be8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "840a186.e7a4be8",\r
+        "type": "set",\r
+        "name": "set sdncCreate",\r
+        "xml": "<set>\n<parameter name='prop.device.sdncCreate' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1127.8317184448242,\r
+        "y": 636.4554354250431,\r
+        "z": "492d4750.cb7708",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-lanport-param.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-lanport-param.json
new file mode 100644 (file)
index 0000000..4bb3138
--- /dev/null
@@ -0,0 +1,507 @@
+[\r
+    {\r
+        "id": "3208e6b7.8cb61a",\r
+        "type": "for",\r
+        "name": "for each sdwan-get-request-input-param",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 327,\r
+        "y": 415.6666383743286,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "5e79a667.e36978"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bb96599.94117a8",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 159.3332290649414,\r
+        "y": 78,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "619534b0.e7c14c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "619534b0.e7c14c",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 304.3332328796387,\r
+        "y": 159.0000171661377,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "fa9cc521.66a538"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa9cc521.66a538",\r
+        "type": "method",\r
+        "name": "sdwan-get-vf-module-lanport-param",\r
+        "xml": "<method rpc='sdwan-get-vf-module-lanport-param' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 292.3333511352539,\r
+        "y": 247,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "9745a419.00eab8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9745a419.00eab8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 299.33324432373047,\r
+        "y": 333.0000581741333,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "3208e6b7.8cb61a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5e79a667.e36978",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 583.2326469421387,\r
+        "y": 418.0103905200958,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "c8ef8603.ded258",\r
+                "de743e37.2d6ef",\r
+                "74590dc6.2a74a4",\r
+                "24b13d58.52ec12",\r
+                "c43795e3.062a98",\r
+                "575ca25e.3b0f5c",\r
+                "e5fd35dc.3490a8",\r
+                "6a33fd1e.0f98c4",\r
+                "f22f3b86.1d2998",\r
+                "c6929deb.bb79b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c8ef8603.ded258",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 777.7332534790039,\r
+        "y": 708.0107636451721,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "74590dc6.2a74a4",\r
+        "type": "switchNode",\r
+        "name": "switch deviceName",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'deviceName'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 805.7326431274414,\r
+        "y": 345.01042914390564,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "beaed204.71603"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "beaed204.71603",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 980.7330360412598,\r
+        "y": 343.01051592826843,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "b55ea4ff.9cde28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b55ea4ff.9cde28",\r
+        "type": "set",\r
+        "name": "set deviceName",\r
+        "xml": "<set>\n<parameter name='prop.lan.deviceName' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1155.7331199645996,\r
+        "y": 344.61056327819824,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e5fd35dc.3490a8",\r
+        "type": "switchNode",\r
+        "name": "switch vlanId",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'vlanId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 783.5727691650391,\r
+        "y": 552.0104854106903,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "99b2d592.8926d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "99b2d592.8926d8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 976.5727577209473,\r
+        "y": 554.0105578899384,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "e0277d38.f11f6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e0277d38.f11f6",\r
+        "type": "set",\r
+        "name": "set vlanId",\r
+        "xml": "<set>\n<parameter name='prop.lan.vlanId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1122.9065856933594,\r
+        "y": 555.4718005657196,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "575ca25e.3b0f5c",\r
+        "type": "switchNode",\r
+        "name": "switch ipAddress",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'ipAddress'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 792.6279563903809,\r
+        "y": 510.3871638774872,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "e7a176a1.ce4358"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e7a176a1.ce4358",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 977.6280975341797,\r
+        "y": 510.38712096214294,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "d2f3c8c4.499528"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d2f3c8c4.499528",\r
+        "type": "set",\r
+        "name": "set ipAddress",\r
+        "xml": "<set>\n<parameter name='prop.lan.ipAddress' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1141.9619789123535,\r
+        "y": 511.8483989238739,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c43795e3.062a98",\r
+        "type": "switchNode",\r
+        "name": "switch portNumber",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portNumber'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 798.9610862731934,\r
+        "y": 469.00466132164,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "7eda0cd0.bddb34"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7eda0cd0.bddb34",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 980.9611854553223,\r
+        "y": 471.00467467308044,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "f1d0b896.8928d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f1d0b896.8928d8",\r
+        "type": "set",\r
+        "name": "set portNumber",\r
+        "xml": "<set>\n<parameter name='prop.lan.portNumber' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1150.961597442627,\r
+        "y": 469.60469126701355,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "24b13d58.52ec12",\r
+        "type": "switchNode",\r
+        "name": "switch portType",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portType'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 788.8561058044434,\r
+        "y": 426.9779860973358,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "945d6482.e4ba88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "945d6482.e4ba88",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 983.8561782836914,\r
+        "y": 427.9780204296112,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "51acc9c3.2fe3b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "51acc9c3.2fe3b8",\r
+        "type": "set",\r
+        "name": "set portType",\r
+        "xml": "<set>\n<parameter name='prop.lan.portType' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1141.8565788269043,\r
+        "y": 425.57802534103394,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "de743e37.2d6ef",\r
+        "type": "switchNode",\r
+        "name": "switch id",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'id'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 789.7319984436035,\r
+        "y": 296.3970763683319,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "5d9145a5.3659cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5d9145a5.3659cc",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 981.7319221496582,\r
+        "y": 296.3970830440521,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "e87eb6bc.61a328"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e87eb6bc.61a328",\r
+        "type": "set",\r
+        "name": "set id",\r
+        "xml": "<set>\n<parameter name='prop.lan.id' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1125.7321891784668,\r
+        "y": 295.99721121788025,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6a33fd1e.0f98c4",\r
+        "type": "switchNode",\r
+        "name": "switch portSwitch",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portSwitch'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 795.7324638366699,\r
+        "y": 388.0207631587982,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "f0a564e5.e03788"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f0a564e5.e03788",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 980.7323989868164,\r
+        "y": 386.02081274986267,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "607e93f6.70105c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "607e93f6.70105c",\r
+        "type": "set",\r
+        "name": "set portSwitch",\r
+        "xml": "<set>\n<parameter name='prop.lan.portSwitch' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1152.7327842712402,\r
+        "y": 386.6208064556122,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f22f3b86.1d2998",\r
+        "type": "switchNode",\r
+        "name": "switch devicePortId",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'devicePortId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 799.0000152587891,\r
+        "y": 596.0000171661377,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "e1bc8bda.eb9038"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e1bc8bda.eb9038",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 968.0000286102295,\r
+        "y": 596.0000991821289,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "d2ef0983.267148"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d2ef0983.267148",\r
+        "type": "set",\r
+        "name": "set devicePortId",\r
+        "xml": "<set>\n<parameter name='prop.lan.devicePortId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1126.3338165283203,\r
+        "y": 599.4613151550293,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c6929deb.bb79b",\r
+        "type": "switchNode",\r
+        "name": "switch lanPortId",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'lanPortId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 781,\r
+        "y": 652,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "3b76a25e.db01ce"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b76a25e.db01ce",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 973.9999885559082,\r
+        "y": 654.000072479248,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": [\r
+            [\r
+                "5afdfd4e.d87a04"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5afdfd4e.d87a04",\r
+        "type": "set",\r
+        "name": "set lanPortId",\r
+        "xml": "<set>\n<parameter name='prop.lan.lanPortId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1120.3338165283203,\r
+        "y": 655.4613151550293,\r
+        "z": "f5fe05ac.3dbcd8",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-site-param.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-site-param.json
new file mode 100644 (file)
index 0000000..4565c4d
--- /dev/null
@@ -0,0 +1,910 @@
+[\r
+    {\r
+        "id": "484180f6.294fb",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 121.00390625,\r
+        "y": 54.00390625,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "39a32e97.7d2bf2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "39a32e97.7d2bf2",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 299.00391006469727,\r
+        "y": 119.0039234161377,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "cdd33b78.958888"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cdd33b78.958888",\r
+        "type": "method",\r
+        "name": "sdwan-get-vf-module-site-param",\r
+        "xml": "<method rpc='sdwan-get-vf-module-site-param' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 287.0040283203125,\r
+        "y": 207.00390625,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "3b8b7ba0.ba9d74"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b8b7ba0.ba9d74",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 294.00392150878906,\r
+        "y": 293.0039644241333,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "cf281c73.11274"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cf281c73.11274",\r
+        "type": "for",\r
+        "name": "for each sdwan-get-request-input-param",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 330.6706848144531,\r
+        "y": 375.670560836792,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "f885ce18.55215"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f885ce18.55215",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 617.5042343139648,\r
+        "y": 293.00400829315186,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "4a5ce4fc.97fe0c",\r
+                "f4cc368c.35bde8",\r
+                "70d53de2.3d5724",\r
+                "b1d10119.2f141",\r
+                "6aa3af3.d91fd5",\r
+                "3a7c3a06.65f626",\r
+                "50debd23.9a1de4",\r
+                "4dc3fc8d.6fd204",\r
+                "b069280b.7f4bd8",\r
+                "5aa9fa90.43fe74",\r
+                "db390dd0.a9e2a",\r
+                "fd28eb0c.be3ba8",\r
+                "8406a399.f2e3e",\r
+                "b6ec51e3.02bd9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a5ce4fc.97fe0c",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 819.005012512207,\r
+        "y": 726.0046715736389,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f4cc368c.35bde8",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 837.0039443969727,\r
+        "y": 89.003981590271,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "34b7e315.1a243c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "34b7e315.1a243c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 979.0039443969727,\r
+        "y": 90.003981590271,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "b4b588e9.e7c4f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b4b588e9.e7c4f8",\r
+        "type": "set",\r
+        "name": "set name",\r
+        "xml": "<set>\n<parameter name='prop.site.name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1113.0039443969727,\r
+        "y": 90.60398769378662,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "70d53de2.3d5724",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 833.0040512084961,\r
+        "y": 180.00393962860107,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "bd7892f2.73131"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bd7892f2.73131",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1011.0040645599365,\r
+        "y": 183.00393962860107,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "a01e32db.c7d83"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a01e32db.c7d83",\r
+        "type": "set",\r
+        "name": "set name",\r
+        "xml": "<set>\n<parameter name='prop.site.name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1158.0040740966797,\r
+        "y": 182.60393524169922,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5aa9fa90.43fe74",\r
+        "type": "switchNode",\r
+        "name": "switch type",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'type'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 811.8997230529785,\r
+        "y": 477.9773893356323,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "1b07ddd4.378392"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "69d26327.61da0c",\r
+        "type": "set",\r
+        "name": "set type",\r
+        "xml": "<set>\n<parameter name='prop.site.type' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n<parameter name='prop.site.sdwan' value='true' />",\r
+        "comments": "",\r
+        "x": 1463.8997840881348,\r
+        "y": 531.5773239135742,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "db390dd0.a9e2a",\r
+        "type": "switchNode",\r
+        "name": "switch role",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'role'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 810.8994369506836,\r
+        "y": 585.9774322509766,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "e69860a9.0015d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e69860a9.0015d",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 980.8994445800781,\r
+        "y": 595.9773950576782,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "9cd4ca73.3ac2d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b1d10119.2f141",\r
+        "type": "switchNode",\r
+        "name": "switch location-name",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'location-name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 855.8992385864258,\r
+        "y": 221.9772481918335,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "8a7e81ba.e5188"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8a7e81ba.e5188",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1019.8994102478027,\r
+        "y": 221.9772491455078,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "f5bb619c.343e3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f5bb619c.343e3",\r
+        "type": "set",\r
+        "name": "set location-name",\r
+        "xml": "<set>\n<parameter name='prop.site.location-name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1181.8994216918945,\r
+        "y": 221.5773057937622,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6aa3af3.d91fd5",\r
+        "type": "switchNode",\r
+        "name": "switch address",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'address'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 838.8992385864258,\r
+        "y": 257.97725200653076,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "3614458a.d4ba8a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3614458a.d4ba8a",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1008.8990859985352,\r
+        "y": 265.97725105285645,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "8230e765.9acfa8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8230e765.9acfa8",\r
+        "type": "set",\r
+        "name": "set location-address",\r
+        "xml": "<set>\n<parameter name='prop.site.location-address' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1196.8992614746094,\r
+        "y": 261.57722663879395,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3a7c3a06.65f626",\r
+        "type": "switchNode",\r
+        "name": "switch postcode",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'postcode'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 839.8992385864258,\r
+        "y": 299.9772129058838,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "17049263.1424ae"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "17049263.1424ae",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1004.8994102478027,\r
+        "y": 298.9772129058838,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "6c71f682.a61eb8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6c71f682.a61eb8",\r
+        "type": "set",\r
+        "name": "set location-postcode",\r
+        "xml": "<set>\n<parameter name='prop.site.location-postcode' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1191.8992614746094,\r
+        "y": 300.5772294998169,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fd28eb0c.be3ba8",\r
+        "type": "switchNode",\r
+        "name": "switch controlPoint",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'controlPoint'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 829.7826614379883,\r
+        "y": 646.0042333602905,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "e84b540.ad3b8b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e84b540.ad3b8b",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 991.782585144043,\r
+        "y": 642.0042562484741,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "6a601537.4b319c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b2a19a82.68d928",\r
+        "type": "set",\r
+        "name": "set role",\r
+        "xml": "<set>\n<parameter name='prop.site.role' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n\n",\r
+        "comments": "",\r
+        "x": 1363.7827529907227,\r
+        "y": 570.0042057037354,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f2bf7a.aeab3088",\r
+        "type": "set",\r
+        "name": "set controlPoint",\r
+        "xml": "<set>\n<parameter name='prop.site.controlPoint' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n\n",\r
+        "comments": "",\r
+        "x": 1737.7825927734375,\r
+        "y": 689.0043344497681,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a54dec2e.97d4",\r
+        "type": "execute",\r
+        "name": "execute split roles",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$prop.site.role`'/>\n<parameter name=\"regex\" value=\",\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"prop.site.roles\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1391.448959350586,\r
+        "y": 619.0040884017944,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9cd4ca73.3ac2d8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1138.4490966796875,\r
+        "y": 599.0040884017944,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "b2a19a82.68d928",\r
+                "a54dec2e.97d4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba801506.77df48",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1555.4490089416504,\r
+        "y": 709.0040903091431,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "f2bf7a.aeab3088",\r
+                "7b2bb6bb.83c9d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7b2bb6bb.83c9d8",\r
+        "type": "execute",\r
+        "name": "execute split control points",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$prop.site.controlPoint`'/>\n<parameter name=\"regex\" value=\",\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"prop.site.controlpoints\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1762.4490699768066,\r
+        "y": 741.0041942596436,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "50debd23.9a1de4",\r
+        "type": "switchNode",\r
+        "name": "switch latitude",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'latitude'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 830.1155471801758,\r
+        "y": 344.00399017333984,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "58f650e6.ada6d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "58f650e6.ada6d",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1006.1153945922852,\r
+        "y": 339.00394916534424,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "536b62b7.33ab7c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "536b62b7.33ab7c",\r
+        "type": "set",\r
+        "name": "set location-latitude",\r
+        "xml": "<set>\n<parameter name='prop.site.location-latitude' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1180.1154022216797,\r
+        "y": 337.60396575927734,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4dc3fc8d.6fd204",\r
+        "type": "switchNode",\r
+        "name": "switch longitude",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'longitude'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 833.1155471801758,\r
+        "y": 384.0040330886841,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "f395b1da.86ab9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f395b1da.86ab9",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1005.1155548095703,\r
+        "y": 379.004075050354,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "7695df92.1105c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7695df92.1105c",\r
+        "type": "set",\r
+        "name": "set location-longitude",\r
+        "xml": "<set>\n<parameter name='prop.site.location-longitude' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1187.1154098510742,\r
+        "y": 382.60392665863037,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "650d8fc0.b6389",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 996.1155548095703,\r
+        "y": 429.00407791137695,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "8334f7f2.2699d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d0f32787.0608d8",\r
+        "type": "set",\r
+        "name": "set emails",\r
+        "xml": "<set>\n<parameter name='prop.site.emails' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1354.115249633789,\r
+        "y": 397.6039299964905,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b069280b.7f4bd8",\r
+        "type": "switchNode",\r
+        "name": "switch emails",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'emails'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 823.1156234741211,\r
+        "y": 429.00407791137695,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "650d8fc0.b6389"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cb890556.5aec68",\r
+        "type": "execute",\r
+        "name": "execute split emails",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$prop.site.emails`'/>\n<parameter name=\"regex\" value=\",\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"prop.site.email\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1379.781593322754,\r
+        "y": 444.00383281707764,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "8334f7f2.2699d8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1158.1155624389648,\r
+        "y": 430.0039954185486,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "d0f32787.0608d8",\r
+                "cb890556.5aec68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8406a399.f2e3e",\r
+        "type": "switchNode",\r
+        "name": "switch description",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'description'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 836.0039291381836,\r
+        "y": 133.0039103301242,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "df39a5b0.38ab18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "df39a5b0.38ab18",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 980.00390625,\r
+        "y": 135.00390625,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "77e9385a.343e78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "77e9385a.343e78",\r
+        "type": "set",\r
+        "name": "set description",\r
+        "xml": "<set>\n<parameter name='prop.site.description' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1126.0039825439453,\r
+        "y": 135.60393619537354,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bbcae826.787888",\r
+        "type": "other",\r
+        "name": "outcome Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1353.00394821167,\r
+        "y": 483.00396156311035,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "b7d9fe5a.8e045"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4964090b.461a88",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1336.5042762756348,\r
+        "y": 531.0039215087891,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "69d26327.61da0c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1b07ddd4.378392",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 949.8996047973633,\r
+        "y": 477.97730827331543,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "dc18071d.1bddd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dc18071d.1bddd8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1066.0039367675781,\r
+        "y": 480.00392055511475,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "46e35b04.b2e184"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46e35b04.b2e184",\r
+        "type": "switchNode",\r
+        "name": "switch value",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1196.0039405822754,\r
+        "y": 512.0039196014404,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "bbcae826.787888",\r
+                "4964090b.461a88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b7d9fe5a.8e045",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1492.0039520263672,\r
+        "y": 483.00391960144043,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6a601537.4b319c",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1129.00390625,\r
+        "y": 655.00390625,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "f5a10a50.3b7ee8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f5a10a50.3b7ee8",\r
+        "type": "switchNode",\r
+        "name": "switch value",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1259.0039100646973,\r
+        "y": 687.0039052963257,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "9d775805.ce9a18",\r
+                "603a4c12.7819c4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9d775805.ce9a18",\r
+        "type": "other",\r
+        "name": "outcome Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1416.0039176940918,\r
+        "y": 658.0039472579956,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "73c6eb1d.a33c74"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "603a4c12.7819c4",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1399.5042457580566,\r
+        "y": 706.0039072036743,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            [\r
+                "ba801506.77df48"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "73c6eb1d.a33c74",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1555.003921508789,\r
+        "y": 658.0039052963257,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6ec51e3.02bd9",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic2.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"'vf-module-site-params'\"/>\n<parameter name=\"field3\" value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\n\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 824.0000228881836,\r
+        "y": 33,\r
+        "z": "3ab9f09a.78056",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
index dbd911b..30ccba9 100644 (file)
-[
-  {
-    "id": "439a8dde.a54294",
-    "type": "dgstart",
-    "name": "DGSTART",
-    "outputs": 1,
-    "x": 95,
-    "y": 67,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "885d7f3c.d7635"
-      ]
-    ]
-  },
-  {
-    "id": "885d7f3c.d7635",
-    "type": "service-logic",
-    "name": "GENERIC-RESOURCE-API ${project.version}",
-    "module": "GENERIC-RESOURCE-API",
-    "version": "${project.version}",
-    "comments": "",
-    "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
-    "outputs": 1,
-    "x": 307.00000381469727,
-    "y": 139.0000171661377,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "715e2390.5052fc"
-      ]
-    ]
-  },
-  {
-    "id": "715e2390.5052fc",
-    "type": "method",
-    "name": "sdwan-get-wan-param",
-    "xml": "<method rpc='sdwan-get-wan-param' mode='sync'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 295.0001220703125,
-    "y": 227,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "9d4aea5e.ef6f48"
-      ]
-    ]
-  },
-  {
-    "id": "9d4aea5e.ef6f48",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">\n",
-    "atomic": "false",
-    "comments": "",
-    "outputs": 1,
-    "x": 302.00001525878906,
-    "y": 313.0000581741333,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "6b944277.796b7c"
-      ]
-    ]
-  },
-  {
-    "id": "6b944277.796b7c",
-    "type": "for",
-    "name": "for each sdwan-get-request-input-param",
-    "xml": "<for index='idx' start='0' end='`$vnf-request-input.vnf-input-parameters.param_length`' >\n\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 338.6667785644531,
-    "y": 395.666654586792,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "37470750.b03bb8"
-      ]
-    ]
-  },
-  {
-    "id": "37470750.b03bb8",
-    "type": "block",
-    "name": "block",
-    "xml": "<block>\n",
-    "atomic": "false",
-    "comments": "",
-    "outputs": 1,
-    "x": 603.5002822875977,
-    "y": 305.00004625320435,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "7ac07f9d.deb5a",
-        "f51dc11b.c63d",
-        "390047c.48de9b8",
-        "19863ae8.c2ed05",
-        "a84af135.691bc",
-        "40a2ce76.5acb8",
-        "743ccae1.1d4ed4",
-        "da2a6768.0f1b08",
-        "937e7e7c.abe2b",
-        "d7a63229.55ffb",
-        "52f8113f.08404",
-        "dd33b364.8ca5b",
-        "edbcab35.7a44e8",
-        "d34e678f.eeed98",
-        "54c67966.b6a9c8"
-      ]
-    ]
-  },
-  {
-    "id": "7ac07f9d.deb5a",
-    "type": "returnSuccess",
-    "name": "return success",
-    "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
-    "comments": "",
-    "x": 837.0006408691406,
-    "y": 671.0003890991211,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "a84af135.691bc",
-    "type": "switchNode",
-    "name": "switch deviceName",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'deviceName'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 836.0000877380371,
-    "y": 220.00005626678467,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "e491e463.e045e8"
-      ]
-    ]
-  },
-  {
-    "id": "e491e463.e045e8",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1038.000494003296,
-    "y": 221.00012683868408,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "946002ca.03b1f"
-      ]
-    ]
-  },
-  {
-    "id": "946002ca.03b1f",
-    "type": "set",
-    "name": "set deviceName",
-    "xml": "<set>\n<parameter name='prop.wan.deviceName' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1190.0005569458008,
-    "y": 218.60021209716797,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "d7a63229.55ffb",
-    "type": "switchNode",
-    "name": "switch vlanId",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'vlanId'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 828.8402290344238,
-    "y": 406.00011920928955,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "d3962f14.7c3b3"
-      ]
-    ]
-  },
-  {
-    "id": "d3962f14.7c3b3",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1013.8403167724609,
-    "y": 404.0001497268677,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "1b718234.ee52ce"
-      ]
-    ]
-  },
-  {
-    "id": "1b718234.ee52ce",
-    "type": "set",
-    "name": "set vlanId",
-    "xml": "<set>\n<parameter name='prop.wan.vlanId' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1161.1742248535156,
-    "y": 401.4614086151123,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "390047c.48de9b8",
-    "type": "switchNode",
-    "name": "switch name",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'name'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 833.8951606750488,
-    "y": 149.97332763671875,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "eba68f46.eff61"
-      ]
-    ]
-  },
-  {
-    "id": "eba68f46.eff61",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1021.8952484130859,
-    "y": 150.97335720062256,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "7dfe338e.aacb9c"
-      ]
-    ]
-  },
-  {
-    "id": "7dfe338e.aacb9c",
-    "type": "set",
-    "name": "set name",
-    "xml": "<set>\n<parameter name='prop.wan.name' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1171.8954982757568,
-    "y": 145.57343292236328,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "da2a6768.0f1b08",
-    "type": "switchNode",
-    "name": "switch ipAddress",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'ipAddress'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 832.8954048156738,
-    "y": 332.37682247161865,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "d6f71f04.c7866"
-      ]
-    ]
-  },
-  {
-    "id": "d6f71f04.c7866",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1026.895652770996,
-    "y": 333.37677097320557,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "65be0cd2.03f094"
-      ]
-    ]
-  },
-  {
-    "id": "65be0cd2.03f094",
-    "type": "set",
-    "name": "set ipAddress",
-    "xml": "<set>\n<parameter name='prop.wan.ipAddress' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1179.2295608520508,
-    "y": 331.8380317687988,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "937e7e7c.abe2b",
-    "type": "switchNode",
-    "name": "switch providerIpAddress",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'providerIpAddress'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 864.895565032959,
-    "y": 367.3767442703247,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "d6c02774.fd7328"
-      ]
-    ]
-  },
-  {
-    "id": "d6c02774.fd7328",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1040.8958168029785,
-    "y": 367.3766899108887,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "86d16286.a90f7"
-      ]
-    ]
-  },
-  {
-    "id": "86d16286.a90f7",
-    "type": "set",
-    "name": "set providerIpAddress",
-    "xml": "<set>\n<parameter name='prop.wan.providerIpAddress' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1207.2294006347656,
-    "y": 367.8378715515137,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "dd33b364.8ca5b",
-    "type": "switchNode",
-    "name": "switch inputBandwidth",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'inputBandwidth'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 855.8953742980957,
-    "y": 479.3765506744385,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "8c8b118b.1a16e"
-      ]
-    ]
-  },
-  {
-    "id": "8c8b118b.1a16e",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1032.8955726623535,
-    "y": 478.376615524292,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "52559144.3d725"
-      ]
-    ]
-  },
-  {
-    "id": "52559144.3d725",
-    "type": "set",
-    "name": "set inputBandwidth",
-    "xml": "<set>\n<parameter name='prop.wan.inputBandwidth' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1240.2293224334717,
-    "y": 472.8377799987793,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "edbcab35.7a44e8",
-    "type": "switchNode",
-    "name": "switch outputBandwidth",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'outputBandwidth'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 861.8953742980957,
-    "y": 518.3765506744385,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "9785a401.84f478"
-      ]
-    ]
-  },
-  {
-    "id": "9785a401.84f478",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1045.8955707550049,
-    "y": 518.3766593933105,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "29877f00.328f52"
-      ]
-    ]
-  },
-  {
-    "id": "29877f00.328f52",
-    "type": "set",
-    "name": "set outputBandwidth",
-    "xml": "<set>\n<parameter name='prop.wan.outputBandwidth' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1242.2293453216553,
-    "y": 511.8377628326416,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "19863ae8.c2ed05",
-    "type": "switchNode",
-    "name": "switch description",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'description'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 840.8953132629395,
-    "y": 183.3767032623291,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "c907441.ebe9bb8"
-      ]
-    ]
-  },
-  {
-    "id": "c907441.ebe9bb8",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1032.8955574035645,
-    "y": 184.3767328262329,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "1126e041.4a24d"
-      ]
-    ]
-  },
-  {
-    "id": "1126e041.4a24d",
-    "type": "set",
-    "name": "set description",
-    "xml": "<set>\n<parameter name='prop.wan.description' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1183.2295608520508,
-    "y": 183.8379421234131,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "743ccae1.1d4ed4",
-    "type": "switchNode",
-    "name": "switch portNumber",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'portNumber'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 844.228572845459,
-    "y": 291.9943332672119,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "ebcd50b1.0b3d6"
-      ]
-    ]
-  },
-  {
-    "id": "ebcd50b1.0b3d6",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1035.228744506836,
-    "y": 294.9943628311157,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "a1a449ce.d26a18"
-      ]
-    ]
-  },
-  {
-    "id": "a1a449ce.d26a18",
-    "type": "set",
-    "name": "set portNumber",
-    "xml": "<set>\n<parameter name='prop.wan.portNumber' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1189.2290725708008,
-    "y": 294.5943775177002,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "40a2ce76.5acb8",
-    "type": "switchNode",
-    "name": "switch portType",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'portType'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 834.1236763000488,
-    "y": 255.96763801574707,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "6ea5c966.7c8868"
-      ]
-    ]
-  },
-  {
-    "id": "6ea5c966.7c8868",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1029.123764038086,
-    "y": 255.96766757965088,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "f40a6475.4548d8"
-      ]
-    ]
-  },
-  {
-    "id": "f40a6475.4548d8",
-    "type": "set",
-    "name": "set portType",
-    "xml": "<set>\n<parameter name='prop.wan.portType' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1176.1240921020508,
-    "y": 256.56768226623535,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "90cd2791.ea5778",
-    "type": "set",
-    "name": "set transportnetworkName",
-    "xml": "<set>\n<parameter name='prop.wan.transportNetworkName' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1288.9998302459717,
-    "y": 437.38701152801514,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "c9247859.1c5528",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1077.6659240722656,
-    "y": 438.92592906951904,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "90cd2791.ea5778"
-      ]
-    ]
-  },
-  {
-    "id": "52f8113f.08404",
-    "type": "switchNode",
-    "name": "switch transportnetworkName",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'transportNetworkName'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 878.6657485961914,
-    "y": 442.9256591796875,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "c9247859.1c5528"
-      ]
-    ]
-  },
-  {
-    "id": "f51dc11b.c63d",
-    "type": "switchNode",
-    "name": "switch id",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'id'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 825.999340057373,
-    "y": 117.38670539855957,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "ebf6555a.abbb88"
-      ]
-    ]
-  },
-  {
-    "id": "ebf6555a.abbb88",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1026.9994812011719,
-    "y": 115.3867359161377,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "1a802dda.2caca2"
-      ]
-    ]
-  },
-  {
-    "id": "1a802dda.2caca2",
-    "type": "set",
-    "name": "set id",
-    "xml": "<set>\n<parameter name='prop.wan.id' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1168.999828338623,
-    "y": 110.98684310913086,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "d34e678f.eeed98",
-    "type": "switchNode",
-    "name": "switch devicePortId",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'devicePortId'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 847.0000610351562,
-    "y": 563.0000381469727,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "67b4d68f.872058"
-      ]
-    ]
-  },
-  {
-    "id": "67b4d68f.872058",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1046.0002269744873,
-    "y": 557.000114440918,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "8e605ff5.22a2d"
-      ]
-    ]
-  },
-  {
-    "id": "8e605ff5.22a2d",
-    "type": "set",
-    "name": "set devicePortId",
-    "xml": "<set>\n<parameter name='prop.wan.devicePortId' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1245.3339710235596,
-    "y": 556.4612121582031,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  },
-  {
-    "id": "54c67966.b6a9c8",
-    "type": "switchNode",
-    "name": "switch wanPortId",
-    "xml": "<switch test=\"`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'wanPortId'`\">\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 837.0000610351562,
-    "y": 599.0000400543213,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "cda45636.504778"
-      ]
-    ]
-  },
-  {
-    "id": "cda45636.504778",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1048.0002250671387,
-    "y": 592.0001173019409,
-    "z": "1a0d2992.253ae6",
-    "wires": [
-      [
-        "651ea7f2.7fd2a8"
-      ]
-    ]
-  },
-  {
-    "id": "651ea7f2.7fd2a8",
-    "type": "set",
-    "name": "set wanPortId",
-    "xml": "<set>\n<parameter name='prop.wan.wanPortId' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\n",
-    "comments": "",
-    "x": 1245.3339710235596,
-    "y": 596.4612121582031,
-    "z": "1a0d2992.253ae6",
-    "wires": []
-  }
-]
+[\r
+    {\r
+        "id": "818160d.1a87aa",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 116.01041412353516,\r
+        "y": 49.010414123535156,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "2c87f750.9ff0e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2c87f750.9ff0e8",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 253.01041793823242,\r
+        "y": 154.0104274749756,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "ff163fb7.14832"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ff163fb7.14832",\r
+        "type": "method",\r
+        "name": "sdwan-get-wan-param",\r
+        "xml": "<method rpc='sdwan-get-wan-param' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 241.01053619384766,\r
+        "y": 242.0104103088379,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "352c95ce.453cea"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "352c95ce.453cea",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 248.01042938232422,\r
+        "y": 328.0104684829712,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "52293f30.d5b77"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "52293f30.d5b77",\r
+        "type": "for",\r
+        "name": "for each sdwan-get-request-input-param",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 284.6771926879883,\r
+        "y": 410.6770648956299,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "e8d20d4.02e64f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e8d20d4.02e64f",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 549.5106964111328,\r
+        "y": 320.01045656204224,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "2847b0ea.9ebb",\r
+                "d4feaef6.6438f",\r
+                "3e47338e.c3ab3c",\r
+                "91d20588.adacd8",\r
+                "43f318cb.2f4418",\r
+                "49351eca.09882",\r
+                "a41eaf2.439f75",\r
+                "9005e8e9.34f768",\r
+                "a55d2183.cf6a",\r
+                "c8c85e46.4f10f",\r
+                "286e48cc.e48988",\r
+                "383fea5a.143066",\r
+                "18a75045.9bb5e",\r
+                "60fcaabc.ca5bf4",\r
+                "d17b4c90.52ccd",\r
+                "2a13a6a0.eb644a",\r
+                "19ce9dfd.f8a2f2",\r
+                "a399cdca.37b7a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2847b0ea.9ebb",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 781.0111198425293,\r
+        "y": 804.0109233856201,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "43f318cb.2f4418",\r
+        "type": "switchNode",\r
+        "name": "switch deviceName",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'deviceName'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 782.0105018615723,\r
+        "y": 235.01046657562256,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "510fde76.25775"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "510fde76.25775",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 984.010908126831,\r
+        "y": 236.01053714752197,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "bacc1950.a6e0e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bacc1950.a6e0e8",\r
+        "type": "set",\r
+        "name": "set deviceName",\r
+        "xml": "<set>\n<parameter name='prop.wan.deviceName' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1148.0111656188965,\r
+        "y": 232.6106538772583,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c8c85e46.4f10f",\r
+        "type": "switchNode",\r
+        "name": "switch vlanId",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'vlanId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 763.8506278991699,\r
+        "y": 465.01052474975586,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "5ea3c659.f0cd28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5ea3c659.f0cd28",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 948.850715637207,\r
+        "y": 463.010555267334,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "a7e47063.77624"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a7e47063.77624",\r
+        "type": "set",\r
+        "name": "set vlanId",\r
+        "xml": "<set>\n<parameter name='prop.wan.vlanId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1096.1846237182617,\r
+        "y": 460.4718141555786,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3e47338e.c3ab3c",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 779.905574798584,\r
+        "y": 164.98373794555664,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "69feffe1.51e2a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "69feffe1.51e2a",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 967.9056625366211,\r
+        "y": 165.98376750946045,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "8d991bb4.b45f18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8d991bb4.b45f18",\r
+        "type": "set",\r
+        "name": "set name",\r
+        "xml": "<set>\n<parameter name='prop.wan.name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1117.905912399292,\r
+        "y": 160.58384323120117,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9005e8e9.34f768",\r
+        "type": "switchNode",\r
+        "name": "switch ipAddress",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'ipAddress'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 767.9058036804199,\r
+        "y": 391.38722801208496,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "cf4b6fa5.dfd8b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cf4b6fa5.dfd8b",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 961.9060516357422,\r
+        "y": 392.3871765136719,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "abac1fea.19c24"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "abac1fea.19c24",\r
+        "type": "set",\r
+        "name": "set ipAddress",\r
+        "xml": "<set>\n<parameter name='prop.wan.ipAddress' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1114.2399597167969,\r
+        "y": 390.84843730926514,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a55d2183.cf6a",\r
+        "type": "switchNode",\r
+        "name": "switch providerIpAddress",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'providerIpAddress'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 799.9059638977051,\r
+        "y": 426.387149810791,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "b70a8774.407208"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b70a8774.407208",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 975.9062156677246,\r
+        "y": 426.387095451355,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "a3935f63.e64dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a3935f63.e64dc",\r
+        "type": "set",\r
+        "name": "set providerIpAddress",\r
+        "xml": "<set>\n<parameter name='prop.wan.providerIpAddress' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1142.2397994995117,\r
+        "y": 426.84827709198,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "383fea5a.143066",\r
+        "type": "switchNode",\r
+        "name": "switch inputBandwidth",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'inputBandwidth'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 790.9057731628418,\r
+        "y": 538.3869562149048,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "45b075bc.f36a3c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "45b075bc.f36a3c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 967.9059715270996,\r
+        "y": 537.3870210647583,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "7f4d1606.062148"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7f4d1606.062148",\r
+        "type": "set",\r
+        "name": "set inputBandwidth",\r
+        "xml": "<set>\n<parameter name='prop.wan.inputBandwidth' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1175.2397212982178,\r
+        "y": 531.8481855392456,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "18a75045.9bb5e",\r
+        "type": "switchNode",\r
+        "name": "switch outputBandwidth",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'outputBandwidth'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 796.9057731628418,\r
+        "y": 577.3869562149048,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "2be3aa98.e7daa6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2be3aa98.e7daa6",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 980.905969619751,\r
+        "y": 577.3870649337769,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "7e2e3a9b.578594"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7e2e3a9b.578594",\r
+        "type": "set",\r
+        "name": "set outputBandwidth",\r
+        "xml": "<set>\n<parameter name='prop.wan.outputBandwidth' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1177.2397441864014,\r
+        "y": 570.8481683731079,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "91d20588.adacd8",\r
+        "type": "switchNode",\r
+        "name": "switch description",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name  == 'description'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 786.9057273864746,\r
+        "y": 198.387113571167,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "8acddcca.d85a2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8acddcca.d85a2",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 978.9059715270996,\r
+        "y": 199.3871431350708,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "f82affc6.722b5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f82affc6.722b5",\r
+        "type": "set",\r
+        "name": "set description",\r
+        "xml": "<set>\n<parameter name='prop.wan.description' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1129.239974975586,\r
+        "y": 198.84835243225098,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a41eaf2.439f75",\r
+        "type": "switchNode",\r
+        "name": "switch portNumber",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portNumber'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 779.2389717102051,\r
+        "y": 351.0047388076782,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "9190cac8.65bcb8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9190cac8.65bcb8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 970.239143371582,\r
+        "y": 354.00476837158203,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "bc0c9c4f.ffd6c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc0c9c4f.ffd6c",\r
+        "type": "set",\r
+        "name": "set portNumber",\r
+        "xml": "<set>\n<parameter name='prop.wan.portNumber' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1124.2394714355469,\r
+        "y": 353.6047830581665,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "49351eca.09882",\r
+        "type": "switchNode",\r
+        "name": "switch portType",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portType'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 780.134090423584,\r
+        "y": 270.97804832458496,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "9c7436d2.ff2978"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c7436d2.ff2978",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 975.1341781616211,\r
+        "y": 270.97807788848877,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "45817322.3ae1fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "45817322.3ae1fc",\r
+        "type": "set",\r
+        "name": "set portType",\r
+        "xml": "<set>\n<parameter name='prop.wan.portType' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1122.134506225586,\r
+        "y": 271.57809257507324,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c9e43e20.584a3",\r
+        "type": "set",\r
+        "name": "set transportnetworkName",\r
+        "xml": "<set>\n<parameter name='prop.wan.transportNetworkName' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1224.0102291107178,\r
+        "y": 496.39741706848145,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "878c2a18.4ab5f8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1012.6763229370117,\r
+        "y": 497.93633460998535,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "c9e43e20.584a3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "286e48cc.e48988",\r
+        "type": "switchNode",\r
+        "name": "switch transportnetworkName",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'transportNetworkName'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 813.6761474609375,\r
+        "y": 501.9360647201538,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "878c2a18.4ab5f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d4feaef6.6438f",\r
+        "type": "switchNode",\r
+        "name": "switch id",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name  == 'id'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 772.0097541809082,\r
+        "y": 132.39711570739746,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "c4e97c71.2edee"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c4e97c71.2edee",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 973.009895324707,\r
+        "y": 130.3971462249756,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "fa0065d4.357e68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa0065d4.357e68",\r
+        "type": "set",\r
+        "name": "set id",\r
+        "xml": "<set>\n<parameter name='prop.wan.id' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1115.0102424621582,\r
+        "y": 125.99725341796875,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "60fcaabc.ca5bf4",\r
+        "type": "switchNode",\r
+        "name": "switch devicePortId",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'devicePortId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 782.0104598999023,\r
+        "y": 622.010443687439,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "642147fe.576a98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "642147fe.576a98",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 981.0106258392334,\r
+        "y": 616.0105199813843,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "fd4863f3.2dd12"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fd4863f3.2dd12",\r
+        "type": "set",\r
+        "name": "set devicePortId",\r
+        "xml": "<set>\n<parameter name='prop.wan.devicePortId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1180.3443698883057,\r
+        "y": 615.4716176986694,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d17b4c90.52ccd",\r
+        "type": "switchNode",\r
+        "name": "switch wanPortId",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'wanPortId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 772.0104598999023,\r
+        "y": 658.0104455947876,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "f3f82bbf.a22db8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f3f82bbf.a22db8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 983.0106239318848,\r
+        "y": 651.0105228424072,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "9cec917d.42e1c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9cec917d.42e1c",\r
+        "type": "set",\r
+        "name": "set wanPortId",\r
+        "xml": "<set>\n<parameter name='prop.wan.wanPortId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1180.3443698883057,\r
+        "y": 655.4716176986694,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e6f5b113.db834",\r
+        "type": "set",\r
+        "name": "set apn",\r
+        "xml": "<set>\n<parameter name='prop.wan.apn-name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1121.0000076293945,\r
+        "y": 310.01041412353516,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2a13a6a0.eb644a",\r
+        "type": "switchNode",\r
+        "name": "switch apn",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'apn'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 770.0000076293945,\r
+        "y": 309.01041412353516,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "cd547003.96af2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cd547003.96af2",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 965.0000953674316,\r
+        "y": 309.01044368743896,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "e6f5b113.db834"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "19ce9dfd.f8a2f2",\r
+        "type": "switchNode",\r
+        "name": "switch publicIP",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'publicIP'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 768.0000305175781,\r
+        "y": 701.0104351043701,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "fadc805c.91335"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fadc805c.91335",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 977.0002021789551,\r
+        "y": 696.010516166687,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "bda8c6bd.b7ac88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bda8c6bd.b7ac88",\r
+        "type": "set",\r
+        "name": "set publicIP",\r
+        "xml": "<set>\n<parameter name='prop.wan.publicIP' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1182.3338661193848,\r
+        "y": 694.4716167449951,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a399cdca.37b7a",\r
+        "type": "switchNode",\r
+        "name": "switch IPMode",\r
+        "xml": "<switch test=\"`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'IPMode'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 778.0000305175781,\r
+        "y": 742.0104360580444,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "728b6eda.0249c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "728b6eda.0249c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 977.0002822875977,\r
+        "y": 741.0105991363525,\r
+        "z": "83799888.3d8488",\r
+        "wires": [\r
+            [\r
+                "43404525.61dcfc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "43404525.61dcfc",\r
+        "type": "set",\r
+        "name": "set IPMode",\r
+        "xml": "<set>\n<parameter name='prop.wan.IPMode' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />",\r
+        "comments": "",\r
+        "x": 1188.3339176177979,\r
+        "y": 739.471586227417,\r
+        "z": "83799888.3d8488",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-activate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-activate.json
new file mode 100644 (file)
index 0000000..d02748c
--- /dev/null
@@ -0,0 +1,1123 @@
+[\r
+    {\r
+        "id": "66d617ca.7974e8",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 166.00390625,\r
+        "y": 42.000000953674316,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "ec960184.8c747"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ec960184.8c747",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 245.28961181640625,\r
+        "y": 104.23811054229736,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "b566667e.9703e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b566667e.9703e8",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-device-activate",\r
+        "xml": "<method rpc='sdwan-vf-operation-device-activate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 257.00390625,\r
+        "y": 198.58634281158447,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "48de3c23.140fd4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "48de3c23.140fd4",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 243.6705780029297,\r
+        "y": 383.6667146682739,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "9b8b15e3.9d27d8",\r
+                "22c945bf.bff90a",\r
+                "7a7ac9c1.d1c088",\r
+                "3bb5998d.d31786",\r
+                "6b9873c1.ed3cac",\r
+                "496cf1c2.09334",\r
+                "ab75124f.85f25",\r
+                "b9df134a.f3234",\r
+                "ad243b23.84cc68",\r
+                "d63a100a.4fb85",\r
+                "fba80bcb.537e38",\r
+                "45830f23.d0369",\r
+                "d2ac70a8.01bbc",\r
+                "104a605b.c517a",\r
+                "2b5c22d1.d99c1e",\r
+                "673290e1.c0902",\r
+                "4d09bded.34c944",\r
+                "d9f0bb67.a6d688"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "22c945bf.bff90a",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 589.035270690918,\r
+        "y": 278.2691421508789,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "936d4e00.f8f0f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9b8b15e3.9d27d8",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 594.0039253234863,\r
+        "y": 217.0000114440918,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "e59760b9.c5416"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e59760b9.c5416",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 774.00390625,\r
+        "y": 216.00000095367432,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "76bc4811.c948a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "76bc4811.c948a8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 923.4326324462891,\r
+        "y": 217.14291858673096,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "936d4e00.f8f0f",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 812.0039215087891,\r
+        "y": 279.0000071525574,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "70d6072a.9e11d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "70d6072a.9e11d8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1027.00390625,\r
+        "y": 277.0000009536743,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "ea0a9e13.79435"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ea0a9e13.79435",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1191.00390625,\r
+        "y": 272.0000009536743,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7a7ac9c1.d1c088",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 639.0039138793945,\r
+        "y": 349.99999141693115,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "f88f2a92.99e738",\r
+                "cbbc80b7.cd82",\r
+                "d281c228.3bb21"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cbbc80b7.cd82",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 861.00390625,\r
+        "y": 384.0000009536743,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "3e09921b.36399e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f88f2a92.99e738",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 866.0039024353027,\r
+        "y": 331,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "3e09921b.36399e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3e09921b.36399e",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1024.00390625,\r
+        "y": 344.0000009536743,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d281c228.3bb21",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 861.00390625,\r
+        "y": 445.0000009536743,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "8e3c57a1.dadbf8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8c0936c1.7617c8",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1215.003921508789,\r
+        "y": 443.0000149011612,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8e3c57a1.dadbf8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1022.0039520263672,\r
+        "y": 441.99999237060547,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "8c0936c1.7617c8",\r
+                "28692055.9016f",\r
+                "a8eb8c24.f4a0f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "28692055.9016f",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1234.003890991211,\r
+        "y": 495.99999141693115,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "73f639ab.d244b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "73f639ab.d244b8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1477.00390625,\r
+        "y": 491.0000009536743,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "fdba254c.4c6898"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fdba254c.4c6898",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1675.0039348602295,\r
+        "y": 478.00000762939453,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "e324ecda.ee495"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e324ecda.ee495",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1827.00390625,\r
+        "y": 480.0000009536743,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "a7ad0572.bfda18",\r
+                "1d9eaeb3.112c31",\r
+                "96aaf259.9b5e1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a7ad0572.bfda18",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vf-module-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2076.004005432129,\r
+        "y": 474.0000033378601,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1d9eaeb3.112c31",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2065.004005432129,\r
+        "y": 525.000036239624,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "96aaf259.9b5e1",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-device-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2096.0042114257812,\r
+        "y": 572.0000371932983,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6b9873c1.ed3cac",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"Provided alloted resource length\"/>\n<parameter name=\"field3\" value=\"'parameters length'\"/>\n<parameter name=\"field4\" value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`'/>\n\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 554.0039806365967,\r
+        "y": 576.0000066757202,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "3bb5998d.d31786",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.vidx ",\r
+        "xml": "<switch test=\"`$tmp.vidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 578.0351257324219,\r
+        "y": 523.016074180603,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "68156871.093ed8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "68156871.093ed8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 725.4637680053711,\r
+        "y": 522.5874843597412,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "749cf44f.03bbfc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "749cf44f.03bbfc",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 874.8924942016602,\r
+        "y": 523.7304019927979,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b9df134a.f3234",\r
+        "type": "execute",\r
+        "name": "execute Properties",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 585.0351448059082,\r
+        "y": 625.0160593986511,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa016c6e.8bda5",\r
+        "type": "comment",\r
+        "name": "make sure this VNF doesn't exist already",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1307.4205932617188,\r
+        "y": 1212.2502059936523,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2b5c22d1.d99c1e",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create Devcie Instance",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-device.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v3/devices'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"deviceResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 673.0080718994141,\r
+        "y": 1216.424148797989,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "9ca787d1.dfba38",\r
+                "a187483b.9fc538"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "69b97572.5eed5c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1074.6745147705078,\r
+        "y": 1186.3128004074097,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d59ec52f.21c8f8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Activate Device rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1076.1190948486328,\r
+        "y": 1236.868332862854,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a187483b.9fc538",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 923.1189384460449,\r
+        "y": 1239.8682870864868,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "d59ec52f.21c8f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9ca787d1.dfba38",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 922.5634536743164,\r
+        "y": 1183.5349988937378,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "69b97572.5eed5c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "104a605b.c517a",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 590.0001373291016,\r
+        "y": 1160.5913829803467,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ab75124f.85f25",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 552.0041103363037,\r
+        "y": 1641.5002851486206,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "496cf1c2.09334",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 597.3373680114746,\r
+        "y": 1531.8336429595947,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5763663a.274778",\r
+        "type": "save",\r
+        "name": "update deviceInstance configuration in AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='device' \n      key='device.device-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\n<parameter name='device-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<!--parameter name='device-id' value='`$deviceResp.success[0].id`' /-->\n<parameter name='operational-status' value='Active' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 632.6708755493164,\r
+        "y": 1584.722743988037,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "fba80bcb.537e38",\r
+        "type": "set",\r
+        "name": "set deviceId to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value=\"deviceId\" />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$deviceResp.success[0].id`' />\n",\r
+        "comments": "",\r
+        "x": 593.6709938049316,\r
+        "y": 1315.7538223266602,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ad243b23.84cc68",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 576.0041046142578,\r
+        "y": 1474.2504119873047,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d9f0bb67.a6d688",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = 'SDWANController' AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 620.0086822509766,\r
+        "y": 725.8936567306519,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "24c130a1.06544",\r
+                "1c6d2fc3.9d47f",\r
+                "d711f941.efb278"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "24c130a1.06544",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 865.008659362793,\r
+        "y": 668.8936103284359,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "e6538e05.e2e95"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1c6d2fc3.9d47f",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 868.499626159668,\r
+        "y": 716.4676459729671,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "8c8ed57c.0ce668"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d711f941.efb278",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 863.832633972168,\r
+        "y": 757.8009589612484,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "37c7dcba.fd9d34"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e6538e05.e2e95",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 1062.5087203979492,\r
+        "y": 656.8936103284359,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8c8ed57c.0ce668",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1045.0710372924805,\r
+        "y": 704.7533820569515,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "37c7dcba.fd9d34",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1051.6051902770996,\r
+        "y": 753.24015173316,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4d09bded.34c944",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 628.008659362793,\r
+        "y": 833.893609046936,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "68b0f825.949708",\r
+                "3ec68637.c0dbea"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "68b0f825.949708",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 867.008731842041,\r
+        "y": 811.8936405181885,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "ea7ef978.26d9b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3ec68637.c0dbea",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 859.258731842041,\r
+        "y": 865.5365238189697,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "6b38fd7f.9697a4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ea7ef978.26d9b8",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 1017.008659362793,\r
+        "y": 812.893609046936,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6b38fd7f.9697a4",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing get token rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1012.008731842041,\r
+        "y": 865.286584854126,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d2ac70a8.01bbc",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 549.7587051391602,\r
+        "y": 1079.8937320709229,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "c50d0af9.6eaaa8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c50d0af9.6eaaa8",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create network orchestration",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-network-orchestration.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/network-orchestration-resources'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"orchestration-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 868.2587966918945,\r
+        "y": 1082.8938932418823,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "673290e1.c0902",\r
+        "type": "get-resource",\r
+        "name": "get-resource service-subscription",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"service-subscription\" \n        key= 'service-subscription.service-type = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.subscription-service-type \n        AND customer.global-customer-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.global-customer-id'\n      force=\"true\" pfx=\"tmp.AnAI-data\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 604.0802001953125,\r
+        "y": 984.5722246170044,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "3dede820.fe1e48",\r
+                "221b4119.4d74ce"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a417e40c.ac4638",\r
+        "type": "switchNode",\r
+        "name": "switch temp-ub-sub-account-id",\r
+        "xml": "<switch test='`$tmp.AnAI-data.temp-ub-sub-account-id`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1016.0802917480469,\r
+        "y": 949.3223056793213,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "d1aef225.461ff",\r
+                "30bdca8a.d90ec6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d1aef225.461ff",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1208.794750213623,\r
+        "y": 923.322338104248,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "b031c826.3fa048"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "30bdca8a.d90ec6",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1209.080307006836,\r
+        "y": 978.3223094940186,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "85a88d68.7da4e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "927bbae7.3f69d8",\r
+        "type": "set",\r
+        "name": "set prop.tenant-id",\r
+        "xml": "<set>\n<parameter name='prop.tenant-id' value='`$tmp.AnAI-data.temp-ub-sub-account-id`' />\n",\r
+        "comments": "",\r
+        "x": 1456.5088996887207,\r
+        "y": 1063.4651098251343,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b031c826.3fa048",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1348.2586479187012,\r
+        "y": 923.6436066627502,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "e230776c.5a9d58",\r
+                "3aed4c7a.4aaa14",\r
+                "be32cece.2100a",\r
+                "e41ff38c.c7009",\r
+                "93c1362e.aa2c78",\r
+                "a9cddfc0.c31fc",\r
+                "7328f02d.f9128"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e41ff38c.c7009",\r
+        "type": "set",\r
+        "name": "set prop.customer-id",\r
+        "xml": "<set>\n<parameter name='prop.customer-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.global-customer-id`' />\n",\r
+        "comments": "",\r
+        "x": 1559.901756286621,\r
+        "y": 734.2151670455933,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e230776c.5a9d58",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create tenant",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-tenant.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v2/baseservice/tenants'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"tenant-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1618.9015731811523,\r
+        "y": 864.7864580154419,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "3aed4c7a.4aaa14",\r
+        "type": "set",\r
+        "name": "set prop.tenant-id",\r
+        "xml": "<set>\n<parameter name='prop.tenant-id' value='`$tenant-result.data.tenantId`' />\n",\r
+        "comments": "",\r
+        "x": 1561.7588653564453,\r
+        "y": 962.6436986923218,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "be32cece.2100a",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create tenant auth",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v2/baseservice/tenants/authorization/' + $prop.tenant-id`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"tenant-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1637.2588348388672,\r
+        "y": 1013.3937277793884,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "93c1362e.aa2c78",\r
+        "type": "get-resource",\r
+        "name": "update-resource customer-id in service-subscription",\r
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"service-subscription\" \n        key= 'service-subscription.service-type = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.subscription-service-type \n        AND customer.global-customer-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.global-customer-id'>\n<parameter name='temp-ub-sub-account-id' value='`$tenant-result.data.tenantId`' />\n<!--parameter name='temp-ub-sub-account-id' value='`$prop.customer-id`' /-->\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1660.1873016357422,\r
+        "y": 915.7865858078003,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "3dede820.fe1e48",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 814.5800628662109,\r
+        "y": 957.3182830810547,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "a417e40c.ac4638"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "221b4119.4d74ce",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 808.2586517333984,\r
+        "y": 1009.5325946807861,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "13b27219.75f72e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "13b27219.75f72e",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing get token rest api\" />\n",\r
+        "comments": "",\r
+        "x": 961.0086517333984,\r
+        "y": 1009.2826557159424,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "85a88d68.7da4e",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1267.7310638427734,\r
+        "y": 1061.4693012237549,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            [\r
+                "927bbae7.3f69d8",\r
+                "cc5300b4.c716d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cc5300b4.c716d",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create tenant auth",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v2/baseservice/tenants/authorization/' + $prop.tenant-id`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"tenant-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1539.1596603393555,\r
+        "y": 1110.0407037734985,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a9cddfc0.c31fc",\r
+        "type": "set",\r
+        "name": "set prop.userAccount",\r
+        "xml": "<set>\n<parameter name='prop.userAccount' value='`$tmp.userAccountEmail`' />\n<parameter name='prop.userEmail' value='`$tmp.userAccountEmail`' />",\r
+        "comments": "",\r
+        "x": 1571.008659362793,\r
+        "y": 816.889702796936,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7328f02d.f9128",\r
+        "type": "execute",\r
+        "name": "execute concat customer-id and @test.com",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >\n    <parameter name=\"source\" value='`$prop.customer-id`'/>\n    <parameter name=\"outputPath\" value=\"tmp.userAccountEmail\"/>\n    <parameter name=\"target\" value=\"@test.com\"/>\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1635.0125350952148,\r
+        "y": 775.8936452865601,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a8eb8c24.f4a0f",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic1.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"vf-module-id-input\"/>\n<parameter name=\"field3\" value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`'/>\n\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1182.3333740234375,\r
+        "y": 378,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d63a100a.4fb85",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n",\r
+        "comments": "",\r
+        "x": 597.0001373291016,\r
+        "y": 1410.3333740234375,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "45830f23.d0369",\r
+        "type": "set",\r
+        "name": "increment param length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\n",\r
+        "comments": "",\r
+        "x": 580.0000553131104,\r
+        "y": 1360.0000801086426,\r
+        "z": "487c8439.e79e0c",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-create.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-create.json
new file mode 100644 (file)
index 0000000..d7e57be
--- /dev/null
@@ -0,0 +1,531 @@
+[\r
+    {\r
+        "id": "b9b83207.589ec",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1124.8294982910156,\r
+        "y": 251.16278839111328,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "8cae152d.7cd218"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e1800fba.baf5f",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 414.5,\r
+        "y": 144.99999237060547,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "6d32e66a.a8bcf8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6d32e66a.a8bcf8",\r
+        "type": "method",\r
+        "name": "sdwan-vf-operation-device-create",\r
+        "xml": "<method rpc='sdwan-vf-operation-device-create' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 413.5,\r
+        "y": 244.99999237060547,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "1cc250f1.53fd7f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c8db0b.eb2055",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 244,\r
+        "y": 56,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "e1800fba.baf5f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1cc250f1.53fd7f",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 572.4999847412109,\r
+        "y": 361.0000009536743,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "3397e2d.64c521e",\r
+                "92ec911d.95b14",\r
+                "fa9c393f.4d0eb8",\r
+                "1192cb09.4cd2d5",\r
+                "3e5eeaad.69c6b6",\r
+                "7e451b6c.fd6624",\r
+                "f6264050.f42d5",\r
+                "9e2c8c11.572dc",\r
+                "407f8a81.546654",\r
+                "f1088162.3598e",\r
+                "4489ad98.445654",\r
+                "860ccaf0.19f1e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3397e2d.64c521e",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 872.8294067382812,\r
+        "y": 252.49612522125244,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "b9b83207.589ec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1913a60e.b7faaa",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1496.4959869384766,\r
+        "y": 253.16279125213623,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8cae152d.7cd218",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1343.1628150939941,\r
+        "y": 253.16277027130127,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "1913a60e.b7faaa"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1192cb09.4cd2d5",\r
+        "type": "for",\r
+        "name": "for loop idx - VF input parameters",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 946.7501907348633,\r
+        "y": 474.66665840148926,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "f80594ca.7a0348"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f80594ca.7a0348",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1161.5285339355469,\r
+        "y": 472.2222423553467,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "99d262e0.f0c14",\r
+                "9b7ec3.98d4c14"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "99d262e0.f0c14",\r
+        "type": "execute",\r
+        "name": "execute split parameterName",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\n<parameter name=\"regex\" value=\"_\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"param-prefix\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1357.7847366333008,\r
+        "y": 449.97038078308105,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9b7ec3.98d4c14",\r
+        "type": "set",\r
+        "name": "set parameterName",\r
+        "xml": "<set>\n<parameter name=\"`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`\" value='`$param-prefix[$param-prefix_length -1]`'/>\n",\r
+        "comments": "",\r
+        "x": 1327.2291641235352,\r
+        "y": 486.97049713134766,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1ce3af0c.391b61",\r
+        "type": "comment",\r
+        "name": "Take the parameter names by removing prefix",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1330.7503929138184,\r
+        "y": 409.33332681655884,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "92ec911d.95b14",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 887.25,\r
+        "y": 207.9999942779541,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "1b06d72a.f85559"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1b06d72a.f85559",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1073.9166793823242,\r
+        "y": 207.3332920074463,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "7e3909f0.27dd48"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7e3909f0.27dd48",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",\r
+        "comments": "",\r
+        "x": 1255.5833053588867,\r
+        "y": 207.3332920074463,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fa9c393f.4d0eb8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 928.4999895095825,\r
+        "y": 327.9999952316284,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "fe3884f5.3db408",\r
+                "f43025e1.350458"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fe3884f5.3db408",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1159.5,\r
+        "y": 303.99999237060547,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "ec84c7cd.2c42f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f43025e1.350458",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1159.5,\r
+        "y": 343.99999237060547,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "3d425c4c.b021a4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ec84c7cd.2c42f8",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1302,\r
+        "y": 303.99999237060547,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3d425c4c.b021a4",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1303.8570442199707,\r
+        "y": 343.9365043640137,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "30d4aa0b.cee996",\r
+                "8e933b3.56987c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8e933b3.56987c8",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1456.555519104004,\r
+        "y": 313.5556030566804,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "30d4aa0b.cee996",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-index`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1512.9840240478516,\r
+        "y": 366.7777328491211,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "40a39312.e2cd5c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f966e582.bd5968",\r
+        "type": "comment",\r
+        "name": "make sure this network doesn't exist already",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1736.6347541809082,\r
+        "y": 325.03179025650024,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "40a39312.e2cd5c",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1788.2697448730469,\r
+        "y": 366.34923553466797,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "d61c18df.dc4958"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d61c18df.dc4958",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1688.999942779541,\r
+        "y": 424.9206666946411,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            [\r
+                "d629e081.56166"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d629e081.56166",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1836.7500457763672,\r
+        "y": 424.7778587634675,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "407f8a81.546654",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.device-vf-index`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n\n<!--parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' /-->\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\n\n",\r
+        "comments": "",\r
+        "x": 940.3531951904297,\r
+        "y": 754.4962153434753,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9e2c8c11.572dc",\r
+        "type": "execute",\r
+        "name": "execute generate-vf-module-index",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.device-vf-index\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 948.6866912841797,\r
+        "y": 701.1629481315613,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f6264050.f42d5",\r
+        "type": "set",\r
+        "name": "set new vf-module_length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />",\r
+        "comments": "",\r
+        "x": 922.6866683959961,\r
+        "y": 647.162841796875,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3e5eeaad.69c6b6",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n",\r
+        "comments": "",\r
+        "x": 937.6863288879395,\r
+        "y": 537.1542224884033,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7e451b6c.fd6624",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-device-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 963.6867065429688,\r
+        "y": 593.1544561386108,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f1088162.3598e",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $prop.device-vf-index\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 935.5000877380371,\r
+        "y": 805.0000605583191,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4489ad98.445654",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n",\r
+        "comments": "",\r
+        "x": 943.0001907348633,\r
+        "y": 853.0000247955322,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a1ffaa29.5bb868",\r
+        "type": "save",\r
+        "name": "save sdwan vpn resource in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource' \n      key='site-resource.site-resource-id = $prop.site-vf-index' >\n<parameter name='site-resource-id' value='`$prop.site-vf-index`' />\n<parameter name='site-resource-name' value='`$prop.site.name`' />\n<parameter name='description' value='`$prop.site.description`' />\n<parameter name='type' value='`$prop.site.type`' />\n<parameter name='role' value='`$prop.site.role`' />\n<parameter name='operational-status' value='Created' />\n<parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\n<parameter name='selflink' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vf-module-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $service-data.vnfs.vnf[$vnf-index].vnf-id  + '/vnf-data/vf-modules/vf-module/' + $prop.site-vf-index + '/vf-module-data/'` \" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 947.5000419616699,\r
+        "y": 899.4999761581421,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "503ce76b.44e798",\r
+        "type": "save",\r
+        "name": "save service relationship in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf:relationship-list' \n      key='generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-vpn\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-vpns/sdwan-vpn/' + $prop.site-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"sdwan-vpn.id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.site-vf-index`\" />\n\n\n<!--save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource:relationship-list' \n      key='site-resource.site-resource-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-site\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-sites/sdwan-site/' + $prop.site-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"sdwan-vpn.id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.site-vf-index`\" /-->\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 946.4999847412109,\r
+        "y": 946.5000238418579,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "860ccaf0.19f1e8",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 895.2225151062012,\r
+        "y": 992.6738667488098,\r
+        "z": "c7d3e3a8.96c6a",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-deactivate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-deactivate.json
new file mode 100644 (file)
index 0000000..592f18e
--- /dev/null
@@ -0,0 +1,790 @@
+[\r
+    {\r
+        "id": "eab12fb4.9470c",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-device-deactivate",\r
+        "xml": "<method rpc='sdwan-vf-operation-device-deactivate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 247.00390625,\r
+        "y": 208.58633995056152,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "88bd5bad.58a838"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "173d417d.3d9d4f",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 156.00390625,\r
+        "y": 51.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "49f08769.af3e38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "49f08769.af3e38",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 235.28961181640625,\r
+        "y": 114.23810768127441,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "eab12fb4.9470c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "88bd5bad.58a838",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 233.6705780029297,\r
+        "y": 393.666711807251,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "8b416f25.fd742",\r
+                "913862a1.5a856",\r
+                "4cb8dc52.180e74",\r
+                "fc24eafd.9fc4a8",\r
+                "4138123c.14d7fc",\r
+                "4970f16c.dac46",\r
+                "895129ed.754e48",\r
+                "365ea8c0.8e5e88",\r
+                "3a024eed.b847b2",\r
+                "b57ebaec.796048",\r
+                "f96bfa0c.8df2e8",\r
+                "c52a640a.528f08",\r
+                "f35fbdc0.23293",\r
+                "8adce6c1.0054d8",\r
+                "c93c3cc4.3e059",\r
+                "2b4abdb6.03e172"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "913862a1.5a856",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 579.035270690918,\r
+        "y": 288.26913928985596,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "efd4ecd6.bbb91"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8b416f25.fd742",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 584.0039253234863,\r
+        "y": 227.00000858306885,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "d471cf9c.3d2c3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d471cf9c.3d2c3",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 764.00390625,\r
+        "y": 225.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "50f0a620.2f6168"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "50f0a620.2f6168",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 913.4326324462891,\r
+        "y": 227.142915725708,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "efd4ecd6.bbb91",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 802.0039215087891,\r
+        "y": 289.0000042915344,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "ddc6fec5.e8104"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ddc6fec5.e8104",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1017.00390625,\r
+        "y": 286.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "b9cc7318.0324"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b9cc7318.0324",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1181.00390625,\r
+        "y": 281.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4cb8dc52.180e74",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 608.0039138793945,\r
+        "y": 388.99999046325684,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "e6e168ae.5922f8",\r
+                "fd79ee10.1cfe",\r
+                "a16175c1.4d7fe8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fd79ee10.1cfe",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 851.00390625,\r
+        "y": 393.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "a7f74d79.37951"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e6e168ae.5922f8",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 856.0039024353027,\r
+        "y": 340.99999713897705,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "a7f74d79.37951"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a7f74d79.37951",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1014.00390625,\r
+        "y": 353.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a16175c1.4d7fe8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 851.00390625,\r
+        "y": 454.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "29b73225.fee79e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9a42153a.0e1ba8",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1205.003921508789,\r
+        "y": 453.00001204013824,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "29b73225.fee79e",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1012.0039520263672,\r
+        "y": 451.9999895095825,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "9a42153a.0e1ba8",\r
+                "a90f8236.4cea3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a90f8236.4cea3",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1224.003890991211,\r
+        "y": 505.9999885559082,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "9531aa2b.7d82e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9531aa2b.7d82e8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1467.00390625,\r
+        "y": 500.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "50f86cda.3bbd84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "50f86cda.3bbd84",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1665.0039348602295,\r
+        "y": 488.0000047683716,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "1f4f69b5.ee4bf6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1f4f69b5.ee4bf6",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1817.00390625,\r
+        "y": 489.99999809265137,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "31d234fd.985a5c",\r
+                "fba615aa.7b1928",\r
+                "1bbdb98.9d83a47"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "31d234fd.985a5c",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2042.003978729248,\r
+        "y": 485.00000762939453,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fba615aa.7b1928",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2045.00390625,\r
+        "y": 534.9999980926514,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1bbdb98.9d83a47",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-device-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2073.0041275024414,\r
+        "y": 583.0000038146973,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "fc24eafd.9fc4a8",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.vidx ",\r
+        "xml": "<switch test=\"`$tmp.vidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 568.0351257324219,\r
+        "y": 533.0160713195801,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "f7322d10.91c7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f7322d10.91c7",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 715.4637680053711,\r
+        "y": 532.5874814987183,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "aba11941.c41518"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aba11941.c41518",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 864.8924942016602,\r
+        "y": 533.7303991317749,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4138123c.14d7fc",\r
+        "type": "execute",\r
+        "name": "execute Properties",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 575.0351448059082,\r
+        "y": 635.0160565376282,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "8adce6c1.0054d8",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 620.00390625,\r
+        "y": 814.9999980926514,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "21e717d4.e526d8",\r
+                "beac382b.708d18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "21e717d4.e526d8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 852.00390625,\r
+        "y": 794.9999980926514,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "ab96a06a.0fe99"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "beac382b.708d18",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 844.25390625,\r
+        "y": 836.6428813934326,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "d406c325.c6945"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ab96a06a.0fe99",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 989.00390625,\r
+        "y": 794.9999980926514,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d406c325.c6945",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 970.33740234375,\r
+        "y": 836.8889141082764,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f35fbdc0.23293",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 614.5595703125,\r
+        "y": 719.2222194671631,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "bbf3791.82cae88",\r
+                "5c78e46.37fed1c",\r
+                "6cb7b96f.bcb5f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5c78e46.37fed1c",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 847.050464630127,\r
+        "y": 692.7962417602539,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "dee4ec51.1a644"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dee4ec51.1a644",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1020.6218757629395,\r
+        "y": 681.0819778442383,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6cb7b96f.bcb5f8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 839.383472442627,\r
+        "y": 734.1295547485352,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "af4faa3a.89fcb8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "af4faa3a.89fcb8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1027.1560287475586,\r
+        "y": 729.5687475204468,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bbf3791.82cae88",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 855.559627532959,\r
+        "y": 644.2221937179565,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "a080fe09.3fe2b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a080fe09.3fe2b",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 1032.059669494629,\r
+        "y": 635.2221827507019,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c93c3cc4.3e059",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 601.0000190734863,\r
+        "y": 869.5910816192627,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "365ea8c0.8e5e88",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 570.0039882659912,\r
+        "y": 1320.5000076293945,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4970f16c.dac46",\r
+        "type": "set",\r
+        "name": "set vf-module-oper-status to PendingDelete",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n",\r
+        "comments": "",\r
+        "x": 655.4840393066406,\r
+        "y": 1183.8372745513916,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "895129ed.754e48",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 612.3372573852539,\r
+        "y": 1089.8334884643555,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c52a640a.528f08",\r
+        "type": "save",\r
+        "name": "update deviceInstance configuration in AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='device' \n      key='device.device-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\n<parameter name='device-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<!--parameter name='device-id' value='`$deviceResp.success[0].id`' /-->\n<parameter name='operational-status' value='PendingDelete' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 648.6707305908203,\r
+        "y": 1248.7224197387695,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "3a024eed.b847b2",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 599.00390625,\r
+        "y": 1135.2501430511475,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f96bfa0c.8df2e8",\r
+        "type": "set",\r
+        "name": "set device Id length and deviceId",\r
+        "xml": "<set>\n<parameter name='prop.devices[0]' value='`$prop.device.deviceId`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 617.00390625,\r
+        "y": 977.5039043426514,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b57ebaec.796048",\r
+        "type": "set",\r
+        "name": "set device Id length and deviceId",\r
+        "xml": "<set>\n<parameter name='prop.devices_length' value='1' />\n\n\n",\r
+        "comments": "",\r
+        "x": 621.0038833618164,\r
+        "y": 935.503867149353,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "12cd00be.9dffef",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 961.0039329528809,\r
+        "y": 1011.2539529800415,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "f39a352.055c0c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f39a352.055c0c8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1132.114948272705,\r
+        "y": 1010.0317735671997,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5670b097.b1ca5",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 957.5594863891602,\r
+        "y": 1064.587239265442,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "a7ade3fe.220b3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a7ade3fe.220b3",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create vpn rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1102.5594863891602,\r
+        "y": 1067.587239265442,\r
+        "z": "43a65733.428508",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2b4abdb6.03e172",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode delete Devcie Instance",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-device-del.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v3/devices'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"delete\"/>\n<parameter name=\"responsePrefix\" value=\"deviceResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 667.4798164367676,\r
+        "y": 1034.1741046905518,\r
+        "z": "43a65733.428508",\r
+        "wires": [\r
+            [\r
+                "12cd00be.9dffef",\r
+                "5670b097.b1ca5"\r
+            ]\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-delete.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-delete.json
new file mode 100644 (file)
index 0000000..ad4c6ef
--- /dev/null
@@ -0,0 +1,707 @@
+[\r
+    {\r
+        "id": "c6fed7ba.2e5e18",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-device-delete",\r
+        "xml": "<method rpc='sdwan-vf-operation-device-delete' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 255.00390625,\r
+        "y": 216.58634042739868,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "4804312d.8867d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e5478a26.0a9688",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 164.00390625,\r
+        "y": 59.999998569488525,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "3b2be231.ea30ae"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b2be231.ea30ae",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 243.28961181640625,\r
+        "y": 122.23810815811157,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "c6fed7ba.2e5e18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4804312d.8867d",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 271.6706085205078,\r
+        "y": 450.66671800613403,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "f36d7165.5e774",\r
+                "9c192f6.d32f3d",\r
+                "edf648d0.949e68",\r
+                "68b5e9b8.2b0318",\r
+                "370fd9d.4d0a826",\r
+                "e73ad2e7.ff301",\r
+                "61a4bf49.6ae31",\r
+                "4b0a719b.ddb45",\r
+                "77882cba.d66624",\r
+                "75517c95.ffb8a4",\r
+                "b631e163.c5869",\r
+                "22f84c9a.3b1234"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c192f6.d32f3d",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 587.035270690918,\r
+        "y": 296.2691397666931,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "a9bd8416.007568"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f36d7165.5e774",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 592.0039253234863,\r
+        "y": 235.000009059906,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "ca4b0462.04ea28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ca4b0462.04ea28",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 772.00390625,\r
+        "y": 233.99999856948853,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "6923c8a0.a21e38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6923c8a0.a21e38",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 921.4326324462891,\r
+        "y": 235.14291620254517,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a9bd8416.007568",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 810.0039215087891,\r
+        "y": 297.0000047683716,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "cd0a501b.5bef4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cd0a501b.5bef4",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1025.00390625,\r
+        "y": 294.9999985694885,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "48bd1058.cd2f6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "48bd1058.cd2f6",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1189.00390625,\r
+        "y": 289.9999985694885,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "edf648d0.949e68",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 658.0039405822754,\r
+        "y": 373.00002336502075,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "428796e8.82f0e8",\r
+                "dc937af3.d44e48",\r
+                "71d8961.8097f68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dc937af3.d44e48",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 880.0039329528809,\r
+        "y": 407.0000329017639,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "f5d99ed7.a4a21"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "428796e8.82f0e8",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 885.0039291381836,\r
+        "y": 354.0000319480896,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "f5d99ed7.a4a21"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f5d99ed7.a4a21",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1043.0039329528809,\r
+        "y": 367.0000329017639,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "71d8961.8097f68",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 880.0039329528809,\r
+        "y": 468.0000329017639,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "d086ad92.da44d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1ece4dd8.f577c2",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1234.00394821167,\r
+        "y": 466.0000468492508,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d086ad92.da44d",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1041.003978729248,\r
+        "y": 465.00002431869507,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "1ece4dd8.f577c2",\r
+                "85d68297.b6351"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "85d68297.b6351",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1253.0039176940918,\r
+        "y": 519.0000233650208,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "22a0d6f0.bf05ea"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "22a0d6f0.bf05ea",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1496.0039329528809,\r
+        "y": 514.0000329017639,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "158cf966.e07057"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "158cf966.e07057",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1737.0040607452393,\r
+        "y": 507.00003004074097,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "66a900a3.a3c07"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "66a900a3.a3c07",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1889.0040321350098,\r
+        "y": 509.00002336502075,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "e303b920.69ef18",\r
+                "94649a24.085df8",\r
+                "2718f6a1.d8c36a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e303b920.69ef18",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2111.0040321350098,\r
+        "y": 505.00002336502075,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "94649a24.085df8",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2117.0040321350098,\r
+        "y": 554.0000233650208,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2718f6a1.d8c36a",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-device-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2145.004253387451,\r
+        "y": 602.0000290870667,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "68b5e9b8.2b0318",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.vidx ",\r
+        "xml": "<switch test=\"`$tmp.vidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 597.0351524353027,\r
+        "y": 546.0161061286926,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "99df81ad.4b936"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "99df81ad.4b936",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 744.463794708252,\r
+        "y": 545.5875163078308,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "5487274c.85e858"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5487274c.85e858",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 893.892520904541,\r
+        "y": 546.7304339408875,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "370fd9d.4d0a826",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 641.3333129882812,\r
+        "y": 616.3333115577698,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "8d4cefb5.e8f04",\r
+                "d9412eaf.21b64"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8d4cefb5.e8f04",\r
+        "type": "outcome",\r
+        "name": "outcome PendingDelete",\r
+        "xml": "<outcome value='PendingDelete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 932.1665802001953,\r
+        "y": 620.4444346427917,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "d8669fbd.c1c02"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d9412eaf.21b64",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 899.1667175292969,\r
+        "y": 672.4444873332977,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "dfeaa117.eea9d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dfeaa117.eea9d",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`\" />",\r
+        "comments": "",\r
+        "x": 1058.6664848327637,\r
+        "y": 675.4444863796234,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d8669fbd.c1c02",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1129.4729804992676,\r
+        "y": 630.7695889472961,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b631e163.c5869",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 619.4445152282715,\r
+        "y": 995.2221984863281,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "22f84c9a.3b1234",\r
+        "type": "switchNode",\r
+        "name": "switch prop.device.sdncCreate",\r
+        "xml": "<switch test=\"`$prop.device.sdncCreate`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 659.0948181152344,\r
+        "y": 937.5949177742004,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "44543bd3.4c8bf4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e73ad2e7.ff301",\r
+        "type": "set",\r
+        "name": "set prop.vnfNewidx",\r
+        "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`0`' />\n",\r
+        "comments": "",\r
+        "x": 615.5311832427979,\r
+        "y": 690.3333535194397,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "61a4bf49.6ae31",\r
+        "type": "for",\r
+        "name": "for lidx..service-data.vf-modules.vf-module[]",\r
+        "xml": "<for index='lidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 695.5310974121094,\r
+        "y": 741.3333554267883,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "da9431cc.52513"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4b0a719b.ddb45",\r
+        "type": "set",\r
+        "name": "set new vnf length",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length\" value='`$prop.vnfidxLen`'/>\n\n\t\n",\r
+        "comments": "",\r
+        "x": 619.6324615478516,\r
+        "y": 792.1375555992126,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "77882cba.d66624",\r
+        "type": "set",\r
+        "name": "Remove vnf from ServiceData",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].\" value=\"\"/>\n",\r
+        "comments": "",\r
+        "x": 656.5311431884766,\r
+        "y": 844.3333582878113,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "da9431cc.52513",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 955.5310878753662,\r
+        "y": 748.3332152366638,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "18a9693d.650b17"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "44543bd3.4c8bf4",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 870.094669342041,\r
+        "y": 936.5945897102356,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "33a69b5b.9a15c4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "33a69b5b.9a15c4",\r
+        "type": "delete",\r
+        "name": "delete wan port instance configuration in AAI",\r
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource='device' \n        key='device.device-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1136.5314407348633,\r
+        "y": 934.5948338508606,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "18a9693d.650b17",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lidx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1141.5311546325684,\r
+        "y": 748.3333759307861,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "3ab3fce3.adf244"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3ab3fce3.adf244",\r
+        "type": "outcomeFalse",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1310.531162261963,\r
+        "y": 747.3332133293152,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "9c7fc57d.2e0378"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c7fc57d.2e0378",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1464.5310010910034,\r
+        "y": 739.3332142829895,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": [\r
+            [\r
+                "3c3fb736.ab7c18",\r
+                "3d45148.2511eec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3c3fb736.ab7c18",\r
+        "type": "set",\r
+        "name": "set  vnf data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 1629.531096458435,\r
+        "y": 714.3333697319031,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3d45148.2511eec",\r
+        "type": "set",\r
+        "name": "set prop.vnfNewidx",\r
+        "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\n",\r
+        "comments": "",\r
+        "x": 1651.531096458435,\r
+        "y": 770.333333492279,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "75517c95.ffb8a4",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 643.3333511352539,\r
+        "y": 889.6666932106018,\r
+        "z": "314ec97c.2253c6",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-activate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-activate.json
new file mode 100644 (file)
index 0000000..138d31f
--- /dev/null
@@ -0,0 +1,1853 @@
+[\r
+    {\r
+        "id": "cea6a9f1.279478",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 570.7143020629883,\r
+        "y": 337.99999046325684,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "4a89ecf7.049034",\r
+                "2a09fa32.63fc36",\r
+                "c2f1098d.e8bd38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1833f3f4.1b830c",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 107.71429824829102,\r
+        "y": 29,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "181dc2fc.e539bd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "181dc2fc.e539bd",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 177,\r
+        "y": 92.23810958862305,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "25791551.06845a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "25791551.06845a",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-lanport-activate",\r
+        "xml": "<method rpc='sdwan-vf-operation-lanport-activate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 188.71429443359375,\r
+        "y": 186.58634185791016,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "419d7afa.b1ca54"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "419d7afa.b1ca54",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 189.38096618652344,\r
+        "y": 442.666708946228,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "f5110085.4f487",\r
+                "f62e0d25.9e73c",\r
+                "cea6a9f1.279478",\r
+                "76df47d2.f28eb8",\r
+                "3a550152.acb95e",\r
+                "bad651b2.12a17",\r
+                "a66a0a0e.fef0c8",\r
+                "f2a2fd31.6afea",\r
+                "11a6133a.d1ed1d",\r
+                "6bb3e148.a2b06",\r
+                "233d7734.c6ad18",\r
+                "ec89c38e.b0db3",\r
+                "cfe4c928.772628",\r
+                "307480f2.c3f12",\r
+                "83adcbda.9cab18",\r
+                "41a8aff.133475",\r
+                "bf4ca0a0.f719b",\r
+                "14cdbea6.6ff3c1",\r
+                "96f47da7.f3275",\r
+                "7299f238.fa9f1c",\r
+                "e4f03070.b443a",\r
+                "1e3434c6.db511b",\r
+                "56401cb0.1f0164"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f62e0d25.9e73c",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 520.7456588745117,\r
+        "y": 266.2691411972046,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "b7bf67d0.4c13b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f5110085.4f487",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 525.7143135070801,\r
+        "y": 205.00001049041748,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "61a8d0c5.ce10b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "61a8d0c5.ce10b",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 705.7142944335938,\r
+        "y": 204,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "3e167156.21c02e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3e167156.21c02e",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 855.1430206298828,\r
+        "y": 205.14291763305664,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b7bf67d0.4c13b8",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 743.7143096923828,\r
+        "y": 267.00000619888306,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "29696342.56f90c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "29696342.56f90c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 958.7142944335938,\r
+        "y": 265,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "1ba7830b.c7ea6d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1ba7830b.c7ea6d",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1122.7142944335938,\r
+        "y": 260,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2a09fa32.63fc36",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 792.7142944335938,\r
+        "y": 372,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "4ead305d.0b806"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a89ecf7.049034",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 797.7142906188965,\r
+        "y": 318.9999990463257,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "4ead305d.0b806"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4ead305d.0b806",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 955.7142944335938,\r
+        "y": 332,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c2f1098d.e8bd38",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 792.7142944335938,\r
+        "y": 433,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "2458c219.d10e1e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ead36ccd.33529",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1146.7143096923828,\r
+        "y": 431.0000139474869,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2458c219.d10e1e",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 953.7143402099609,\r
+        "y": 429.99999141693115,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "ead36ccd.33529",\r
+                "386f97ee.904d48"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "386f97ee.904d48",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1165.7142791748047,\r
+        "y": 483.99999046325684,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "593c39.dc7673c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "593c39.dc7673c8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1408.7142944335938,\r
+        "y": 479,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "1efda74.b0eb959"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1efda74.b0eb959",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1606.7143230438232,\r
+        "y": 466.0000066757202,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "d0b5f3a2.35747"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d0b5f3a2.35747",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1758.7142944335938,\r
+        "y": 468,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "1fc6559e.18634a",\r
+                "802dea9f.3c2848",\r
+                "9329a8cc.23d418"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1fc6559e.18634a",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 1986.7144088745117,\r
+        "y": 410.00000381469727,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "802dea9f.3c2848",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 1990.7144088745117,\r
+        "y": 464.00000381469727,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "76df47d2.f28eb8",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 504.714412689209,\r
+        "y": 2079.501151561737,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9329a8cc.23d418",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-lanport-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lanport-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2021.16943359375,\r
+        "y": 515.0104961395264,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b2d390ae.97474",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='vfidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 827.9683685302734,\r
+        "y": 520.0040225982666,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "7dff73e1.0243cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f6c843d.edec8c",\r
+        "type": "switchNode",\r
+        "name": "switch this deviceName == vf-input",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value == '$prop.lan.deviceName'`\">\n    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1100.9686126708984,\r
+        "y": 606.0041282176971,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "cb455713.e1bdd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7dff73e1.0243cc",\r
+        "type": "for",\r
+        "name": "for vf-module-input-param length",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1125.9682846069336,\r
+        "y": 523.0040645599365,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "3f6c843d.edec8c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cb455713.e1bdd8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1314.9684257507324,\r
+        "y": 603.0041129589081,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "8c1ad275.b541"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8c1ad275.b541",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1528.9684677124023,\r
+        "y": 599.0040664672852,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "6aaf6a5c.76e9f4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6aaf6a5c.76e9f4",\r
+        "type": "switchNode",\r
+        "name": "switch deviceId == input vf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'deviceId'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1843.9685440063477,\r
+        "y": 598.0040471553802,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "85841cc6.de2b3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "85841cc6.de2b3",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2045.9686737060547,\r
+        "y": 596.0040481090546,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "1722d3f0.fc82dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1722d3f0.fc82dc",\r
+        "type": "set",\r
+        "name": "set prop.lan.deviceId",\r
+        "xml": "<set>\n<parameter name='prop.lan.deviceId' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\n",\r
+        "comments": "",\r
+        "x": 2220.9685668945312,\r
+        "y": 596.004228591919,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3a550152.acb95e",\r
+        "type": "for",\r
+        "name": "for service-data.vnfs.vnf_length",\r
+        "xml": "<for index='vnfidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 573.9682159423828,\r
+        "y": 455.00401973724365,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "b2d390ae.97474"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "566234f6.d57f8c",\r
+        "type": "switchNode",\r
+        "name": "switch ActivateSDWANSiteInstance",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSDWANSiteInstance'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1168.7185821533203,\r
+        "y": 727.0039882659912,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "d08758a.8a9d4a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a6e0872.754c78",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='vfidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 814.7184219360352,\r
+        "y": 694.0040283203125,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "2141a4d0.4ed0ac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "83adcbda.9cab18",\r
+        "type": "for",\r
+        "name": "for service-data.vnfs.vnf_length",\r
+        "xml": "<for index='vnfidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 565.7182769775391,\r
+        "y": 625.0039081573486,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "4a6e0872.754c78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d08758a.8a9d4a8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1390.7184982299805,\r
+        "y": 727.0040698051453,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "5c9349a5.10cdf8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5c9349a5.10cdf8",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1471.968505859375,\r
+        "y": 801.5040712356567,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "78c531f9.c452d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "78502254.1e1d1c",\r
+        "type": "switchNode",\r
+        "name": "switch siteId",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'siteId'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1854.968864440918,\r
+        "y": 808.5041785240173,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "cef8d9d4.a847d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cef8d9d4.a847d8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2031.9688835144043,\r
+        "y": 811.5040187835693,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "57774070.165c4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "26765522.97752a",\r
+        "type": "set",\r
+        "name": "set prop.attach.siteId",\r
+        "xml": "<set>\n<parameter name='prop.attach.siteId' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\n",\r
+        "comments": "",\r
+        "x": 2415.9693908691406,\r
+        "y": 785.5040702819824,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "57774070.165c4",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2191.2190742492676,\r
+        "y": 807.0040588378906,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "26765522.97752a",\r
+                "18aa70c2.f51f1f",\r
+                "95fdece9.83f56",\r
+                "13d1a87e.cc7dd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "41a8aff.133475",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 526.7182235717773,\r
+        "y": 944.5039968490601,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "9e1e759b.490ef8",\r
+                "587c1d85.98e364",\r
+                "1fecffb3.fdfc1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9e1e759b.490ef8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 770.7182846069336,\r
+        "y": 908.5039968490601,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "1eeec00d.ea37e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "587c1d85.98e364",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 773.2091674804688,\r
+        "y": 944.0780334472656,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "f1f9240f.1bbe98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1fecffb3.fdfc1",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 768.5421752929688,\r
+        "y": 980.4113922119141,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "e9937b5c.1de1c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e9937b5c.1de1c8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 922.3146667480469,\r
+        "y": 977.8504791259766,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f1f9240f.1bbe98",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 918.7805633544922,\r
+        "y": 942.3637208938599,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1eeec00d.ea37e",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 931.2183952331543,\r
+        "y": 906.5039367675781,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bf4ca0a0.f719b",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 540.6564559936523,\r
+        "y": 1047.62509059906,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "d05110e4.15f05",\r
+                "623a881a.ebe538"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d05110e4.15f05",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 775.6565818786621,\r
+        "y": 1033.6250791549683,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "adf2584e.694ce8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "623a881a.ebe538",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 774.9065818786621,\r
+        "y": 1069.2679862976074,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "e8c30ab5.68d3b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e8c30ab5.68d3b8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing get token rest api\" />\n",\r
+        "comments": "",\r
+        "x": 923.6565895080566,\r
+        "y": 1070.0180683135986,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "adf2584e.694ce8",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 917.6565895080566,\r
+        "y": 1032.6250801086426,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "96f47da7.f3275",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode device port create",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdlan-port.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"portResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 566.7455520629883,\r
+        "y": 1199.0782289505005,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "50af67d.1491698",\r
+                "bef4965a.55b458"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "50af67d.1491698",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 815.7456111907959,\r
+        "y": 1213.0784349441528,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "b4a513b9.d44d6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bef4965a.55b458",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 815.7456111907959,\r
+        "y": 1175.0782704353333,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "d695c8db.015488"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d695c8db.015488",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create device port rest api\" />\n",\r
+        "comments": "",\r
+        "x": 959.7459449768066,\r
+        "y": 1174.078269958496,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b4a513b9.d44d6",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 962.7456226348877,\r
+        "y": 1214.0782737731934,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bad651b2.12a17",\r
+        "type": "set",\r
+        "name": "set prop.lan.devicePortId",\r
+        "xml": "<set>\n<parameter name='prop.lan.devicePortId' value='`$portResp.success[0].id`' />\n",\r
+        "comments": "",\r
+        "x": 509.4028129577637,\r
+        "y": 1252.1794338226318,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1d5fca27.3bbea6",\r
+        "type": "comment",\r
+        "name": "Create port",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 468.41149139404297,\r
+        "y": 1165.522253036499,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "14cdbea6.6ff3c1",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 515.411491394043,\r
+        "y": 1114.1886892318726,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f52cabac.abeb68",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode bridge domain create",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdlan-bridge-domain.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/bridge-domains'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"bridgeDomainResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 989.3958015441895,\r
+        "y": 1294.188857793808,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "441eed4c.baf224",\r
+                "fa3f1c96.1fc6d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "441eed4c.baf224",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1310.3958282470703,\r
+        "y": 1311.1891782283783,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "a63cb83c.98c9e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa3f1c96.1fc6d",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1313.3958549499512,\r
+        "y": 1276.1889598369598,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "421c7bf9.398d94"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "421c7bf9.398d94",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create bridge domain rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1516.3962440490723,\r
+        "y": 1272.1890671253204,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a63cb83c.98c9e8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1517.395809173584,\r
+        "y": 1307.1889336109161,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7044fc7.42f8204",\r
+        "type": "comment",\r
+        "name": "Create bridge domain",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 933.061695098877,\r
+        "y": 1260.6330835819244,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a66a0a0e.fef0c8",\r
+        "type": "switchNode",\r
+        "name": "switch portSwitch",\r
+        "xml": "<switch test=\"`$prop.lan.portSwitch == 'layer2-port'`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 489.17326736450195,\r
+        "y": 1295.855489730835,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "cc6612da.43a9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cc6612da.43a9",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 668.1732978820801,\r
+        "y": 1295.966812133789,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "f52cabac.abeb68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f2a2fd31.6afea",\r
+        "type": "execute",\r
+        "name": "execute split ip and mask",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$prop.lan.ipAddress`'/>\n<parameter name=\"regex\" value=\"/\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"ipandMask\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 513.71826171875,\r
+        "y": 1395.7540397644043,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "c87ddd20.90349",\r
+                "aaf35528.c457d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aaf35528.c457d8",\r
+        "type": "failure",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 714.7182807922363,\r
+        "y": 1373.7540311813354,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "f3c46122.a1ec5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c87ddd20.90349",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 714.7182846069336,\r
+        "y": 1414.7540349960327,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "3701541a.3aea9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f3c46122.a1ec5",\r
+        "type": "set",\r
+        "name": "set ipAddress prefixLength",\r
+        "xml": "<set>\n<parameter name='prop.lan.ip-address' value='`$ipandMask[0]`' />\n<parameter name='prop.lan.prefixLength' value='`$ipandMask[1]`' />",\r
+        "comments": "",\r
+        "x": 911.7182998657227,\r
+        "y": 1371.7540311813354,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3701541a.3aea9c",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value=\"An error occured while splitting sna1_route\" />\n",\r
+        "comments": "",\r
+        "x": 869.7182922363281,\r
+        "y": 1411.7540340423584,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6cdf4550.c744bc",\r
+        "type": "comment",\r
+        "name": "Create wan port",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 486.7281379699707,\r
+        "y": 1348.7640895843506,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2701cb4.59cff34",\r
+        "type": "comment",\r
+        "name": "TODO: split ip/mask",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 910.7279319763184,\r
+        "y": 1333.9343032836914,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7299f238.fa9f1c",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode IPSubnets create",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdlan-ip-subnets.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/ip-subnets'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"lanPortResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 572.489631652832,\r
+        "y": 1471.8749294281006,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "fe753b01.7a4008",\r
+                "c50acfa.66a383"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c50acfa.66a383",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 841.4896621704102,\r
+        "y": 1458.8749017715454,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "da685c50.c0fca"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fe753b01.7a4008",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 838.4896354675293,\r
+        "y": 1493.8751201629639,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "7c874cb1.b7ec64"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "da685c50.c0fca",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create device port rest api\" />\n",\r
+        "comments": "",\r
+        "x": 994.4900436401367,\r
+        "y": 1454.8751277923584,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7c874cb1.b7ec64",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 985.489616394043,\r
+        "y": 1494.8748760223389,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "220d830a.a3737c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "220d830a.a3737c",\r
+        "type": "set",\r
+        "name": "set prop.lan.lanPortId",\r
+        "xml": "<set>\n<parameter name='prop.lan.lanPortId' value='`lanPortResp.success[0].id`' />\n",\r
+        "comments": "",\r
+        "x": 1192.378719329834,\r
+        "y": 1497.208342552185,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1e3434c6.db511b",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode create vpn topology",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-vpn-topology.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn1Id + '/topology'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 598.0000534057617,\r
+        "y": 1630.333706855774,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "dad634fb.8374a8",\r
+                "222fdfc3.31cbd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "222fdfc3.31cbd",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 836.9999675750732,\r
+        "y": 1677.333193898201,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "a113b13a.6f74c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a113b13a.6f74c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1006.999906539917,\r
+        "y": 1680.333193898201,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "66af30b.a74d8d",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create vpn topology failed\" />\n",\r
+        "comments": "",\r
+        "x": 1007.0000286102295,\r
+        "y": 1636.333193898201,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "dad634fb.8374a8",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 839.999906539917,\r
+        "y": 1636.333193898201,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "66af30b.a74d8d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e4f03070.b443a",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode create vpn ",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-vpn.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/vpn'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 559.9984092712402,\r
+        "y": 1561.8328762054443,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "93f9856d.ae6458",\r
+                "98bd094d.9d68c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "98bd094d.9d68c8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 780.99831199646,\r
+        "y": 1583.8328419923782,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "54c36251.c8076c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "54c36251.c8076c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 950.9982509613037,\r
+        "y": 1586.8328419923782,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "719bdb7c.5a10b4",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create vpn failed\" />\n",\r
+        "comments": "",\r
+        "x": 950.9983730316162,\r
+        "y": 1542.8328419923782,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "93f9856d.ae6458",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 783.9982509613037,\r
+        "y": 1542.8328419923782,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "719bdb7c.5a10b4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cdd2e071.957e3",\r
+        "type": "switchNode",\r
+        "name": "switch ActivateSDWANVpnInstance",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSDWANVpnInstance'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1147.0002365112305,\r
+        "y": 848.3332567214966,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "f5335833.4ba238"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2141a4d0.4ed0ac",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 904.3333396911621,\r
+        "y": 777.3333368301392,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "566234f6.d57f8c",\r
+                "cdd2e071.957e3",\r
+                "785db3d8.98fb5c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f5335833.4ba238",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1242.666748046875,\r
+        "y": 922.3333377838135,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "deda6015.73137"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "deda6015.73137",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1456.916633605957,\r
+        "y": 923.8333144187927,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "6ef0c48a.c4e20c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6ef0c48a.c4e20c",\r
+        "type": "switchNode",\r
+        "name": "switch vpn-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'vpn-id'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1703.9166717529297,\r
+        "y": 918.8333973884583,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "45631feb.4e63d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "45631feb.4e63d",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1854.6666259765625,\r
+        "y": 920.3333129882812,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "4fe0c915.7019d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4fe0c915.7019d8",\r
+        "type": "set",\r
+        "name": "set prop.vpn1Id",\r
+        "xml": "<set>\n<parameter name='prop.vpn1Id' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\n",\r
+        "comments": "",\r
+        "x": 2028.6673736572266,\r
+        "y": 920.3333714008331,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "18aa70c2.f51f1f",\r
+        "type": "set",\r
+        "name": "Add sites to list and update length",\r
+        "xml": "<set>\n<parameter name='prop.siteIds[$prop.siteIds_length]' value='`$prop.attach.siteId`' />\n<parameter name='prop.siteIds_length' value='`$prop.siteIds_length + 1`' />\n\n\n\n\n\n\n\n\n\n\n\n\n\n",\r
+        "comments": "",\r
+        "x": 2459.000747680664,\r
+        "y": 826.3333714008331,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "95fdece9.83f56",\r
+        "type": "set",\r
+        "name": "Add site attachement to list and update length",\r
+        "xml": "<set>\n<parameter name='prop.siteAttachements[$prop.siteAttachements_length].siteId' value='`$prop.attach.siteId`' />\n<parameter name='prop.siteAttachements[$prop.siteAttachements_length].roles[0]' value='`$prop.role`' />\n<parameter name='prop.siteAttachements[$prop.siteAttachements_length].roles_length' value='1' />\n<parameter name='prop.siteAttachements_length' value='`$prop.siteAttachements_length + 1`' />\n\n\n\n\n\n\n\n\n\n\n\n\n",\r
+        "comments": "",\r
+        "x": 2490.0006408691406,\r
+        "y": 869.3333377838135,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "11a6133a.d1ed1d",\r
+        "type": "set",\r
+        "name": "set prop.siteAttachement_length=0",\r
+        "xml": "<set>\n<parameter name='prop.siteAttachements_length' value='0' />\n<parameter name='prop.siteIds_length' value='0' />\n\n\n\n",\r
+        "comments": "",\r
+        "x": 576.0000152587891,\r
+        "y": 574.333330154419,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "78c531f9.c452d",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1689.3336715698242,\r
+        "y": 802.3333358764648,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "78502254.1e1d1c",\r
+                "63d66e16.071a8",\r
+                "5671530f.b2ba5c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "63d66e16.071a8",\r
+        "type": "switchNode",\r
+        "name": "switch role",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'role'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1851.666603088379,\r
+        "y": 733.3333349227905,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "5896f487.b2b6fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5896f487.b2b6fc",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2014.6666069030762,\r
+        "y": 728.3333358764648,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "21c68e35.ea4b92"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "21c68e35.ea4b92",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2182.666648864746,\r
+        "y": 722.3333339691162,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "c62b7f98.336c5",\r
+                "2c113cab.56e434",\r
+                "c2240666.9ee948"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2c113cab.56e434",\r
+        "type": "switchNode",\r
+        "name": "switch sd-wan-edge",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value == 'sd-wan-edge'`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2377.666778564453,\r
+        "y": 683.3333253860474,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "ba2b297.cd792d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c62b7f98.336c5",\r
+        "type": "switchNode",\r
+        "name": "switch dsvpn-hub",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'dsvpn-hub'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2374.6668853759766,\r
+        "y": 738.333340883255,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "f4f54567.510e38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8ed96cca.37dc4",\r
+        "type": "set",\r
+        "name": "set spoke role",\r
+        "xml": "<set>\n<parameter name='prop.role' value=\"spoke\" />\n",\r
+        "comments": "",\r
+        "x": 2707.6669006347656,\r
+        "y": 677.3333711624146,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4cf4d59c.e1707c",\r
+        "type": "set",\r
+        "name": "set hub role",\r
+        "xml": "<set>\n<parameter name='prop.role' value=\"hub\" />\n",\r
+        "comments": "",\r
+        "x": 2706.666660308838,\r
+        "y": 732.3333549499512,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ba2b297.cd792d8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2547.666748046875,\r
+        "y": 679,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "8ed96cca.37dc4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f4f54567.510e38",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2551.666748046875,\r
+        "y": 734,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            [\r
+                "4cf4d59c.e1707c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "56401cb0.1f0164",\r
+        "type": "update",\r
+        "name": "update SDWAN VPN status to AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='lan-port-config' \n      key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\n<parameter name='sdwan-vpn-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='operational-status' value='Active' />\n<parameter name='lan-port-config-id' value='`$prop.lan-port-config-id`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 560.0312843322754,\r
+        "y": 1998.031280040741,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ec89c38e.b0db3",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 556.6663017272949,\r
+        "y": 1941.1261107651517,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "233d7734.c6ad18",\r
+        "type": "set",\r
+        "name": "set vf-module-id and vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 590.6663017272949,\r
+        "y": 1892.6261098114774,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6bb3e148.a2b06",\r
+        "type": "set",\r
+        "name": "copy input data in service-data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 554.6662559509277,\r
+        "y": 1844.876064300537,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "307480f2.c3f12",\r
+        "type": "set",\r
+        "name": "set device PortId to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='devicePortId' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.lan.devicePortId`' />\n",\r
+        "comments": "",\r
+        "x": 561.031322479248,\r
+        "y": 1738.0314636230469,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cfe4c928.772628",\r
+        "type": "set",\r
+        "name": "set lan PortId to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='lanPortId' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.lan.lanPortId`' />\n",\r
+        "comments": "",\r
+        "x": 547.0312461853027,\r
+        "y": 1792.0312767028809,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "13d1a87e.cc7dd8",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic21.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"prop.attach.siteId\"/>\n<parameter name=\"field3\" value='`$prop.attach.siteId`'/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2384.0313873291016,\r
+        "y": 914.5312805175781,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c2240666.9ee948",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic22.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"set spoke role\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2353.0313987731934,\r
+        "y": 645.531247138977,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5671530f.b2ba5c",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic23.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"param-name\"/>\n<parameter name=\"field3\" value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name`'/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1847.03125,\r
+        "y": 677.53125,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "785db3d8.98fb5c",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic24.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"request-action\"/>\n<parameter name=\"field3\" value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action`'/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1096.03125,\r
+        "y": 686.53125,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bacdcf2a.07a41",\r
+        "type": "comment",\r
+        "name": "**revert the changes",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1248.0312767028809,\r
+        "y": 683.0312824249268,\r
+        "z": "2f0cf160.dc107e",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-create.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-create.json
new file mode 100644 (file)
index 0000000..b4f838d
--- /dev/null
@@ -0,0 +1,533 @@
+[\r
+    {\r
+        "id": "3d343d97.916e12",\r
+        "type": "method",\r
+        "name": "sdwan-vf-operation-lanport-create",\r
+        "xml": "<method rpc='sdwan-vf-operation-lanport-create' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 285,\r
+        "y": 241.99999237060547,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "72bd87e4.7210f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "72bd87e4.7210f8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 444.99999237060547,\r
+        "y": 374.9999885559082,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "fa08bbfd.f36978",\r
+                "662c5c91.bf14f4",\r
+                "3a8662b6.7187de",\r
+                "d0f313c6.a0ddd",\r
+                "87f25b72.4b1968",\r
+                "c96f1257.64bf8",\r
+                "9ca9880e.f474f8",\r
+                "23949443.ee4acc",\r
+                "64302671.d03c08",\r
+                "305a60f0.cd87a",\r
+                "17d1be09.26b4d2",\r
+                "8ab4415a.f464b",\r
+                "b65f8656.be0f98",\r
+                "8944476b.d5f828"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "78ad706e.d12e1",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 286,\r
+        "y": 141.99999237060547,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "3d343d97.916e12"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7c5370ed.0ab17",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 115.5,\r
+        "y": 53,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "78ad706e.d12e1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa08bbfd.f36978",\r
+        "type": "for",\r
+        "name": "for loop idx - VF input parameters",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 791.2501525878906,\r
+        "y": 357.66665744781494,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "c93f649f.0099c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c93f649f.0099c8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1006.0284957885742,\r
+        "y": 355.22224140167236,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "8f744d78.f7a31",\r
+                "7468dc64.d34424"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8f744d78.f7a31",\r
+        "type": "execute",\r
+        "name": "execute split parameterName",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\n<parameter name=\"regex\" value=\"_\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"param-prefix\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1202.2846984863281,\r
+        "y": 332.97037982940674,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7468dc64.d34424",\r
+        "type": "set",\r
+        "name": "set parameterName",\r
+        "xml": "<set>\n<parameter name=\"`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`\" value='`$param-prefix[$param-prefix_length -1]`'/>\n",\r
+        "comments": "",\r
+        "x": 1171.7291259765625,\r
+        "y": 369.97049617767334,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "143889df.349216",\r
+        "type": "comment",\r
+        "name": "Take the parameter names by removing prefix",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 829.2503547668457,\r
+        "y": 314.3333249092102,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3a8662b6.7187de",\r
+        "type": "set",\r
+        "name": "set new vf-module_length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />",\r
+        "comments": "",\r
+        "x": 770.186767578125,\r
+        "y": 516.1629304885864,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "662c5c91.bf14f4",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n",\r
+        "comments": "",\r
+        "x": 770.1862945556641,\r
+        "y": 462.15421867370605,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "64302671.d03c08",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.lan-vf-index`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\n",\r
+        "comments": "",\r
+        "x": 782.3531112670898,\r
+        "y": 624.3335423469543,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "23949443.ee4acc",\r
+        "type": "execute",\r
+        "name": "execute generate-vf-module-index",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.lan-vf-index\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 794.6866760253906,\r
+        "y": 570.0002617835999,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "305a60f0.cd87a",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 770.500036239624,\r
+        "y": 675.8373885154724,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "17d1be09.26b4d2",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 785.0000953674316,\r
+        "y": 725.837281703949,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8ab4415a.f464b",\r
+        "type": "save",\r
+        "name": "save sdwan lan-port-config resource in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='lan-port-config' \n      key='lan-port-config.lan-port-config-id = $prop.lan-vf-index' >\n<parameter name=\"lan-port-config-id\" value=\"`$prop.vnf-index`\" />\n<parameter name=\"device-id\" value=\"`$prop.lan.deviceName`\" />\n<parameter name=\"port-switch\" value=\"`$prop.lan.portSwitch`\" />\n<parameter name=\"port-type\" value=\"`$prop.lan.portType`\" />\n<parameter name=\"port-number\" value=\"`$prop.lan.portnumber`\" />\n<parameter name=\"ipv4-address\" value=\"`$prop.lan.ipAddress`\" />\n<parameter name='vlan-tag' value=\"`$prop.lan.vlanId`\" />\n<parameter name='operational-status' value='Created' />\n<parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\n<parameter name='selflink' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vf-module-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $service-data.vnfs.vnf[$vnf-index].vnf-id  + '/vnf-data/vf-modules/vf-module/' + $prop.site-vf-index + '/vf-module-data/'` \" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 817.5000152587891,\r
+        "y": 766.3373422622681,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b65f8656.be0f98",\r
+        "type": "save",\r
+        "name": "save service relationship in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf:relationship-list' \n      key='generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-vpn\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-vpns/sdwan-vpn/' + $prop.lan-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"lan-port-config-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.lan-vf-index`\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 785.4999313354492,\r
+        "y": 815.3373589515686,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "8944476b.d5f828",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 736.2224769592285,\r
+        "y": 862.5112180709839,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "87f25b72.4b1968",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 729,\r
+        "y": 165.99999713897705,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "e80313cd.820e4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e80313cd.820e4",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 981.0000915527344,\r
+        "y": 164.6666603088379,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "b80badb7.d9753"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8bc04fc8.d6a11",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1352.6665802001953,\r
+        "y": 166.66666316986084,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b80badb7.d9753",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1199.333408355713,\r
+        "y": 166.66664218902588,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "8bc04fc8.d6a11"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d0f313c6.a0ddd",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 743.4205932617188,\r
+        "y": 121.50386619567871,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "7ab34e25.1cd4e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7ab34e25.1cd4e",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 930.087272644043,\r
+        "y": 120.8371639251709,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "984b3a64.7e1a38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "984b3a64.7e1a38",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",\r
+        "comments": "",\r
+        "x": 1111.7538986206055,\r
+        "y": 120.8371639251709,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c96f1257.64bf8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 784.6705827713013,\r
+        "y": 241.50386714935303,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "ab6c63f4.e55a6",\r
+                "14b85aee.617c65"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ab6c63f4.e55a6",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1015.6705932617188,\r
+        "y": 217.50386428833008,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "342d6918.bdf256"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "14b85aee.617c65",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1015.6705932617188,\r
+        "y": 257.5038642883301,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "eedb45d.e2420b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "342d6918.bdf256",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1158.1705932617188,\r
+        "y": 217.50386428833008,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "eedb45d.e2420b8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1160.0276374816895,\r
+        "y": 257.4403762817383,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "a00dcbbe.533a58",\r
+                "7019e496.422f8c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7019e496.422f8c",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1312.7261123657227,\r
+        "y": 227.05947497440502,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a00dcbbe.533a58",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-index`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1369.1546173095703,\r
+        "y": 280.2816047668457,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "19e6409a.9c554f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f530bc4a.54c5c",\r
+        "type": "comment",\r
+        "name": "make sure this network doesn't exist already",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1592.805347442627,\r
+        "y": 238.53566217422485,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "19e6409a.9c554f",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1644.4403381347656,\r
+        "y": 279.8531074523926,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "24af0b91.ce5344"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "24af0b91.ce5344",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1545.1705360412598,\r
+        "y": 338.4245386123657,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            [\r
+                "bf4e4104.4edb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bf4e4104.4edb",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1692.920639038086,\r
+        "y": 338.28173068119213,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9ca9880e.f474f8",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-lanport-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lanport-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 804.0000152587891,\r
+        "y": 408.99999809265137,\r
+        "z": "be7b9c9c.26b5d",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-deactivate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-deactivate.json
new file mode 100644 (file)
index 0000000..cb28863
--- /dev/null
@@ -0,0 +1,1847 @@
+[\r
+    {\r
+        "id": "3eaead5d.8a50e2",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-lanport-deactivate",\r
+        "xml": "<method rpc='sdwan-vf-operation-lanport-deactivate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 252,\r
+        "y": 208,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "de2de50e.7db098"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba6ca55d.d04268",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 634.0000076293945,\r
+        "y": 359.4136486053467,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "96bd0da6.6b228",\r
+                "d7d04d79.b116e",\r
+                "bcfd0c5e.e6103"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "996651b.9ec83b",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 171.00000381469727,\r
+        "y": 50.413658142089844,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "509643c7.891eac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "509643c7.891eac",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 240.28570556640625,\r
+        "y": 113.65176773071289,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "3eaead5d.8a50e2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "de2de50e.7db098",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 252.6666717529297,\r
+        "y": 464.08036708831787,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "cd5d97be.4098b8",\r
+                "cc768085.ce4bc",\r
+                "ba6ca55d.d04268",\r
+                "582a5dfb.dfaf24",\r
+                "6331828e.70aa2c",\r
+                "60ca269e.96d878",\r
+                "ba5b2145.40753",\r
+                "d3ab3217.7d57a",\r
+                "58afb0e4.ba7df",\r
+                "2ee3209f.a1bb9",\r
+                "bfac8597.a517f8",\r
+                "b282b047.e838d",\r
+                "89ba2ad0.277798",\r
+                "e99d476c.3f3ac8",\r
+                "81163bc0.74e178",\r
+                "e8785c39.cc512",\r
+                "86da8112.f0417",\r
+                "2b5c8466.72828c",\r
+                "6c0bf23f.5303ac",\r
+                "16e6f83a.5e7ff8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cc768085.ce4bc",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 578.0313873291016,\r
+        "y": 287.6828079223633,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "9776f320.0567"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cd5d97be.4098b8",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 589.0000190734863,\r
+        "y": 226.41366863250732,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "2debc059.5aa7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2debc059.5aa7",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 769,\r
+        "y": 225.41365814208984,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "355351ee.f9153e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "355351ee.f9153e",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 918.4287261962891,\r
+        "y": 226.55657577514648,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9776f320.0567",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 807.0000152587891,\r
+        "y": 288.4136643409729,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "f97986b6.bf7158"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f97986b6.bf7158",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1022,\r
+        "y": 286.41365814208984,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "926d8df9.33314"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "926d8df9.33314",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1186,\r
+        "y": 281.41365814208984,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d7d04d79.b116e",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 856,\r
+        "y": 393.41365814208984,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "511ce89.f44bb18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "96bd0da6.6b228",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 860.9999961853027,\r
+        "y": 340.4136571884155,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "511ce89.f44bb18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "511ce89.f44bb18",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1019,\r
+        "y": 353.41365814208984,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bcfd0c5e.e6103",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 856,\r
+        "y": 454.41365814208984,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "b8a34756.728a58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "af4bd42d.9f4868",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1210.000015258789,\r
+        "y": 452.4136720895767,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b8a34756.728a58",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1017.0000457763672,\r
+        "y": 451.413649559021,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "af4bd42d.9f4868",\r
+                "69a184fd.28972c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "69a184fd.28972c",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1229.0000305175781,\r
+        "y": 501.41367053985596,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "72e39d48.4f8944"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "72e39d48.4f8944",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1472,\r
+        "y": 500.41365814208984,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "5f38c3e.5d3ce3c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5f38c3e.5d3ce3c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1670.0000286102295,\r
+        "y": 487.41366481781006,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "92d909cb.ff6d68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "92d909cb.ff6d68",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1822,\r
+        "y": 489.41365814208984,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "4dec85b6.3eab5c",\r
+                "e85d666e.e8adc8",\r
+                "15a9af4c.a7f031"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4dec85b6.3eab5c",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2050.000114440918,\r
+        "y": 431.4136619567871,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e85d666e.e8adc8",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2054.000114440918,\r
+        "y": 485.4136619567871,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "582a5dfb.dfaf24",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 553.0002136230469,\r
+        "y": 1926.9149341583252,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "15a9af4c.a7f031",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-lanport-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lanport-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2084.4551391601562,\r
+        "y": 536.4241542816162,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "1adddcaf.a133d3",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='vfidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 891.2540740966797,\r
+        "y": 541.4176807403564,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "8d8ac8b6.f23b18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cc689d86.6d6b1",\r
+        "type": "switchNode",\r
+        "name": "switch this deviceName == vf-input",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value == '$prop.lan.deviceName'`\">\n    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1164.2543182373047,\r
+        "y": 627.417786359787,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "ec201f5b.98b55"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8d8ac8b6.f23b18",\r
+        "type": "for",\r
+        "name": "for vf-module-input-param length",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1189.2539901733398,\r
+        "y": 544.4177227020264,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "cc689d86.6d6b1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ec201f5b.98b55",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1378.2541313171387,\r
+        "y": 624.4177711009979,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "137ad5db.05e33a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "42b7ec46.f75e94",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1767.254322052002,\r
+        "y": 621.4179258346558,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "6fa7e982.f0f398"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6fa7e982.f0f398",\r
+        "type": "switchNode",\r
+        "name": "switch deviceId == input vf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'deviceId'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2059.2542114257812,\r
+        "y": 622.4178848266602,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "a93d7d08.b19f3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a93d7d08.b19f3",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2258.254379272461,\r
+        "y": 620.4178848266602,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "8ce50095.7309f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8ce50095.7309f",\r
+        "type": "set",\r
+        "name": "set prop.lan.deviceId",\r
+        "xml": "<set>\n<parameter name='prop.lan.deviceId' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\n",\r
+        "comments": "",\r
+        "x": 2431.254383087158,\r
+        "y": 620.4179258346558,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6331828e.70aa2c",\r
+        "type": "for",\r
+        "name": "for service-data.vnfs.vnf_length",\r
+        "xml": "<for index='vnfidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 637.2539215087891,\r
+        "y": 476.4176778793335,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "1adddcaf.a133d3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "125425fb.ef4bfa",\r
+        "type": "switchNode",\r
+        "name": "switch ActivateSDWANSiteInstance",\r
+        "xml": "<!--switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSDWANSiteInstance'`\"-->\n<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSiteInstance'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1232.0042877197266,\r
+        "y": 748.417646408081,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "7336ac27.633e24"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "38f21693.f6208a",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='vfidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 765.0041732788086,\r
+        "y": 819.4176635742188,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "e28cdf4a.09f99"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "58afb0e4.ba7df",\r
+        "type": "for",\r
+        "name": "for service-data.vnfs.vnf_length",\r
+        "xml": "<for index='vnfidx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 629.0039825439453,\r
+        "y": 646.4175662994385,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "74d2892.3a20c78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7336ac27.633e24",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1454.0042037963867,\r
+        "y": 748.4177279472351,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "6d31748d.e3c9bc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6d31748d.e3c9bc",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1535.2542114257812,\r
+        "y": 822.9177293777466,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "7cb6a87.6e3f758"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1008121d.0f833e",\r
+        "type": "switchNode",\r
+        "name": "switch siteId",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'siteId'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1918.2545700073242,\r
+        "y": 829.9178366661072,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "7c572003.6098f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7c572003.6098f",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2095.2545890808105,\r
+        "y": 832.9176769256592,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "8daf5324.de268"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "63cd961f.c156c8",\r
+        "type": "set",\r
+        "name": "set prop.attach.siteId",\r
+        "xml": "<set>\n<parameter name='prop.attach.siteId' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\n",\r
+        "comments": "",\r
+        "x": 2479.255096435547,\r
+        "y": 806.9177284240723,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8daf5324.de268",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2254.504779815674,\r
+        "y": 828.4177169799805,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "63cd961f.c156c8",\r
+                "4f58a0f5.56037",\r
+                "975b7faf.1862a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "89ba2ad0.277798",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 590.0039291381836,\r
+        "y": 965.9176549911499,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "2d233c53.3f6be4",\r
+                "f1938aaa.240958",\r
+                "46bd4734.d48208"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2d233c53.3f6be4",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 834.0039901733398,\r
+        "y": 929.9176549911499,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "157032ce.bbb88d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f1938aaa.240958",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 836.494873046875,\r
+        "y": 965.4916915893555,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "4af9366b.00d608"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46bd4734.d48208",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 831.827880859375,\r
+        "y": 1001.8250503540039,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "3961a91d.651c56"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3961a91d.651c56",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 985.6003723144531,\r
+        "y": 999.2641372680664,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4af9366b.00d608",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 982.0662689208984,\r
+        "y": 963.7773790359497,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "157032ce.bbb88d",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 994.5041007995605,\r
+        "y": 927.917594909668,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e99d476c.3f3ac8",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 603.9421615600586,\r
+        "y": 1069.03874874115,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "e801e029.f1d5a",\r
+                "8d93013.82561"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e801e029.f1d5a",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 838.9422874450684,\r
+        "y": 1055.038737297058,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "aaae6df9.4c056"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8d93013.82561",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 838.1922874450684,\r
+        "y": 1090.6816444396973,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "5e0c2f7e.4b122"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5e0c2f7e.4b122",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing get token rest api\" />\n",\r
+        "comments": "",\r
+        "x": 986.9422950744629,\r
+        "y": 1091.4317264556885,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "aaae6df9.4c056",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 980.9422950744629,\r
+        "y": 1054.0387382507324,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e8785c39.cc512",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode device port delete",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdlan-port-del.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports/action/batch-delete'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"portResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 630.0312576293945,\r
+        "y": 1220.4918870925903,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "552b4230.a57a2c",\r
+                "a21ab43e.f1ce68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "552b4230.a57a2c",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 879.0313167572021,\r
+        "y": 1234.4920930862427,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "d1a4e04e.60501"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a21ab43e.f1ce68",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 879.0313167572021,\r
+        "y": 1196.491928577423,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "54a6d547.da0aec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "54a6d547.da0aec",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create device port rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1023.0316505432129,\r
+        "y": 1195.491928100586,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d1a4e04e.60501",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1026.031328201294,\r
+        "y": 1235.4919319152832,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c5c8c91e.ca8b48",\r
+        "type": "comment",\r
+        "name": "Delete port",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 531.6971969604492,\r
+        "y": 1186.9359111785889,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "81163bc0.74e178",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 578.6971969604492,\r
+        "y": 1135.6023473739624,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a939bddc.25a0a",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode bridge domain create",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdlan-bridge-domain.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/bridge-domains'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"bridgeDomainResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1052.6815071105957,\r
+        "y": 1315.6025159358978,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "991e6562.cad008",\r
+                "a675752c.fef5c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "991e6562.cad008",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1373.6815338134766,\r
+        "y": 1332.6028363704681,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "fb3cfb9f.764a18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a675752c.fef5c8",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1376.6815605163574,\r
+        "y": 1297.6026179790497,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "92f1575b.a1bfb8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "92f1575b.a1bfb8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create bridge domain rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1579.6819496154785,\r
+        "y": 1293.6027252674103,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fb3cfb9f.764a18",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1580.6815147399902,\r
+        "y": 1328.602591753006,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d50d1b79.abf9a8",\r
+        "type": "comment",\r
+        "name": "Create bridge domain",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 996.3474006652832,\r
+        "y": 1282.0467417240143,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "60ca269e.96d878",\r
+        "type": "switchNode",\r
+        "name": "switch portSwitch",\r
+        "xml": "<switch test=\"`$prop.lan.portSwitch == 'layer2-port'`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 561.4590759277344,\r
+        "y": 1331.2692050933838,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "13b85938.8b9cd7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "13b85938.8b9cd7",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 749.4590034484863,\r
+        "y": 1329.3805322647095,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "a939bddc.25a0a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba5b2145.40753",\r
+        "type": "execute",\r
+        "name": "execute split ip and mask",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$prop.lan.ipAddress`'/>\n<parameter name=\"regex\" value=\"/\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"ipandMask\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 577.0039672851562,\r
+        "y": 1417.1676979064941,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "575235a2.fb9bbc",\r
+                "3c20212c.49fade"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3c20212c.49fade",\r
+        "type": "failure",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 778.0039863586426,\r
+        "y": 1395.1676893234253,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "bdf015ad.4678f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "575235a2.fb9bbc",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 778.0039901733398,\r
+        "y": 1436.1676931381226,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "133c89f4.2a7c76"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bdf015ad.4678f8",\r
+        "type": "set",\r
+        "name": "set ipAddress prefixLength",\r
+        "xml": "<set>\n<parameter name='prop.lan.ip-address' value='`$ipandMask[0]`' />\n<parameter name='prop.lan.prefixLength' value='`$ipandMask[1]`' />",\r
+        "comments": "",\r
+        "x": 975.0040054321289,\r
+        "y": 1393.1676893234253,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "133c89f4.2a7c76",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value=\"An error occured while splitting sna1_route\" />\n",\r
+        "comments": "",\r
+        "x": 933.0039978027344,\r
+        "y": 1433.1676921844482,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "372eb63a.83ff6a",\r
+        "type": "comment",\r
+        "name": "TODO: split ip/mask",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 974.0136375427246,\r
+        "y": 1355.3479614257812,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "86da8112.f0417",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode IPSubnets delete",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdlan-ip-subnets-del.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/ip-subnets/action/batch-delete'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"lanPortResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 635.7753372192383,\r
+        "y": 1493.2885875701904,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "15bd3770.c63fa9",\r
+                "248a192b.d86396"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "248a192b.d86396",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 904.7753677368164,\r
+        "y": 1480.2885599136353,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "616ee6f.3d9a718"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "15bd3770.c63fa9",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 901.7753410339355,\r
+        "y": 1515.2887783050537,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "40c5dea7.9b57"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "616ee6f.3d9a718",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create device port rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1057.775749206543,\r
+        "y": 1476.2887859344482,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "40c5dea7.9b57",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1048.7753219604492,\r
+        "y": 1516.2885341644287,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "339192eb.51711e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "339192eb.51711e",\r
+        "type": "set",\r
+        "name": "set prop.lan.lanPortId",\r
+        "xml": "<set>\n<parameter name='prop.lan.lanPortId' value='`lanPortResp.success[0].id`' />\n",\r
+        "comments": "",\r
+        "x": 1255.6644248962402,\r
+        "y": 1518.622000694275,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6c0bf23f.5303ac",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode create vpn topology",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-vpn-topology.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn1Id + '/topology'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 652.2857360839844,\r
+        "y": 1651.7474851608276,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "6503000e.7fe09",\r
+                "f95d774d.951318"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f95d774d.951318",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 898.2856712341309,\r
+        "y": 1687.7468357086182,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "1f602715.4e71b9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1f602715.4e71b9",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1070.2856121063232,\r
+        "y": 1701.7468520402908,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7c916735.dbf778",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create vpn topology failed\" />\n",\r
+        "comments": "",\r
+        "x": 1070.2857341766357,\r
+        "y": 1657.7468520402908,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6503000e.7fe09",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 902.2855892181396,\r
+        "y": 1645.7468347549438,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "7c916735.dbf778"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2b5c8466.72828c",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode create vpn ",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-vpn.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/vpn'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"put\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 619.2841186523438,\r
+        "y": 1585.246587753296,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "593d6e8d.d4036",\r
+                "22423ed9.18f8e2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "22423ed9.18f8e2",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 844.2840175628662,\r
+        "y": 1605.246500134468,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "b88f4563.6b6768"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b88f4563.6b6768",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1014.28395652771,\r
+        "y": 1608.246500134468,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a724847c.2c4088",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create vpn failed\" />\n",\r
+        "comments": "",\r
+        "x": 1014.2840785980225,\r
+        "y": 1564.246500134468,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "593d6e8d.d4036",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 847.28395652771,\r
+        "y": 1564.246500134468,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "a724847c.2c4088"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1f47d1c3.9d407e",\r
+        "type": "switchNode",\r
+        "name": "switch ActivateSDWANVpnInstance",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSDWANVpnInstance'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1210.2859420776367,\r
+        "y": 869.7469148635864,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "6200b940.359218"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e28cdf4a.09f99",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 967.6190452575684,\r
+        "y": 798.746994972229,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "125425fb.ef4bfa",\r
+                "1f47d1c3.9d407e",\r
+                "712ec051.8d2a6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6200b940.359218",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1305.9524536132812,\r
+        "y": 943.7469959259033,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "309bb160.fe92de"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "309bb160.fe92de",\r
+        "type": "for",\r
+        "name": "for vf-modules.vf-module_length",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1520.2023391723633,\r
+        "y": 945.2469725608826,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "1ac88e91.8c9681"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1ac88e91.8c9681",\r
+        "type": "switchNode",\r
+        "name": "switch vpn-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'vpn-id'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1767.202377319336,\r
+        "y": 940.2470555305481,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "3a5e3420.dfdfbc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3a5e3420.dfdfbc",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1917.9523315429688,\r
+        "y": 941.7469711303711,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "f542060.75c12f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f542060.75c12f8",\r
+        "type": "set",\r
+        "name": "set prop.vpn1Id",\r
+        "xml": "<set>\n<parameter name='prop.vpn1Id' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\n",\r
+        "comments": "",\r
+        "x": 2091.953079223633,\r
+        "y": 941.747029542923,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4f58a0f5.56037",\r
+        "type": "set",\r
+        "name": "Add sites to list and update length",\r
+        "xml": "<set>\n<parameter name='prop.siteIds[$prop.siteIds_length]' value='`$prop.attach.siteId`' />\n<parameter name='prop.siteIds_length' value='`$prop.siteIds_length + 1`' />\n\n\n\n\n\n\n\n\n\n\n\n\n\n",\r
+        "comments": "",\r
+        "x": 2522.2864532470703,\r
+        "y": 847.747029542923,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "975b7faf.1862a",\r
+        "type": "set",\r
+        "name": "Add site attachement to list and update length",\r
+        "xml": "<set>\n<parameter name='prop.siteAttachements[$prop.siteAttachements_length].siteId' value='`$prop.attach.siteId`' />\n<parameter name='prop.siteAttachements[$prop.siteAttachements_length].roles[0]' value='`$prop.role`' />\n<parameter name='prop.siteAttachements[$prop.siteAttachements_length].roles_length' value='1' />\n<parameter name='prop.siteAttachements_length' value='`$prop.siteAttachements_length + 1`' />\n\n\n\n\n\n\n\n\n\n\n\n\n",\r
+        "comments": "",\r
+        "x": 2553.286346435547,\r
+        "y": 890.7469959259033,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d3ab3217.7d57a",\r
+        "type": "set",\r
+        "name": "set prop.siteAttachement_length=0",\r
+        "xml": "<set>\n<parameter name='prop.siteAttachements_length' value='0' />\n<parameter name='prop.siteIds_length' value='0' />\n\n\n\n",\r
+        "comments": "",\r
+        "x": 639.2857208251953,\r
+        "y": 595.7469882965088,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7cb6a87.6e3f758",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1752.6193771362305,\r
+        "y": 823.7469940185547,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "1008121d.0f833e",\r
+                "38f1f3d9.ea90fc",\r
+                "65c7e0ab.e924d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "38f1f3d9.ea90fc",\r
+        "type": "switchNode",\r
+        "name": "switch role",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'role'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1914.9523086547852,\r
+        "y": 754.7469930648804,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "e4b2cfb7.2be02"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e4b2cfb7.2be02",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2077.9523124694824,\r
+        "y": 749.7469940185547,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "cbd09e2f.5bc81"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cbd09e2f.5bc81",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2245.9523544311523,\r
+        "y": 743.746992111206,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "3c601cb.4b2f2e4",\r
+                "2d319605.7a6e9a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2d319605.7a6e9a",\r
+        "type": "switchNode",\r
+        "name": "switch sd-wan-edge",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value == 'sd-wan-edge'`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2440.9524841308594,\r
+        "y": 704.7469835281372,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "bb6dcfdd.128fa"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3c601cb.4b2f2e4",\r
+        "type": "switchNode",\r
+        "name": "switch dsvpn-hub",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'dsvpn-hub'`\">\n    \n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2437.952590942383,\r
+        "y": 759.7469990253448,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "b131819c.daa97"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "91128780.38fd08",\r
+        "type": "set",\r
+        "name": "set spoke role",\r
+        "xml": "<set>\n<parameter name='prop.role' value=\"spoke\" />\n",\r
+        "comments": "",\r
+        "x": 2770.952606201172,\r
+        "y": 698.7470293045044,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c4199cad.d68d",\r
+        "type": "set",\r
+        "name": "set hub role",\r
+        "xml": "<set>\n<parameter name='prop.role' value=\"hub\" />\n",\r
+        "comments": "",\r
+        "x": 2769.952365875244,\r
+        "y": 753.747013092041,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bb6dcfdd.128fa",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2610.9524536132812,\r
+        "y": 700.4136581420898,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "91128780.38fd08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b131819c.daa97",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2614.9524536132812,\r
+        "y": 755.4136581420898,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "c4199cad.d68d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "16e6f83a.5e7ff8",\r
+        "type": "update",\r
+        "name": "update SDWAN VPN status to AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='lan-port-config' \n      key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\n<parameter name='sdwan-vpn-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='operational-status' value='PendingDelete' />\n<parameter name='lan-port-config-id' value='`$prop.lan-port-config-id`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 617.3170700073242,\r
+        "y": 1867.4452047348022,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "65c7e0ab.e924d",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic23.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"param-name\"/>\n<parameter name=\"field3\" value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name`'/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1910.3169555664062,\r
+        "y": 698.9449081420898,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "712ec051.8d2a6",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic24.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"request-action\"/>\n<parameter name=\"field3\" value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action`'/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1153.3171730041504,\r
+        "y": 699.9450273513794,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "500d4c8a.78bee4",\r
+        "type": "comment",\r
+        "name": "**revert the changes",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1311.316982269287,\r
+        "y": 704.4449405670166,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "137ad5db.05e33a",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1536.3333740234375,\r
+        "y": 621.6667051315308,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "42b7ec46.f75e94",\r
+                "5c976c54.43c564"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5c976c54.43c564",\r
+        "type": "set",\r
+        "name": "set prop.vnf-id",\r
+        "xml": "<set>\n<parameter name='prop.vnf-id' value='`$service-data.vnfs.vnf[$vnfidx].vnf-id`' />\n\n",\r
+        "comments": "",\r
+        "x": 1728.0000495910645,\r
+        "y": 551.6666831970215,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "74d2892.3a20c78",\r
+        "type": "switchNode",\r
+        "name": "switch prop.vnf-id match",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnfidx].vnf-id == $prop.vnf-id`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 886.0003509521484,\r
+        "y": 673.0000200271606,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "cfdd9f28.400e6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cfdd9f28.400e6",\r
+        "type": "outcomeFalse",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 674.0005035400391,\r
+        "y": 748.0000233650208,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": [\r
+            [\r
+                "38f21693.f6208a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fef5106c.cc924",\r
+        "type": "comment",\r
+        "name": "if device-name match with the incomming device-name,  sites in this service vnf should not be included",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 749.0000915527344,\r
+        "y": 845.0000410079956,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2ee3209f.a1bb9",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 605.0000915527344,\r
+        "y": 1719.6667194366455,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bfac8597.a517f8",\r
+        "type": "set",\r
+        "name": "set vf-module-id and vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 639.3032913208008,\r
+        "y": 1763.4698286056519,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b282b047.e838d",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 606.3033180236816,\r
+        "y": 1816.4698705673218,\r
+        "z": "2a0755d2.04892a",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-delete.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-delete.json
new file mode 100644 (file)
index 0000000..012deec
--- /dev/null
@@ -0,0 +1,686 @@
+[\r
+    {\r
+        "id": "a54d86da.b0b4c8",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-lanport-delete",\r
+        "xml": "<method rpc='sdwan-vf-operation-lanport-delete' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 234.00000762939453,\r
+        "y": 230.00012350082397,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "4d4d77e8.c38938"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "db831233.33e69",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 222.28571319580078,\r
+        "y": 130.65188121795654,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "a54d86da.b0b4c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "62c65238.af2cac",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 143.00000762939453,\r
+        "y": 68.4137716293335,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "db831233.33e69"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4d4d77e8.c38938",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 250.66670989990234,\r
+        "y": 459.080491065979,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "26d66719.d43da8",\r
+                "e7e6cf90.f4145",\r
+                "2040df5d.c513d",\r
+                "58084a37.394334",\r
+                "8cf55d8b.9b86e",\r
+                "6f98bfc7.8211a",\r
+                "b57e1a43.a54548",\r
+                "9d1a9cea.dd56",\r
+                "49881624.abb0c8",\r
+                "c5683ab4.530598",\r
+                "d5b959e7.7e0cc8",\r
+                "d3e08866.ee2d18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e7e6cf90.f4145",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 566.0313720703125,\r
+        "y": 304.6829128265381,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "7275fe1.35167"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "26d66719.d43da8",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 571.0000267028809,\r
+        "y": 243.41378211975098,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "4f7f751d.4ffa8c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4f7f751d.4ffa8c",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 751.0000076293945,\r
+        "y": 242.4137716293335,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "b8464fa4.268c7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b8464fa4.268c7",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 900.4287338256836,\r
+        "y": 243.55668926239014,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7275fe1.35167",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 789.0000228881836,\r
+        "y": 305.41377782821655,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "2f21af21.529ff"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2f21af21.529ff",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1004.0000076293945,\r
+        "y": 303.4137716293335,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "a1139d12.89e01"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a1139d12.89e01",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1168.0000076293945,\r
+        "y": 298.4137716293335,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2040df5d.c513d",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 637.0000419616699,\r
+        "y": 381.4137964248657,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "6da138cf.958678",\r
+                "2a607157.3c86fe",\r
+                "9b455cd1.ad8b9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2a607157.3c86fe",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 859.0000343322754,\r
+        "y": 415.4138059616089,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "9e4075b3.63ff28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6da138cf.958678",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 864.0000305175781,\r
+        "y": 362.41380500793457,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "9e4075b3.63ff28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9e4075b3.63ff28",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1022.0000343322754,\r
+        "y": 375.4138059616089,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9b455cd1.ad8b9",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 859.0000343322754,\r
+        "y": 476.4138059616089,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "76d683a5.eebfec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f214675.09ba1a",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1213.0000495910645,\r
+        "y": 474.41381990909576,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "76d683a5.eebfec",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1020.0000801086426,\r
+        "y": 473.41379737854004,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "3f214675.09ba1a",\r
+                "42fcda16.d37964"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "42fcda16.d37964",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1232.0000190734863,\r
+        "y": 527.4137964248657,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "9de7c553.fd25f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9de7c553.fd25f8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1503.0000381469727,\r
+        "y": 528.4138336181641,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "f61f0e52.12de6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f61f0e52.12de6",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1716.0001621246338,\r
+        "y": 515.4138031005859,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "cf9e9748.fd3478"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cf9e9748.fd3478",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1868.0001335144043,\r
+        "y": 517.4137964248657,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "1f23fa4e.25db46",\r
+                "5446fb0a.a3b5a4",\r
+                "71d1f1bd.544fb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1f23fa4e.25db46",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2090.0001335144043,\r
+        "y": 513.4137964248657,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5446fb0a.a3b5a4",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2096.0001335144043,\r
+        "y": 562.4137964248657,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "71d1f1bd.544fb",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-lan-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lan-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2124.0003547668457,\r
+        "y": 610.4138021469116,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "58084a37.394334",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.vidx ",\r
+        "xml": "<switch test=\"`$tmp.vidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 576.0312538146973,\r
+        "y": 554.4298791885376,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "a8fd4f02.a0c39"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a8fd4f02.a0c39",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 723.4598960876465,\r
+        "y": 554.0012893676758,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "e19c0822.f14e78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e19c0822.f14e78",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 872.8886222839355,\r
+        "y": 555.1442070007324,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8cf55d8b.9b86e",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 620.3294143676758,\r
+        "y": 624.7470846176147,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "56dc0c78.140284",\r
+                "7bad1343.8cb25c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "56dc0c78.140284",\r
+        "type": "outcome",\r
+        "name": "outcome PendingDelete",\r
+        "xml": "<outcome value='PendingDelete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 911.1626815795898,\r
+        "y": 628.8582077026367,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "27edf28.129770e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7bad1343.8cb25c",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 878.1628189086914,\r
+        "y": 680.8582603931427,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "ea590f8e.65b32"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ea590f8e.65b32",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`\" />",\r
+        "comments": "",\r
+        "x": 1037.6625862121582,\r
+        "y": 683.8582594394684,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "27edf28.129770e",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1108.469081878662,\r
+        "y": 639.1833620071411,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9d1a9cea.dd56",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 591.4406318664551,\r
+        "y": 1071.635935306549,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c5683ab4.530598",\r
+        "type": "set",\r
+        "name": "set prop.vnfNewidx",\r
+        "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`0`' />\n",\r
+        "comments": "",\r
+        "x": 598.5272789001465,\r
+        "y": 695.7472534179688,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "49881624.abb0c8",\r
+        "type": "for",\r
+        "name": "for lidx..service-data.vf-modules.vf-module[]",\r
+        "xml": "<for index='lidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 674.5271987915039,\r
+        "y": 749.7471284866333,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "3538a71e.fcff88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6f98bfc7.8211a",\r
+        "type": "set",\r
+        "name": "set new vnf length",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length\" value='`$prop.vnfidxLen`'/>\n\n\t\n",\r
+        "comments": "",\r
+        "x": 598.6285705566406,\r
+        "y": 802.5513463020325,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d5b959e7.7e0cc8",\r
+        "type": "set",\r
+        "name": "Remove vnf from ServiceData",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].\" value=\"\"/>\n",\r
+        "comments": "",\r
+        "x": 639.5272369384766,\r
+        "y": 849.7472591400146,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3538a71e.fcff88",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 934.5271892547607,\r
+        "y": 756.7469882965088,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "10631fee.66247"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d3e08866.ee2d18",\r
+        "type": "delete",\r
+        "name": "delete lanport vf instance configuration in AAI",\r
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource='lan-port-config' \n        key='site-resource.site-resource-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 673.5276069641113,\r
+        "y": 1019.008641242981,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "10631fee.66247",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lidx].vf-module-data.vf-module-information.vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1120.527256011963,\r
+        "y": 756.7471489906311,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "5f2f4339.fa3b9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5f2f4339.fa3b9c",\r
+        "type": "outcomeFalse",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1289.5272636413574,\r
+        "y": 755.7469863891602,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "282bbccf.a76394"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "282bbccf.a76394",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1443.527102470398,\r
+        "y": 747.7469873428345,\r
+        "z": "1f04287d.306418",\r
+        "wires": [\r
+            [\r
+                "15dd9ec6.9cd7d1",\r
+                "810eaf7a.70186"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "15dd9ec6.9cd7d1",\r
+        "type": "set",\r
+        "name": "set  vnf data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 1608.5271978378296,\r
+        "y": 722.747142791748,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "810eaf7a.70186",\r
+        "type": "set",\r
+        "name": "set prop.vnfNewidx",\r
+        "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\n",\r
+        "comments": "",\r
+        "x": 1630.5271978378296,\r
+        "y": 778.747106552124,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b57e1a43.a54548",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 615.3294677734375,\r
+        "y": 966.0804300308228,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "eeeb55b5.4909d8",\r
+        "type": "set",\r
+        "name": "Remove vnf from ServiceData",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].\" value=\"\"/>\n",\r
+        "comments": "",\r
+        "x": 629.3333129882812,\r
+        "y": 900,\r
+        "z": "1f04287d.306418",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-activate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-activate.json
new file mode 100644 (file)
index 0000000..8744128
--- /dev/null
@@ -0,0 +1,1231 @@
+[\r
+    {\r
+        "id": "a0039ac7.2c7d88",\r
+        "type": "method",\r
+        "name": "sdwan-vf-operation-site-activate",\r
+        "xml": "<method rpc='sdwan-vf-operation-site-activate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 265.00390625,\r
+        "y": 238.9999939496629,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "c22d3a60.7ddaa8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "27e9fc06.1c68a4",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 266.00390625,\r
+        "y": 138.9999939496629,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "a0039ac7.2c7d88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d5e4bca4.474e7",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 107.50391006469727,\r
+        "y": 52.999998688697815,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "27e9fc06.1c68a4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c22d3a60.7ddaa8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 321.00390625,\r
+        "y": 394.9999939496629,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "f1b7432.96d6cc",\r
+                "4d30068b.cb8248",\r
+                "a5fa8ed1.f351a",\r
+                "81999ef9.7a265",\r
+                "9e668e87.35152",\r
+                "c78d235f.ab387",\r
+                "887e324d.70c37",\r
+                "bbecde3.6ca5b2",\r
+                "4023f188.867be",\r
+                "536ee31e.2dbb9c",\r
+                "8570b81.0d01d48",\r
+                "a5bc4e1c.1202d",\r
+                "d5f9133b.45a0f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f1b7432.96d6cc",\r
+        "type": "set",\r
+        "name": "set prop.site.sdwan false",\r
+        "xml": "<set>\n<parameter name='prop.site.sdwan' value=\"false\" />\n\n",\r
+        "comments": "",\r
+        "x": 712.5078086853027,\r
+        "y": 178.0039163827896,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a5fa8ed1.f351a",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 674.0078315734863,\r
+        "y": 296.00391483306885,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "35074f40.98b9b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "35074f40.98b9b",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 927.0079040527344,\r
+        "y": 287.67056906223297,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "501cda7c.262744"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "58a08191.616f9",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1298.6743927001953,\r
+        "y": 289.6705719232559,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "501cda7c.262744",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1145.341220855713,\r
+        "y": 289.67055094242096,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "58a08191.616f9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4d30068b.cb8248",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 689.4284057617188,\r
+        "y": 244.5077749490738,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "7bd5f4ce.76777c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7bd5f4ce.76777c",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 876.095085144043,\r
+        "y": 243.84107267856598,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "7b0f629c.5a07fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7b0f629c.5a07fc",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",\r
+        "comments": "",\r
+        "x": 1057.7617111206055,\r
+        "y": 243.84107267856598,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a81de15.ac0e82",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1328.0078201293945,\r
+        "y": 459.0038963262923,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "7b05dd5f.af6d94"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "25ac2ea9.1fa992",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1603.2935409545898,\r
+        "y": 458.5753990118392,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "ac802e50.23445"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "50990900.1946a8",\r
+        "type": "set",\r
+        "name": "set vf-module-length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1314.579444885254,\r
+        "y": 422.781782746315,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "39f64e9a.4cae32",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1118.8808403015137,\r
+        "y": 436.1626678411849,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "a81de15.ac0e82",\r
+                "50990900.1946a8",\r
+                "6433e94c.b18f68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c412715b.35f49",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 974.523796081543,\r
+        "y": 436.2261558477767,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "39f64e9a.4cae32"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "81999ef9.7a265",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 738.523777961731,\r
+        "y": 363.22616827487946,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "c412715b.35f49",\r
+                "c7523305.ecaa5",\r
+                "87107744.973288"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c7523305.ecaa5",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 980.0078144073486,\r
+        "y": 335.0038973093033,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "c77fefd.df0431"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "87107744.973288",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 982.0390033721924,\r
+        "y": 372.03520834445953,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "c77fefd.df0431"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c77fefd.df0431",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-operation-input.vf-module-request-input.vf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1139.8165187835693,\r
+        "y": 352.9241567850113,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ac802e50.23445",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1807.0077819824219,\r
+        "y": 457.003905415535,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "62b8a185.3b8a2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "62b8a185.3b8a2",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1977.3510780334473,\r
+        "y": 461.0900408029556,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "d0800c3d.a149d",\r
+                "c55d54ef.05e398",\r
+                "934abf0d.9c8f4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d0800c3d.a149d",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2219.2377700805664,\r
+        "y": 431.43245470523834,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c55d54ef.05e398",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2222.6840286254883,\r
+        "y": 476.0900937318802,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "934abf0d.9c8f4",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-site-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-site-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2252.324935913086,\r
+        "y": 519.5395450592041,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e56ea967.0d64a8",\r
+        "type": "switchNode",\r
+        "name": "switch ActivateSDWANDeviceInstance",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`\">\n    ",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1635.5079193115234,\r
+        "y": 525.0039278268814,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "7a4ace3.f95e93"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a4ace3.f95e93",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1864.507667541504,\r
+        "y": 524.0039049386978,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "7ca1b13d.5aea"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7ca1b13d.5aea",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1819.920581817627,\r
+        "y": 586.0000458955765,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "3b148280.e830fe"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b148280.e830fe",\r
+        "type": "for",\r
+        "name": "for loop deviceidx - Get deviceId from servicedata",\r
+        "xml": "<for index=\"deviceidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2101.2543354034424,\r
+        "y": 596.0000663995743,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "c30dfd09.aeccc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c30dfd09.aeccc",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2217.254119873047,\r
+        "y": 647.0002518892288,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "81c39ef4.3376e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "81c39ef4.3376e",\r
+        "type": "switchNode",\r
+        "name": "switch deviceId",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].name == 'deviceId'`\">\n    ",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2377.2543754577637,\r
+        "y": 649.0001050233841,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "52222e22.86b7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "52222e22.86b7",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2529.2545471191406,\r
+        "y": 648.0001050233841,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "86b2a0ab.20409"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "86b2a0ab.20409",\r
+        "type": "set",\r
+        "name": "set deviceId",\r
+        "xml": "<set>\n<parameter name='prop.site.deviceId[$prop.site.deviceId_length]' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].value`' />\n<parameter name='prop.site.deviceId_length' value='`$prop.site.deviceId_length + 1`' />\n",\r
+        "comments": "",\r
+        "x": 2669.254550933838,\r
+        "y": 647.6000596284866,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7b05dd5f.af6d94",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1390.5078125,\r
+        "y": 504.00390589237213,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "25ac2ea9.1fa992",\r
+                "e56ea967.0d64a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b93cb489.5e32b8",\r
+        "type": "comment",\r
+        "name": "Get devices",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1627.5078125,\r
+        "y": 495.00390589237213,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6433e94c.b18f68",\r
+        "type": "set",\r
+        "name": "set prop.site.deviceId_length",\r
+        "xml": "<set>\n<parameter name='prop.site.deviceId_length' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1341.0078125,\r
+        "y": 387.00390589237213,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9e668e87.35152",\r
+        "type": "execute",\r
+        "name": "execute Properties",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 690.0078582763672,\r
+        "y": 452.00391256809235,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b14da696.802af8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1486.0043601989746,\r
+        "y": 868.7539058923721,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "715b60bd.6f62c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "715b60bd.6f62c",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 1674.5044555664062,\r
+        "y": 862.7539155483246,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cda4261b.975c18",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1489.4953269958496,\r
+        "y": 916.3279415369034,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "5d5ef9c3.e66358"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5d5ef9c3.e66358",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1663.066738128662,\r
+        "y": 904.6136776208878,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "15ce450b.53d72b",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1481.8283348083496,\r
+        "y": 957.6612545251846,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "10b242b1.35021d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "10b242b1.35021d",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1669.6008911132812,\r
+        "y": 953.1004472970963,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e838c5da.a148e8",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1219.0042724609375,\r
+        "y": 916.7539117336273,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "b14da696.802af8",\r
+                "cda4261b.975c18",\r
+                "15ce450b.53d72b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ef61bc2f.e72cb",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create  SDWAN site",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-site-' + $template.site.role + '.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/sites'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"site-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1246.5043334960938,\r
+        "y": 1106.7538763284683,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "1bbca445.afcd4c",\r
+                "dd7810f4.d9827"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4382528a.72cf7c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1662.1709098815918,\r
+        "y": 1075.642806649208,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e4a16c90.a1073",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create vpn rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1647.615493774414,\r
+        "y": 1135.198154091835,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "dd7810f4.d9827",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1502.615484237671,\r
+        "y": 1132.1981521844864,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "e4a16c90.a1073"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1bbca445.afcd4c",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1503.0598220825195,\r
+        "y": 1075.8649603128433,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "4382528a.72cf7c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "28c40fdc.d8ec",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1220.2583694458008,\r
+        "y": 1009.7579724788666,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "745b648e.d351dc",\r
+                "de446705.d7ff98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "745b648e.d351dc",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1485.2582511901855,\r
+        "y": 994.7578675746918,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "7f55ea12.ac1244"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "de446705.d7ff98",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1477.5082511901855,\r
+        "y": 1036.400750875473,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "a8040204.8ea56"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a8040204.8ea56",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1603.5917472839355,\r
+        "y": 1036.6467835903168,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7f55ea12.ac1244",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 1622.2582511901855,\r
+        "y": 994.7578675746918,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d0e6b60f.9d8498",\r
+        "type": "comment",\r
+        "name": "tmp.thirdparty-sdnc-id is hardcoded value?",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1267.508171081543,\r
+        "y": 870.7578836679459,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f3e2e0b8.aff3b",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 943.5041809082031,\r
+        "y": 845.4204959869385,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "fdcbc7bd.a13598",\r
+                "49ca1a6b.47d2b4",\r
+                "e838c5da.a148e8",\r
+                "28c40fdc.d8ec",\r
+                "e1072ab4.4292c8",\r
+                "ef61bc2f.e72cb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fdcbc7bd.a13598",\r
+        "type": "set",\r
+        "name": "set siteId",\r
+        "xml": "<set>\n<parameter name='prop.site.siteId' value=\"\" />\n\n",\r
+        "comments": "",\r
+        "x": 1160.5041847229004,\r
+        "y": 831.753604888916,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "47307892.eb80f8",\r
+        "type": "for",\r
+        "name": "for cpidx..prop.site.controlpoints",\r
+        "xml": "<for index='cpidx' start='0' end='`$prop.site.controlpoints_length`' >\n\t\t\t\t\t\t\t\t\t\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1236.504379272461,\r
+        "y": 781.7848201990128,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "6433e5be.2bdc0c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6433e5be.2bdc0c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1443.50390625,\r
+        "y": 711.7847648859024,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "9d85c0cd.f74a",\r
+                "6f1b0298.c2014c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dddca1ae.0aa96",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1885.500316619873,\r
+        "y": 705.7535845041275,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "5f3e8ab6.51b064"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "26937b29.826f14",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1887.7501602172852,\r
+        "y": 744.3964706659317,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "a5bc087a.7a1fa8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9d85c0cd.f74a",\r
+        "type": "set",\r
+        "name": "set prop.controlPtId",\r
+        "xml": "<set>\n<parameter name='prop.controlPtId' value='`$prop.site.controlpoints[$cpidx]`' />\n\n",\r
+        "comments": "",\r
+        "x": 1632.5000076293945,\r
+        "y": 684.7535415887833,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e1072ab4.4292c8",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1198.7894897460938,\r
+        "y": 1054.7535101175308,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "49ca1a6b.47d2b4",\r
+        "type": "switchNode",\r
+        "name": "switch prop.site.controlpoints ",\r
+        "xml": "<switch test=\"`$prop.site.controlPoint`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1093.7894897460938,\r
+        "y": 664.7535101175308,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "1e813b9c.d1bb24",\r
+                "5e874fed.35cf3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5e874fed.35cf3",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1281.7894897460938,\r
+        "y": 686.7535101175308,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "8ca15cae.d821b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "85141f25.2d6e",\r
+        "type": "comment",\r
+        "name": "should be null in request",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1330.5040740966797,\r
+        "y": 824.7535778284073,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8ca15cae.d821b",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1090.7933807373047,\r
+        "y": 729.7574154138565,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "47307892.eb80f8",\r
+                "5fd810ad.7ad7a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5fd810ad.7ad7a",\r
+        "type": "set",\r
+        "name": "set template file spoke",\r
+        "xml": "<set>\n<parameter name='template.site.role' value=\"spoke\" />\n\n",\r
+        "comments": "",\r
+        "x": 1269.7933959960938,\r
+        "y": 748.7574754953384,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1e813b9c.d1bb24",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1289.7894897460938,\r
+        "y": 637.7535101175308,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "41d50201.d63e2c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "41d50201.d63e2c",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1427.7894897460938,\r
+        "y": 639.7535101175308,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "aa5fa9ea.6d1fe8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aa5fa9ea.6d1fe8",\r
+        "type": "set",\r
+        "name": "set template file hub",\r
+        "xml": "<set>\n<parameter name='template.site.role' value=\"hub\" />\n\n",\r
+        "comments": "",\r
+        "x": 1596.7934875488281,\r
+        "y": 642.7574306726456,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c26bdc53.ff98c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 775.5039558410645,\r
+        "y": 825.4201318025589,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "f3e2e0b8.aff3b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c78d235f.ab387",\r
+        "type": "switchNode",\r
+        "name": "switch prop.site.sdwan",\r
+        "xml": "<switch test=\"`$prop.site.sdwan`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 681.5039215087891,\r
+        "y": 708.4201065301895,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "c26bdc53.ff98c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5f3e8ab6.51b064",\r
+        "type": "set",\r
+        "name": "set siteId in control point",\r
+        "xml": "<set>\n<parameter name='prop.site.controlpoints[$cpidx]' value='`$tmp.aai.controlPoints.generated-site-id`' />\n\n",\r
+        "comments": "",\r
+        "x": 2064.1666679382324,\r
+        "y": 706.75370657444,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a5bc087a.7a1fa8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2028.1665077209473,\r
+        "y": 742.7535272836685,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bbecde3.6ca5b2",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 675.5079383850098,\r
+        "y": 1382.2541280984879,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "887e324d.70c37",\r
+        "type": "set",\r
+        "name": "set siteId to service data",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='siteId' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$site-result.success[0].id`' />\n",\r
+        "comments": "",\r
+        "x": 713.1783866882324,\r
+        "y": 1060.9140511751175,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4023f188.867be",\r
+        "type": "set",\r
+        "name": "set vf-module-id and vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 763.5078964233398,\r
+        "y": 1211.7539602518082,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8570b81.0d01d48",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 729.5078964233398,\r
+        "y": 1260.2539612054825,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d5f9133b.45a0f",\r
+        "type": "update",\r
+        "name": "update SDWAN VPN status to AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource' \n      key='site-resource.site-resource-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\n<parameter name='site-resource-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='generated-site-id' value='`$site-result.success[0].id`' /> \n<parameter name='operational-status' value='Active' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 734.6154022216797,\r
+        "y": 1314.8460041284561,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "536ee31e.2dbb9c",\r
+        "type": "set",\r
+        "name": "copy input data in service-data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 727.5078506469727,\r
+        "y": 1164.003914740868,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6f1b0298.c2014c",\r
+        "type": "get-resource",\r
+        "name": "get-resource control pts for sideId",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"site-resource\" \n\t\tkey=\"site-resource.site-resource-name = $prop.controlPtId AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.controlPoints' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1670.8334999084473,\r
+        "y": 748.7536220550537,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": [\r
+            [\r
+                "dddca1ae.0aa96",\r
+                "26937b29.826f14"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a5bc4e1c.1202d",\r
+        "type": "set",\r
+        "name": "increment param length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\n",\r
+        "comments": "",\r
+        "x": 717.6667060852051,\r
+        "y": 1112.6666584014893,\r
+        "z": "85485d1c.bbd62",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-create.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-create.json
new file mode 100644 (file)
index 0000000..833563e
--- /dev/null
@@ -0,0 +1,531 @@
+[\r
+    {\r
+        "id": "39688a3a.06a796",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 265.00390625,\r
+        "y": 145.999990940094,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "921891f8.416e5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "921891f8.416e5",\r
+        "type": "method",\r
+        "name": "sdwan-vf-operation-site-create",\r
+        "xml": "<method rpc='sdwan-vf-operation-site-create' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 264.00390625,\r
+        "y": 245.999990940094,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "22a013b4.ab58dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "695e0384.f33d9c",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 94.50390625,\r
+        "y": 56.999998569488525,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "39688a3a.06a796"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "22a013b4.ab58dc",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 423.00389099121094,\r
+        "y": 361.99999952316284,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "4325b612.73e1e8",\r
+                "a6c02374.2dca",\r
+                "40ba27b5.057bf8",\r
+                "d6478b6b.a2b888",\r
+                "59e1bfa3.d11e4",\r
+                "1c5585c5.9cdc3a",\r
+                "a7e8dd90.c6661",\r
+                "2f9ca627.c38e7a",\r
+                "40436b2a.16f614",\r
+                "64771e44.2196d",\r
+                "bb863987.8db5d8",\r
+                "462de6d9.81f588"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4325b612.73e1e8",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 723.3333129882812,\r
+        "y": 253.49612379074097,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "63fc0005.8f2ee"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "63fc0005.8f2ee",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 975.3334045410156,\r
+        "y": 252.1627869606018,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "c555201.0223fe"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6fae689f.7fef88",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1346.9998931884766,\r
+        "y": 254.16278982162476,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c555201.0223fe",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1193.6667213439941,\r
+        "y": 254.1627688407898,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "6fae689f.7fef88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d6478b6b.a2b888",\r
+        "type": "for",\r
+        "name": "for loop idx - VF input parameters",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 797.2540969848633,\r
+        "y": 475.6666569709778,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "e10e6c76.58a1d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e10e6c76.58a1d",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1012.0324401855469,\r
+        "y": 473.2222409248352,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "9a3f095b.53aca8",\r
+                "454b0ff.c77c1f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9a3f095b.53aca8",\r
+        "type": "execute",\r
+        "name": "execute split parameterName",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\n<parameter name=\"regex\" value=\"_\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"param-prefix\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1208.2886428833008,\r
+        "y": 450.9703793525696,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "454b0ff.c77c1f",\r
+        "type": "set",\r
+        "name": "set parameterName",\r
+        "xml": "<set>\n<parameter name=\"`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`\" value='`$param-prefix[$param-prefix_length -1]`'/>\n",\r
+        "comments": "",\r
+        "x": 1177.7330703735352,\r
+        "y": 487.9704957008362,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1b7ed90b.0ee057",\r
+        "type": "comment",\r
+        "name": "Take the parameter names by removing prefix",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1181.2542991638184,\r
+        "y": 410.33332538604736,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a6c02374.2dca",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 737.75390625,\r
+        "y": 208.99999284744263,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "698329a9.119718"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "698329a9.119718",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 924.4205856323242,\r
+        "y": 208.33329057693481,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "f31a5878.bf4fd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f31a5878.bf4fd8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",\r
+        "comments": "",\r
+        "x": 1106.0872116088867,\r
+        "y": 208.33329057693481,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "40ba27b5.057bf8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 779.0038957595825,\r
+        "y": 328.99999380111694,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "51b4cfc4.d81ec",\r
+                "9cba331b.ccedc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "51b4cfc4.d81ec",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1010.00390625,\r
+        "y": 304.999990940094,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "3f2cb9e5.051a76"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9cba331b.ccedc",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1010.00390625,\r
+        "y": 344.999990940094,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "e0c33286.cb104"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f2cb9e5.051a76",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1152.50390625,\r
+        "y": 304.999990940094,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e0c33286.cb104",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1154.3609504699707,\r
+        "y": 344.9365029335022,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "8b8b9efa.275ce",\r
+                "1791a391.e4fccc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1791a391.e4fccc",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1307.059425354004,\r
+        "y": 314.55560162616894,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8b8b9efa.275ce",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-index`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1363.4879302978516,\r
+        "y": 367.7777314186096,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "aaa91538.94bcc8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bd3d2242.9164e",\r
+        "type": "comment",\r
+        "name": "make sure this network doesn't exist already",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1587.1386604309082,\r
+        "y": 326.03178882598877,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "aaa91538.94bcc8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1638.7736511230469,\r
+        "y": 367.3492341041565,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "a84edb80.0d80e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a84edb80.0d80e8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1539.503849029541,\r
+        "y": 425.92066526412964,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            [\r
+                "7ca646fd.066d78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7ca646fd.066d78",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1687.2539520263672,\r
+        "y": 425.77785733295605,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "40436b2a.16f614",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.site-vf-index`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\n\n",\r
+        "comments": "",\r
+        "x": 790.8571014404297,\r
+        "y": 755.4962139129639,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2f9ca627.c38e7a",\r
+        "type": "execute",\r
+        "name": "execute generate-vf-module-index",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.site-vf-index\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 799.1905975341797,\r
+        "y": 702.1629467010498,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a7e8dd90.c6661",\r
+        "type": "set",\r
+        "name": "set new vf-module_length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />",\r
+        "comments": "",\r
+        "x": 773.1905746459961,\r
+        "y": 648.1628403663635,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "59e1bfa3.d11e4",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n",\r
+        "comments": "",\r
+        "x": 788.1902351379395,\r
+        "y": 538.1542210578918,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1c5585c5.9cdc3a",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-site-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-site-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 804.190544128418,\r
+        "y": 590.154402256012,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "64771e44.2196d",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-id' value='`$prop.site-vf-index`' />\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $prop.site-vf-index\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 786.0039939880371,\r
+        "y": 806.0000591278076,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bb863987.8db5d8",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n",\r
+        "comments": "",\r
+        "x": 795.5040130615234,\r
+        "y": 854.9999685287476,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "670cd372.9429ec",\r
+        "type": "save",\r
+        "name": "save sdwan vpn resource in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource' \n      key='site-resource.site-resource-id = $prop.site-vf-index' >\n<parameter name='site-resource-id' value='`$prop.site-vf-index`' />\n<parameter name='site-resource-name' value='`$prop.site.name`' />\n<parameter name='description' value='`$prop.site.description`' />\n<parameter name='type' value='`$prop.site.type`' />\n<parameter name='role' value='`$prop.site.role`' />\n<parameter name='operational-status' value='Created' />\n<parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\n<parameter name='selflink' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vf-module-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $service-data.vnfs.vnf[$vnf-index].vnf-id  + '/vnf-data/vf-modules/vf-module/' + $prop.site-vf-index + '/vf-module-data/'` \" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 798.0039482116699,\r
+        "y": 900.4999747276306,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "4d453124.5225e",\r
+        "type": "save",\r
+        "name": "save service relationship in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf:relationship-list' \n      key='generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-vpn\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-vpns/sdwan-vpn/' + $prop.site-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"sdwan-vpn.id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.site-vf-index`\" />\n\n\n<!--save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource:relationship-list' \n      key='site-resource.site-resource-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-site\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-sites/sdwan-site/' + $prop.site-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"sdwan-vpn.id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.site-vf-index`\" /-->\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 797.0038909912109,\r
+        "y": 947.5000224113464,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "462de6d9.81f588",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 745.7264213562012,\r
+        "y": 993.6738653182983,\r
+        "z": "5099ec4c.e95b94",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-deactivate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-deactivate.json
new file mode 100644 (file)
index 0000000..581bad7
--- /dev/null
@@ -0,0 +1,1066 @@
+[\r
+    {\r
+        "id": "5c29a6ba.038668",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-site-deactivate",\r
+        "xml": "<method rpc='sdwan-vf-operation-site-deactivate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 236.00390625,\r
+        "y": 176.58634185791016,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "c10a5ef9.eb1cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7b112072.6efee",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 145.00390625,\r
+        "y": 20,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "c6cd33c4.247fe"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c6cd33c4.247fe",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 224.28961181640625,\r
+        "y": 82.23810958862305,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "5c29a6ba.038668"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c10a5ef9.eb1cc",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 222.6705780029297,\r
+        "y": 361.6667137145996,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "987b6cfb.095a4",\r
+                "2421aa48.a967a6",\r
+                "a7501bce.e84ca8",\r
+                "c42c3129.16bb4",\r
+                "67b10f8d.c3d57",\r
+                "7db6c871.1ca638",\r
+                "5c7d3c9a.2071e4",\r
+                "7e398340.b85bfc",\r
+                "27be343.61169cc",\r
+                "4d4441d6.c778f",\r
+                "2c4e5cc7.b76554",\r
+                "f0d9af80.b3024",\r
+                "1cc606fc.7b90b9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2421aa48.a967a6",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 568.035270690918,\r
+        "y": 256.2691411972046,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "f656e0b.31e062"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "987b6cfb.095a4",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 573.0039253234863,\r
+        "y": 195.00001049041748,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "d40e76d0.d5ce48"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d40e76d0.d5ce48",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 753.00390625,\r
+        "y": 194,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "de4bbf24.9eba4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "de4bbf24.9eba4",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 902.4326324462891,\r
+        "y": 195.14291763305664,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f656e0b.31e062",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 791.0039215087891,\r
+        "y": 257.00000619888306,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "4eea1b40.3a5ae4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4eea1b40.3a5ae4",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1006.00390625,\r
+        "y": 255,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "efdee9f.d679018"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "efdee9f.d679018",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1170.00390625,\r
+        "y": 250,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a7501bce.e84ca8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 618.0039138793945,\r
+        "y": 327.99999046325684,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "ad789953.0300c8",\r
+                "a370bc16.16cab",\r
+                "be5b6663.110a88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a370bc16.16cab",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 840.00390625,\r
+        "y": 362,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "22440a59.760c56"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ad789953.0300c8",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 845.0039024353027,\r
+        "y": 308.9999990463257,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "22440a59.760c56"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "22440a59.760c56",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1003.00390625,\r
+        "y": 322,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "be5b6663.110a88",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 840.00390625,\r
+        "y": 423,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "cb5b975f.044798"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "da67128d.15fa1",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1194.003921508789,\r
+        "y": 421.0000139474869,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cb5b975f.044798",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1001.0039520263672,\r
+        "y": 419.99999141693115,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "da67128d.15fa1",\r
+                "8901c130.f196d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8901c130.f196d",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1213.003890991211,\r
+        "y": 473.99999046325684,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "332a4ae3.ad50b6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "332a4ae3.ad50b6",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1456.00390625,\r
+        "y": 469,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "e0471cb4.f94dd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e0471cb4.f94dd",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1654.0039348602295,\r
+        "y": 456.0000066757202,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "1ca5dda0.751ea2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1ca5dda0.751ea2",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1806.00390625,\r
+        "y": 458,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "3077bb99.f991c4",\r
+                "96d4f974.763d28",\r
+                "37f06523.6ef90a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3077bb99.f991c4",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2028.00390625,\r
+        "y": 454,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "96d4f974.763d28",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2034.00390625,\r
+        "y": 503,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "37f06523.6ef90a",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-site-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-site-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2062.0041275024414,\r
+        "y": 551.0000057220459,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "67b10f8d.c3d57",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"Provided alloted resource length\"/>\n<parameter name=\"field3\" value=\"'parameters length'\"/>\n<parameter name=\"field4\" value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`'/>\n\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 533.0039806365967,\r
+        "y": 554.0000057220459,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c42c3129.16bb4",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.vidx ",\r
+        "xml": "<switch test=\"`$tmp.vidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 557.0351257324219,\r
+        "y": 501.0160732269287,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "288e4f16.fdb24"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "288e4f16.fdb24",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 704.4637680053711,\r
+        "y": 500.5874834060669,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "6d758b04.419134"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6d758b04.419134",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 853.8924942016602,\r
+        "y": 501.73040103912354,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7db6c871.1ca638",\r
+        "type": "execute",\r
+        "name": "execute Properties",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 564.0351448059082,\r
+        "y": 603.0160584449768,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5c7d3c9a.2071e4",\r
+        "type": "for",\r
+        "name": "for loop idx - VF-module input parameters",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 604.0039367675781,\r
+        "y": 678.4548873901367,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "f399c5e.d5b6e38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f399c5e.d5b6e38",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 857.8997802734375,\r
+        "y": 675.3768310546875,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "6f7dac79.02cc84",\r
+                "69380680.bf88e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6f7dac79.02cc84",\r
+        "type": "switchNode",\r
+        "name": "switch type",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'type'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 995.0169830322266,\r
+        "y": 675.3502712249756,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "8d1befdb.32c39"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8d1befdb.32c39",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1135.016990661621,\r
+        "y": 676.3502712249756,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "79096937.65ad98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "79096937.65ad98",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1283.5666389465332,\r
+        "y": 677.3769645690918,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "50251b49.1faa44"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "50251b49.1faa44",\r
+        "type": "set",\r
+        "name": "set type and sdwan flag",\r
+        "xml": "<set>\n<parameter name='prop.site.type' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n<parameter name='prop.site.sdwan' value=\"true\" />\n",\r
+        "comments": "",\r
+        "x": 1498.9000129699707,\r
+        "y": 677.3769731521606,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "69380680.bf88e8",\r
+        "type": "switchNode",\r
+        "name": "switch siteId",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'siteId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 995.0168800354004,\r
+        "y": 750.3503141403198,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "89a7d161.ebf8a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "89a7d161.ebf8a",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1135.016887664795,\r
+        "y": 751.3503141403198,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "8cbeced8.b613d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8cbeced8.b613d",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1283.566535949707,\r
+        "y": 752.377007484436,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "5b3b802.4f9668"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5b3b802.4f9668",\r
+        "type": "set",\r
+        "name": "set siteId",\r
+        "xml": "<set>\n<parameter name='prop.site.siteId' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n\n",\r
+        "comments": "",\r
+        "x": 1427.8998985290527,\r
+        "y": 753.3770246505737,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "db911ea5.5cc8d",\r
+        "type": "comment",\r
+        "name": "Get siteId to delete",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1007.0038642883301,\r
+        "y": 719.4549703598022,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7e398340.b85bfc",\r
+        "type": "switchNode",\r
+        "name": "switch prop.site.sdwan",\r
+        "xml": "<switch test=\"`$prop.site.sdwan`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 533.5116882324219,\r
+        "y": 845.1213359832764,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "c63fd2c7.67fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c63fd2c7.67fc",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 714.5118217468262,\r
+        "y": 846.1213626861572,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "653ef686.4a6068"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "69850da3.9c7b14",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1419.0118446350098,\r
+        "y": 814.1214170455933,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "ba061c2b.bf22f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba061c2b.bf22f",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 1607.5119400024414,\r
+        "y": 808.1214267015457,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "85b7f6ac.e36598",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1422.5028114318848,\r
+        "y": 861.6954526901245,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "1b75ce4a.6d0092"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1b75ce4a.6d0092",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1596.0742225646973,\r
+        "y": 849.9811887741089,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5b05b37.dea904c",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1414.8358192443848,\r
+        "y": 903.0287656784058,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "fb9dc1ca.b519e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fb9dc1ca.b519e",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1602.6083755493164,\r
+        "y": 898.4679584503174,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "31c7dfa0.a2acb",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1152.0117568969727,\r
+        "y": 862.1214228868484,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "69850da3.9c7b14",\r
+                "85b7f6ac.e36598",\r
+                "5b05b37.dea904c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c256fc10.56b7c",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create  SDWAN site",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-site-del.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/sites/action/batch-delete'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"site-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1180.5121002197266,\r
+        "y": 1060.121494293213,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "626ea124.c2d19",\r
+                "77fd4a1.6d0b0b4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6007a527.cdf6fc",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1576.1784210205078,\r
+        "y": 1040.0103092193604,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "1facc57c.dbee2b",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create vpn rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1573.6229209899902,\r
+        "y": 1074.5656490325928,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2b4696aa.b04baa",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1442.6230182647705,\r
+        "y": 1076.5657682418823,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "1facc57c.dbee2b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1fb3f457.93c7fc",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1434.0672721862793,\r
+        "y": 1039.2324876785278,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "6007a527.cdf6fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "199f525b.bab65e",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1418.2657356262207,\r
+        "y": 940.1253787279129,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "e85c3a39.e5bd58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6235f60.69d19",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1410.5157356262207,\r
+        "y": 981.7682620286942,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "429813db.05fa0c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "429813db.05fa0c",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1536.5992317199707,\r
+        "y": 982.0142947435379,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e85c3a39.e5bd58",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 1555.2657356262207,\r
+        "y": 940.1253787279129,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cfb510cb.1323d",\r
+        "type": "comment",\r
+        "name": "tmp.thirdparty-sdnc-id is hardcoded value?",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1147.515609741211,\r
+        "y": 826.1253840923309,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "653ef686.4a6068",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 875.5117568969727,\r
+        "y": 846.7878704071045,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "31c7dfa0.a2acb",\r
+                "d00d4af5.3de678",\r
+                "f5120e80.4ebea",\r
+                "c256fc10.56b7c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d00d4af5.3de678",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1168.654685974121,\r
+        "y": 963.1213312149048,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "199f525b.bab65e",\r
+                "b6235f60.69d19"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f5120e80.4ebea",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1128.6546096801758,\r
+        "y": 1012.1212921142578,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "626ea124.c2d19",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1436.6546096801758,\r
+        "y": 1137.1212921142578,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "352b1b5f.73bb64"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "352b1b5f.73bb64",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1592.6546096801758,\r
+        "y": 1137.1212921142578,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "77fd4a1.6d0b0b4",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1436.6546096801758,\r
+        "y": 1186.1212921142578,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            [\r
+                "a435af2d.1ebe4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a435af2d.1ebe4",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1614.6546096801758,\r
+        "y": 1183.1212921142578,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "27be343.61169cc",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 558.4484710693359,\r
+        "y": 912.5660271644592,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4d4441d6.c778f",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 542.1151275634766,\r
+        "y": 953.9827690124512,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2c4e5cc7.b76554",\r
+        "type": "set",\r
+        "name": "set vf-module-oper-status to PendingDelete",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n",\r
+        "comments": "",\r
+        "x": 597.5952453613281,\r
+        "y": 1003.5700263977051,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1cc606fc.7b90b9",\r
+        "type": "save",\r
+        "name": "update site instance configuration in AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='device' \n      key='device.device-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\n<parameter name='device-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<!--parameter name='device-id' value='`$deviceResp.success[0].id`' /-->\n<parameter name='operational-status' value='PendingDelete' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 586.781982421875,\r
+        "y": 1052.4551830291748,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f0d9af80.b3024",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 507.5597839355469,\r
+        "y": 1103.8992748260498,\r
+        "z": "1fcdaf2d.f82361",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-delete.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-delete.json
new file mode 100644 (file)
index 0000000..4b4448b
--- /dev/null
@@ -0,0 +1,674 @@
+[\r
+    {\r
+        "id": "187aa613.a5839a",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 235.00390625,\r
+        "y": 121.23810815811157,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "582fdd43.f9c334"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "582fdd43.f9c334",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-site-delete",\r
+        "xml": "<method rpc='sdwan-vf-operation-site-delete' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 246.71820068359375,\r
+        "y": 215.58634042739868,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "5b1517bd.e6d538"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dd9a7d3b.c0b22",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 155.71820068359375,\r
+        "y": 58.999998569488525,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "187aa613.a5839a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5b1517bd.e6d538",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 263.38490295410156,\r
+        "y": 449.66671800613403,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "9241d723.4c1768",\r
+                "583bedbe.114ce4",\r
+                "530fc00e.364a7",\r
+                "6080131a.3dc0dc",\r
+                "e87fa266.b6e36",\r
+                "809305f5.00af78",\r
+                "35360c23.e7bca4",\r
+                "f2c5088e.cdf1f8",\r
+                "8e537e93.b1e07",\r
+                "c5084158.dcae4",\r
+                "a42b62f1.2ca2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "583bedbe.114ce4",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 578.7495651245117,\r
+        "y": 295.2691397666931,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "54d8e288.9c571c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9241d723.4c1768",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 583.7182197570801,\r
+        "y": 234.000009059906,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "deee2c29.49f92"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "deee2c29.49f92",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 763.7182006835938,\r
+        "y": 232.99999856948853,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "c9ce5d0a.f9326"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c9ce5d0a.f9326",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 913.1469268798828,\r
+        "y": 234.14291620254517,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "54d8e288.9c571c",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 801.7182159423828,\r
+        "y": 296.0000047683716,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "60ddf1fc.3523e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "60ddf1fc.3523e",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1016.7182006835938,\r
+        "y": 293.9999985694885,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "3516b602.f2680a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3516b602.f2680a",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1180.7182006835938,\r
+        "y": 288.9999985694885,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "530fc00e.364a7",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 649.7182350158691,\r
+        "y": 372.00002336502075,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "8726f5fa.6a9e18",\r
+                "28d1ea9e.688d26",\r
+                "8ffcd1cb.2fcee"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "28d1ea9e.688d26",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 871.7182273864746,\r
+        "y": 406.0000329017639,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "ed85f484.f7f278"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8726f5fa.6a9e18",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 876.7182235717773,\r
+        "y": 353.0000319480896,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "ed85f484.f7f278"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ed85f484.f7f278",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1034.7182273864746,\r
+        "y": 366.0000329017639,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8ffcd1cb.2fcee",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 871.7182273864746,\r
+        "y": 467.0000329017639,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "340e8678.09189a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "806cc3c4.ab426",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1225.7182426452637,\r
+        "y": 465.0000468492508,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "340e8678.09189a",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1032.7182731628418,\r
+        "y": 464.00002431869507,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "806cc3c4.ab426",\r
+                "f59f2884.04cee8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f59f2884.04cee8",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1244.7182121276855,\r
+        "y": 518.0000233650208,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "2f51cfde.50b1e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2f51cfde.50b1e",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1487.7182273864746,\r
+        "y": 513.0000329017639,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "b1049a4.b276d68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b1049a4.b276d68",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1728.718355178833,\r
+        "y": 506.00003004074097,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "30dc082a.0a5cd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "30dc082a.0a5cd8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1880.7183265686035,\r
+        "y": 508.00002336502075,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "68ce9aa6.9cbee4",\r
+                "6fd91070.2784d",\r
+                "83965509.802248"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "68ce9aa6.9cbee4",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2102.7183265686035,\r
+        "y": 504.00002336502075,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6fd91070.2784d",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2108.7183265686035,\r
+        "y": 553.0000233650208,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "83965509.802248",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-device-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2136.718547821045,\r
+        "y": 601.0000290870667,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6080131a.3dc0dc",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.vidx ",\r
+        "xml": "<switch test=\"`$tmp.vidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 588.7494468688965,\r
+        "y": 545.0161061286926,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "73f1e922.5bcb58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "73f1e922.5bcb58",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 736.1780891418457,\r
+        "y": 544.5875163078308,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "a8c19777.b80838"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a8c19777.b80838",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 885.6068153381348,\r
+        "y": 545.7304339408875,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e87fa266.b6e36",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 633.047607421875,\r
+        "y": 615.3333115577698,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "f563296b.c51508",\r
+                "5df5c282.7498ac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f563296b.c51508",\r
+        "type": "outcome",\r
+        "name": "outcome PendingDelete",\r
+        "xml": "<outcome value='PendingDelete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 923.8808746337891,\r
+        "y": 619.4444346427917,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "def8fb03.8e15e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5df5c282.7498ac",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 890.8810119628906,\r
+        "y": 671.4444873332977,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "2bb9155.57a22ea"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2bb9155.57a22ea",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`\" />",\r
+        "comments": "",\r
+        "x": 1050.3807792663574,\r
+        "y": 674.4444863796234,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "def8fb03.8e15e8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1121.1872749328613,\r
+        "y": 629.7695889472961,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a42b62f1.2ca2",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 611.1588096618652,\r
+        "y": 994.2221984863281,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "809305f5.00af78",\r
+        "type": "set",\r
+        "name": "set prop.vnfNewidx",\r
+        "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`0`' />\n",\r
+        "comments": "",\r
+        "x": 607.2454776763916,\r
+        "y": 689.3333535194397,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "35360c23.e7bca4",\r
+        "type": "for",\r
+        "name": "for lidx..service-data.vf-modules.vf-module[]",\r
+        "xml": "<for index='lidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 687.2453918457031,\r
+        "y": 740.3333554267883,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "37a5b897.303c08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f2c5088e.cdf1f8",\r
+        "type": "set",\r
+        "name": "set new vnf length",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length\" value='`$prop.vnfidxLen`'/>\n\n\t\n",\r
+        "comments": "",\r
+        "x": 611.3467636108398,\r
+        "y": 793.1375732421875,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8e537e93.b1e07",\r
+        "type": "set",\r
+        "name": "Remove vnf from ServiceData",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].\" value=\"\"/>\n",\r
+        "comments": "",\r
+        "x": 648.2454376220703,\r
+        "y": 843.3333582878113,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "37a5b897.303c08",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 947.24538230896,\r
+        "y": 747.3332152366638,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "28df8155.45a17e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b54d3819.c1f898",\r
+        "type": "delete",\r
+        "name": "delete site vf instance configuration in AAI",\r
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource='site-resource' \n        key='site-resource.site-resource-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 693.2457847595215,\r
+        "y": 941.59490442276,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "28df8155.45a17e",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lidx].vf-module-data.vf-module-information.vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1133.245449066162,\r
+        "y": 747.3333759307861,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "b11e0659.68c598"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b11e0659.68c598",\r
+        "type": "outcomeFalse",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1302.2454566955566,\r
+        "y": 746.3332133293152,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "8c9a4a2b.2a6988"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8c9a4a2b.2a6988",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1456.2452955245972,\r
+        "y": 738.3332142829895,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": [\r
+            [\r
+                "9c4fcf43.faebd",\r
+                "f51761cb.90c27"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c4fcf43.faebd",\r
+        "type": "set",\r
+        "name": "set  vnf data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 1621.2453908920288,\r
+        "y": 713.3333697319031,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f51761cb.90c27",\r
+        "type": "set",\r
+        "name": "set prop.vnfNewidx",\r
+        "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\n",\r
+        "comments": "",\r
+        "x": 1643.2453908920288,\r
+        "y": 769.333333492279,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c5084158.dcae4",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 635.0476455688477,\r
+        "y": 888.6666932106018,\r
+        "z": "e1fdfe1b.e244a",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-activate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-activate.json
new file mode 100644 (file)
index 0000000..b51105e
--- /dev/null
@@ -0,0 +1,556 @@
+[\r
+    {\r
+        "id": "5781857d.34f10c",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 188.03125,\r
+        "y": 43.031253814697266,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "34ea5d13.adf2e2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "34ea5d13.adf2e2",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 267.31695556640625,\r
+        "y": 105.26936340332031,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "7a350033.439ec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a350033.439ec",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-vpn-activate",\r
+        "xml": "<method rpc='sdwan-vf-operation-vpn-activate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 279.03125,\r
+        "y": 199.61759567260742,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "eae20948.900428"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "eae20948.900428",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 265.6979217529297,\r
+        "y": 384.6979675292969,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "94df5008.7b42f",\r
+                "7ed34394.611e1c",\r
+                "23e3b0bc.99c9d",\r
+                "3dc91e9a.3f3102",\r
+                "f95e37c5.b5e148",\r
+                "fc6cc049.08c93",\r
+                "b58620d0.ff986",\r
+                "b6f2d919.b74fa8",\r
+                "9597930d.e038d",\r
+                "ef79430c.f091e",\r
+                "fc543198.c0c2e",\r
+                "a41eacc.0c7475",\r
+                "d46578bf.5e8e58",\r
+                "21b0010b.c0a22e",\r
+                "5d9f4d8a.00ca04",\r
+                "48cf7750.d184d8",\r
+                "4efe1671.fc4788",\r
+                "d6a9c738.cde808"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "94df5008.7b42f",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:validate-sdwan-vf-vpn-input-parameters",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 805.6980133056641,\r
+        "y": 222.03141355514526,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "23e3b0bc.99c9d",\r
+        "type": "execute",\r
+        "name": "execute Properties",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 637.0625152587891,\r
+        "y": 310.06250381469727,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7ed34394.611e1c",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"sdwan-network-topology-operation-activate\"/>\n<parameter name=\"field3\" value=\"SDWAN-Activate\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 601.7603912353516,\r
+        "y": 266.0624761581421,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7f983045.d243a",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 924.486083984375,\r
+        "y": 360.04166173934937,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "875bfb0c.99b4c8",\r
+                "fda7ec02.f4fa3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "875bfb0c.99b4c8",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1108.4861907958984,\r
+        "y": 322.0416889190674,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "2605efbe.66ab7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2605efbe.66ab7",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1282.4863166809082,\r
+        "y": 322.04169273376465,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "dadb2cf7.2ff69"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dadb2cf7.2ff69",\r
+        "type": "set",\r
+        "name": "set name",\r
+        "xml": "<set>\n<parameter name='prop.name' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1445.4862022399902,\r
+        "y": 321.6416873931885,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fda7ec02.f4fa3",\r
+        "type": "switchNode",\r
+        "name": "switch topology",\r
+        "xml": "<switch test=\"`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'topology'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1118.9026908874512,\r
+        "y": 369.70831775665283,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "3ae5ca3b.f74cc6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3ae5ca3b.f74cc6",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1292.902816772461,\r
+        "y": 369.7083215713501,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "4b92911a.56168"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4b92911a.56168",\r
+        "type": "set",\r
+        "name": "set topology",\r
+        "xml": "<set>\n<parameter name='prop.topology' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1455.902702331543,\r
+        "y": 369.3083162307739,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3dc91e9a.3f3102",\r
+        "type": "for",\r
+        "name": "for each network-input-parameters",\r
+        "xml": "<for index='idx' start='0' end='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 672.6526527404785,\r
+        "y": 369.708309173584,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "7f983045.d243a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4efe1671.fc4788",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = 'SDWANController' AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 669.4862022399902,\r
+        "y": 496.04168128967285,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "46f8b46c.58115c",\r
+                "a1d7d554.010ed8",\r
+                "21d4ff8e.d6051"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46f8b46c.58115c",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 931.486083984375,\r
+        "y": 449.04166159033775,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "df26ddf3.952"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a1d7d554.010ed8",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 934.97705078125,\r
+        "y": 496.615697234869,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "c96d1e93.137b6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "21d4ff8e.d6051",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 930.31005859375,\r
+        "y": 537.9490102231503,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "29af3383.039eac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c96d1e93.137b6",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1111.5484619140625,\r
+        "y": 484.9014333188534,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "29af3383.039eac",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1118.0826148986816,\r
+        "y": 533.3882029950619,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "48cf7750.d184d8",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 689.4861221313477,\r
+        "y": 615.0416851043701,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "47bd8a4e.743ee4",\r
+                "5c5772a6.eeb8ac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "47bd8a4e.743ee4",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 933.486156463623,\r
+        "y": 592.0416917800903,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "91c9ef14.b46a4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5c5772a6.eeb8ac",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 925.736156463623,\r
+        "y": 645.6845750808716,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            [\r
+                "b75502f5.e09e5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "91c9ef14.b46a4",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 1083.486083984375,\r
+        "y": 593.0416603088379,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b75502f5.e09e5",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing get token rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1078.486156463623,\r
+        "y": 645.4346361160278,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "df26ddf3.952",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 1128.9861450195312,\r
+        "y": 437.04166159033775,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5d9f4d8a.00ca04",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create vpn",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-vpn-create.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/vpn'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 695.2254638671875,\r
+        "y": 728.721978187561,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f95e37c5.b5e148",\r
+        "type": "set",\r
+        "name": "set prop.vpn-id and prop.vpn1Id",\r
+        "xml": "<set>\n<parameter name='prop.vpn-id' value='`$vpn-result.success[0].id`' />\n<parameter name='prop.vpn1Id' value='`$vpn-result.success[0].id`' />\n",\r
+        "comments": "",\r
+        "x": 680.2256622314453,\r
+        "y": 782.7221002578735,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "21b0010b.c0a22e",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Create vpn topology",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-vpn-topology-create.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn-id + '/topology'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 728.7254638671875,\r
+        "y": 825.7219481468201,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "fc6cc049.08c93",\r
+        "type": "set",\r
+        "name": "set tenant-id to service-data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='tenant-id' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.tenant-id`' />\n",\r
+        "comments": "",\r
+        "x": 670.7255401611328,\r
+        "y": 877.4720306396484,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b58620d0.ff986",\r
+        "type": "set",\r
+        "name": "set  vpn-id to service-data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='vpn-id' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.vpn-id`' />\n",\r
+        "comments": "",\r
+        "x": 660.9754791259766,\r
+        "y": 976.2218685150146,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b6f2d919.b74fa8",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 618.0352668762207,\r
+        "y": 1336.5354351997375,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d6a9c738.cde808",\r
+        "type": "update",\r
+        "name": "update SDWAN VPN status to AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='sdwan-vpn' \n      key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\n<parameter name='sdwan-vpn-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='operational-status' value='Active' />\n<parameter name='tenanat-id' value='`$prop.tenant-id`' />\n<parameter name='vpn-id' value='`$prop.vpn-id`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 687.3649978637695,\r
+        "y": 1230.905207157135,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "fc543198.c0c2e",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 684.0000152587891,\r
+        "y": 1174.0000378815457,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ef79430c.f091e",\r
+        "type": "set",\r
+        "name": "set vf-module-id and vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 718.0000152587891,\r
+        "y": 1125.5000369278714,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9597930d.e038d",\r
+        "type": "set",\r
+        "name": "copy input data in service-data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 681.9999694824219,\r
+        "y": 1077.7499914169312,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a41eacc.0c7475",\r
+        "type": "set",\r
+        "name": "set  param-length + 1",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />",\r
+        "comments": "",\r
+        "x": 657.0000476837158,\r
+        "y": 1026.0000734329224,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d46578bf.5e8e58",\r
+        "type": "set",\r
+        "name": "set param length + 1",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\n",\r
+        "comments": "",\r
+        "x": 652.0000152587891,\r
+        "y": 922.0000267028809,\r
+        "z": "22c1b0cd.01617",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-create.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-create.json
new file mode 100644 (file)
index 0000000..e8db0bf
--- /dev/null
@@ -0,0 +1,654 @@
+[\r
+    {\r
+        "id": "5892697a.9c21d8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 482.03125,\r
+        "y": 382.00000220537186,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "3419ca3e.28a196",\r
+                "18fb5a27.0012c6",\r
+                "987ea69b.4f3758",\r
+                "6b48247.18bfcdc",\r
+                "12914a5f.e6b036",\r
+                "5fd7b0fa.16e31",\r
+                "623a4487.e99e9c",\r
+                "4156b8b2.c36818",\r
+                "9723e968.8650b8",\r
+                "7be42a51.991f94",\r
+                "4a04380d.9f4fa8",\r
+                "ea1ae816.a77cc8",\r
+                "43b512b5.67ddbc",\r
+                "64fa1f85.6660d",\r
+                "37949d89.629082"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "309bc096.5fac7",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 324.03126525878906,\r
+        "y": 165.999993622303,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "1f3522ef.5a48ed"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1f3522ef.5a48ed",\r
+        "type": "method",\r
+        "name": "sdwan-vf-operation-vpn-create",\r
+        "xml": "<method rpc='sdwan-vf-operation-vpn-create' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 323.03126525878906,\r
+        "y": 265.999993622303,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "5892697a.9c21d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3582a035.23289",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 153.53126525878906,\r
+        "y": 77.00000125169754,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "309bc096.5fac7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3419ca3e.28a196",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 782.3606719970703,\r
+        "y": 273.49612647295,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "e71de9cd.25e818"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e71de9cd.25e818",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1034.3607635498047,\r
+        "y": 272.1627896428108,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "637c1185.e9ab2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46c73b2c.401b84",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n\n",\r
+        "comments": "",\r
+        "x": 1406.0272521972656,\r
+        "y": 274.16279250383377,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "637c1185.e9ab2",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1252.6940803527832,\r
+        "y": 274.1627715229988,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "46c73b2c.401b84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6b48247.18bfcdc",\r
+        "type": "for",\r
+        "name": "for loop idx - VF input parameters",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 856.2814559936523,\r
+        "y": 495.6666596531868,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "de525177.578e5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "de525177.578e5",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1071.059799194336,\r
+        "y": 493.2222436070442,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "f754a25f.6ce5b",\r
+                "a4e3fb1c.255518"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f754a25f.6ce5b",\r
+        "type": "execute",\r
+        "name": "execute split parameterName",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\n<parameter name=\"regex\" value=\"_\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"param-prefix\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1267.3160018920898,\r
+        "y": 470.9703820347786,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a4e3fb1c.255518",\r
+        "type": "set",\r
+        "name": "set parameterName",\r
+        "xml": "<set>\n<parameter name=\"`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`\" value='`$param-prefix[$param-prefix_length -1]`'/>\n",\r
+        "comments": "",\r
+        "x": 1236.7604293823242,\r
+        "y": 507.9704983830452,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "af1423f9.97927",\r
+        "type": "comment",\r
+        "name": "Take the parameter names by removing prefix",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1240.2816581726074,\r
+        "y": 430.3333280682564,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "18fb5a27.0012c6",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 796.7812652587891,\r
+        "y": 228.99999552965164,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "f110968e.0e58a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f110968e.0e58a8",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 983.4479446411133,\r
+        "y": 228.33329325914383,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "241d819c.c8566e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "241d819c.c8566e",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",\r
+        "comments": "",\r
+        "x": 1165.1145706176758,\r
+        "y": 228.33329325914383,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "987ea69b.4f3758",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 838.0312547683716,\r
+        "y": 348.99999648332596,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "f6ea0a95.1bfcf8",\r
+                "7969b2ec.a074ec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f6ea0a95.1bfcf8",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1069.031265258789,\r
+        "y": 324.999993622303,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "95e71927.be46c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7969b2ec.a074ec",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1069.031265258789,\r
+        "y": 364.999993622303,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "53dfed7f.4e81b4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "95e71927.be46c8",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1211.531265258789,\r
+        "y": 324.999993622303,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "53dfed7f.4e81b4",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1213.3883094787598,\r
+        "y": 364.9365056157112,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "bd7a9ede.140ae",\r
+                "804dd88d.6a51d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "804dd88d.6a51d8",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1366.086784362793,\r
+        "y": 334.55560430837795,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bd7a9ede.140ae",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-index`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1422.5152893066406,\r
+        "y": 387.77773410081863,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "549e64ff.4f02fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "96b53f57.6e1a2",\r
+        "type": "comment",\r
+        "name": "make sure this network doesn't exist already",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1646.1660194396973,\r
+        "y": 346.0317915081978,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "549e64ff.4f02fc",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1697.801010131836,\r
+        "y": 387.3492367863655,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "789deb75.f505c4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "789deb75.f505c4",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1598.53120803833,\r
+        "y": 445.92066794633865,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "60c9009a.34691"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "60c9009a.34691",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1746.2813110351562,\r
+        "y": 445.77786001516506,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4156b8b2.c36818",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.vpn-vf-index`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 851.8844451904297,\r
+        "y": 798.4962475895882,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "623a4487.e99e9c",\r
+        "type": "execute",\r
+        "name": "execute generate-vf-module-index",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.vpn-vf-index\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 863.218017578125,\r
+        "y": 751.162949860096,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5fd7b0fa.16e31",\r
+        "type": "set",\r
+        "name": "set new vf-module_length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />",\r
+        "comments": "",\r
+        "x": 835.2180786132812,\r
+        "y": 702.162949860096,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "12914a5f.e6b036",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n",\r
+        "comments": "",\r
+        "x": 835.2176055908203,\r
+        "y": 648.1542380452156,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9723e968.8650b8",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 845.5314331054688,\r
+        "y": 896.0000686645508,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "64fa1f85.6660d",\r
+        "type": "save",\r
+        "name": "save sdwan vpn resource in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='sdwan-vpn' \n      key='sdwan-vpn.sdwan-vpn-id = $prop.vpn-vf-index' >\n<parameter name='sdwan-vpn-id' value='`$prop.vpn-vf-index`' />\n<parameter name='sdwan-vpn-name' value='`$prop.name`' />\n<parameter name='topology' value='`$prop.topology`' />\n<parameter name='operational-status' value='Created' />\n<parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\n<parameter name='selflink' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vf-module-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $service-data.vnfs.vnf[$vnf-index].vnf-id  + '/vnf-data/vf-modules/vf-module/' + $prop.vpn-vf-index + '/vf-module-data/'` \" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 852.0312938690186,\r
+        "y": 941.5000165104866,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "37949d89.629082",\r
+        "type": "save",\r
+        "name": "save service relationship in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf:relationship-list' \n      key='generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-vpn\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-vpns/sdwan-vpn/' + $prop.vpn-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"sdwan-vpn.id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.vpn-vf-index`\" />\n\n\n<!--save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource:relationship-list' \n      key='site-resource.site-resource-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-site\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-sites/sdwan-site/' + $prop.site-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"sdwan-vpn.id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.site-vf-index`\" /-->\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 849.0312213897705,\r
+        "y": 987.500047981739,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7be42a51.991f94",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 799.7537670135498,\r
+        "y": 1034.6739071011543,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4a04380d.9f4fa8",\r
+        "type": "for",\r
+        "name": "for loop i - Network input parameters",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 863.2851715087891,\r
+        "y": 584.5039075016975,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "b830a75.ba7e858"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b830a75.ba7e858",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1150.5080490112305,\r
+        "y": 584.726221382618,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "e85749e.f646cb8",\r
+                "44026e82.c4236"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e85749e.f646cb8",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1338.729892730713,\r
+        "y": 567.0595255494118,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "b01f15f5.803658"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "44026e82.c4236",\r
+        "type": "switchNode",\r
+        "name": "switch topology",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'topology'`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1349.5695533752441,\r
+        "y": 607.0595236420631,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "9f894ed7.8915b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b01f15f5.803658",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1525.729892730713,\r
+        "y": 563.0595255494118,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "e28f739a.4fef3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9f894ed7.8915b",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1519.5695533752441,\r
+        "y": 603.0595236420631,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            [\r
+                "3dd20fe.b268ef"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e28f739a.4fef3",\r
+        "type": "set",\r
+        "name": "set name",\r
+        "xml": "<set>\n<parameter name='prop.name' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n\n",\r
+        "comments": "",\r
+        "x": 1675.73002243042,\r
+        "y": 561.6595321297646,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3dd20fe.b268ef",\r
+        "type": "set",\r
+        "name": "set topology",\r
+        "xml": "<set>\n<parameter name='prop.topology' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1706.9029941558838,\r
+        "y": 601.5206804871559,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ea1ae816.a77cc8",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:validate-sdwan-vf-vpn-input-parameters",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 964.5351715087891,\r
+        "y": 174.00390750169754,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "43b512b5.67ddbc",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-id' value='`$prop.site-vf-index`' />\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $prop.vpn-vf-index\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 837.5313110351562,\r
+        "y": 847.0312881469727,\r
+        "z": "c6a9f1ad.d0abe",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-deactivate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-deactivate.json
new file mode 100644 (file)
index 0000000..1426383
--- /dev/null
@@ -0,0 +1,599 @@
+[\r
+    {\r
+        "id": "702b97b3.8ee378",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:validate-sdwan-vf-vpn-input-parameters",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 767.03125,\r
+        "y": 208.03125,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "32955a69.c89b66",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 149.36448669433594,\r
+        "y": 29.031090259552002,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "6d10fa5f.ef1ca4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6d10fa5f.ef1ca4",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 228.6501922607422,\r
+        "y": 91.26919984817505,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "90ef259f.4465b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "90ef259f.4465b8",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-vpn-deactivate",\r
+        "xml": "<method rpc='sdwan-vf-operation-vpn-deactivate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 240.36448669433594,\r
+        "y": 185.61743211746216,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "36593f98.16e3d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "36593f98.16e3d",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 227.03115844726562,\r
+        "y": 370.6978039741516,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "702b97b3.8ee378",\r
+                "2f3304e5.d7fd4c",\r
+                "6be98d9b.539ff4",\r
+                "a0c4b3e9.994a9",\r
+                "b323d31c.acd57",\r
+                "5f46d882.04a158",\r
+                "621066a9.944e88",\r
+                "e3e4d1bd.80fd7",\r
+                "b9de2d65.c5979",\r
+                "7f24be05.1cd31",\r
+                "c30bc7b4.1dd508",\r
+                "5edb2470.30880c",\r
+                "c2f4c0be.85e67",\r
+                "637b40e9.05bd1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6be98d9b.539ff4",\r
+        "type": "execute",\r
+        "name": "execute Properties",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 598.395751953125,\r
+        "y": 296.062340259552,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "2f3304e5.d7fd4c",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"sdwan-network-topology-operation-activate\"/>\n<parameter name=\"field3\" value=\"SDWAN-Activate\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 563.0936279296875,\r
+        "y": 252.06231260299683,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d5ced122.5325a",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 874.8193664550781,\r
+        "y": 379.04149866104126,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "3739b39c.50fc6c",\r
+                "ac6efceb.fbae4",\r
+                "f4c9064c.3cb418",\r
+                "6663d5f5.4132fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3739b39c.50fc6c",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1069.8194274902344,\r
+        "y": 308.0415253639221,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "5651b769.f6f788"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5651b769.f6f788",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1243.8195533752441,\r
+        "y": 308.0415291786194,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "8feb29dd.764fe8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8feb29dd.764fe8",\r
+        "type": "set",\r
+        "name": "set name",\r
+        "xml": "<set>\n<parameter name='prop.name' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1406.8194389343262,\r
+        "y": 307.6415238380432,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ac6efceb.fbae4",\r
+        "type": "switchNode",\r
+        "name": "switch topology",\r
+        "xml": "<switch test=\"`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'topology'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1080.235927581787,\r
+        "y": 355.70815420150757,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "fffcbfb8.f2fa"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fffcbfb8.f2fa",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1254.2360534667969,\r
+        "y": 355.70815801620483,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "aba521f0.c2f18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aba521f0.c2f18",\r
+        "type": "set",\r
+        "name": "set topology",\r
+        "xml": "<set>\n<parameter name='prop.topology' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1417.235939025879,\r
+        "y": 355.30815267562866,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a0c4b3e9.994a9",\r
+        "type": "for",\r
+        "name": "for each network-input-parameters",\r
+        "xml": "<for index='idx' start='0' end='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 635.9858703613281,\r
+        "y": 381.70817041397095,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "d5ced122.5325a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b9de2d65.c5979",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = 'SDWANController' AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 649.8194122314453,\r
+        "y": 619.0415069162846,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "962e611e.d3b8",\r
+                "d1b437fc.b72478",\r
+                "76cb6a63.2b7384"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "962e611e.d3b8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 894.8194122314453,\r
+        "y": 565.0415081977844,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "61f20284.b32c7c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d1b437fc.b72478",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 898.3103790283203,\r
+        "y": 612.6155438423157,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "d289f55.a1fa308"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "76cb6a63.2b7384",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 893.6433868408203,\r
+        "y": 653.9488568305969,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "7041e417.d417bc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d289f55.a1fa308",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1074.8817901611328,\r
+        "y": 600.9012799263,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7041e417.d417bc",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1081.415943145752,\r
+        "y": 649.3880496025085,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7f24be05.1cd31",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 657.8194122314453,\r
+        "y": 730.0415069162846,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "4afad198.25387",\r
+                "f3670767.c4d1d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4afad198.25387",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 896.8194847106934,\r
+        "y": 708.041538387537,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "7f06af8d.b7446"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f3670767.c4d1d8",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 889.0694847106934,\r
+        "y": 761.6844216883183,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "5cfe33a1.e2bc8c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7f06af8d.b7446",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 1046.8194122314453,\r
+        "y": 709.0415069162846,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5cfe33a1.e2bc8c",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing get token rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1041.8194847106934,\r
+        "y": 761.4344827234745,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "61f20284.b32c7c",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 1092.3194732666016,\r
+        "y": 553.0415081977844,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b323d31c.acd57",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 592.3685722351074,\r
+        "y": 1226.5350461006165,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f4c9064c.3cb418",\r
+        "type": "switchNode",\r
+        "name": "switch vpn-id",\r
+        "xml": "<switch test=\"`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'vpn-id'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1077.368392944336,\r
+        "y": 405.284996509552,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "7073b26f.c2162c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7073b26f.c2162c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1259.3684253692627,\r
+        "y": 405.2849953174591,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "ec43e2d2.05e58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ec43e2d2.05e58",\r
+        "type": "set",\r
+        "name": "set prop.vpn-id",\r
+        "xml": "<set>\n<parameter name='prop.vpn-id' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1424.3683586120605,\r
+        "y": 407.88499689102173,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6663d5f5.4132fc",\r
+        "type": "switchNode",\r
+        "name": "switch tenant-id",\r
+        "xml": "<switch test=\"`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'tenant-id'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1088.1182556152344,\r
+        "y": 449.284996509552,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "b0ecdc75.e86fd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b0ecdc75.e86fd",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1257.1184558868408,\r
+        "y": 448.28499841690063,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            [\r
+                "aa1766f9.85f0b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aa1766f9.85f0b8",\r
+        "type": "set",\r
+        "name": "set prop.tenant-id",\r
+        "xml": "<set>\n<parameter name='prop.tenant-id' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\n",\r
+        "comments": "",\r
+        "x": 1420.1183414459229,\r
+        "y": 447.88499307632446,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c30bc7b4.1dd508",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 626.3644866943359,\r
+        "y": 816.031090259552,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5edb2470.30880c",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode delete vpn topology",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn-id + '/topology'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"delete\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 685.364501953125,\r
+        "y": 874.6978039741516,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c2f4c0be.85e67",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode delete vpn",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-vpn-delete.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/vpn/action/batch-delete'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"vpn-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 662.8645172119141,\r
+        "y": 931.6980247497559,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "637b40e9.05bd1",\r
+        "type": "update",\r
+        "name": "update SDWAN VPN status to AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='sdwan-vpn' \n      key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\n<parameter name='sdwan-vpn-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='operational-status' value='PendingDelete' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 658.5832214355469,\r
+        "y": 1156.734342098236,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5f46d882.04a158",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 645,\r
+        "y": 998,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "621066a9.944e88",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 628.6666564941406,\r
+        "y": 1039.416741847992,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e3e4d1bd.80fd7",\r
+        "type": "set",\r
+        "name": "set vf-module-oper-status to PendingDelete",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n",\r
+        "comments": "",\r
+        "x": 684.1467742919922,\r
+        "y": 1089.0039992332458,\r
+        "z": "e3dba753.67e0f8",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-delete.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-delete.json
new file mode 100644 (file)
index 0000000..eb28774
--- /dev/null
@@ -0,0 +1,159 @@
+[\r
+    {\r
+        "id": "dbaa41e6.046bf",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-vpn-delete",\r
+        "xml": "<method rpc='sdwan-vf-operation-vpn-delete' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 347.03125,\r
+        "y": 269.99999737739563,\r
+        "z": "4a211eac.9076a",\r
+        "wires": [\r
+            [\r
+                "2654c2fb.11dfbe"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8578b02a.61d67",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 147.0311279296875,\r
+        "y": 109.99999737739563,\r
+        "z": "4a211eac.9076a",\r
+        "wires": [\r
+            [\r
+                "de304501.e706b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "de304501.e706b8",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 359.03113174438477,\r
+        "y": 182.00001454353333,\r
+        "z": "4a211eac.9076a",\r
+        "wires": [\r
+            [\r
+                "dbaa41e6.046bf"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2654c2fb.11dfbe",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 517.4755821228027,\r
+        "y": 332.4444534778595,\r
+        "z": "4a211eac.9076a",\r
+        "wires": [\r
+            [\r
+                "d773525e.57dfe",\r
+                "7dccf11a.58654",\r
+                "f366cb35.f14868",\r
+                "1458597e.bb0697",\r
+                "38c53cd1.7984d4",\r
+                "6bc9b9bd.b7c0e8",\r
+                "a3fafa89.e43bc8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d773525e.57dfe",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"sdwan-vf-module-operation-delete\"/>\n<parameter name=\"field3\" value=\"SDWAN-Delete\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 792.8088531494141,\r
+        "y": 193.3333694934845,\r
+        "z": "4a211eac.9076a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7dccf11a.58654",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 806.586784362793,\r
+        "y": 504.9796769618988,\r
+        "z": "4a211eac.9076a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1458597e.bb0697",\r
+        "type": "set",\r
+        "name": "set new vpn-vf length",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length - 1`\"/>\n",\r
+        "comments": "",\r
+        "x": 836.1082077026367,\r
+        "y": 318.89519906044006,\r
+        "z": "4a211eac.9076a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f366cb35.f14868",\r
+        "type": "set",\r
+        "name": "Remove networks from ServiceData",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].\" value=\"\"/>\n\n",\r
+        "comments": "",\r
+        "x": 876.732364654541,\r
+        "y": 366.8631408214569,\r
+        "z": "4a211eac.9076a",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a3fafa89.e43bc8",\r
+        "type": "delete",\r
+        "name": "delete SDWAN VPNInstance connectivity in AAI",\r
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource='sdwan-vpn' \n        key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 914.6637077331543,\r
+        "y": 260.00628304481506,\r
+        "z": "4a211eac.9076a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "38c53cd1.7984d4",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:validate-sdwan-vf-vpn-input-parameters",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 997.0312805175781,\r
+        "y": 131.99999928474426,\r
+        "z": "4a211eac.9076a",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6bc9b9bd.b7c0e8",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 845.0000305175781,\r
+        "y": 431.00001335144043,\r
+        "z": "4a211eac.9076a",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-activate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-activate.json
new file mode 100644 (file)
index 0000000..bf765d8
--- /dev/null
@@ -0,0 +1,2281 @@
+[\r
+    {\r
+        "id": "aa1b72bf.43103",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 394.03125,\r
+        "y": 423.0742139816284,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "7552c12f.99edc",\r
+                "298f83f7.59d8fc",\r
+                "c6091bc8.bb5b78",\r
+                "6d78088c.cbfc88",\r
+                "e1a9bec.bd0de4",\r
+                "a2c6a4a4.2e00b8",\r
+                "c63182d3.fbcc4",\r
+                "409701be.1a03c",\r
+                "9e802733.d722c8",\r
+                "7362e1fa.b1592",\r
+                "46743c8f.b3fd84",\r
+                "8679bf14.4ac1",\r
+                "7f799175.fb047",\r
+                "131a2ffd.3a8e5",\r
+                "92451c4e.ffaad",\r
+                "a7fe1093.6d40a",\r
+                "e9b4c90b.c4ce98",\r
+                "7c031fb.d5948e",\r
+                "e28c61da.26a12",\r
+                "555b730f.2ad3ec",\r
+                "103790c7.a4e84f",\r
+                "726be50f.6f16fc",\r
+                "e2c4dac5.6f39e8",\r
+                "675842c8.f4343c",\r
+                "86ffb9d1.271bf8",\r
+                "7a2f98d7.5ecea8",\r
+                "83739943.858e68",\r
+                "93891afe.aeea78",\r
+                "bc9fd33d.1cf95"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5ef2c8ad.bc5ff8",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 118.50391006469727,\r
+        "y": 72,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "988b9fb.b96a56"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "988b9fb.b96a56",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 249.78960037231445,\r
+        "y": 121.23810863494873,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "db46e718.9e34f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "db46e718.9e34f8",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-wanport-activate",\r
+        "xml": "<method rpc='sdwan-vf-operation-wanport-activate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 252.9325294494629,\r
+        "y": 206.00003242492676,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "aa1b72bf.43103"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "298f83f7.59d8fc",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 823.0351600646973,\r
+        "y": 221.07811641693115,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "d5c2444e.40f148"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d5c2444e.40f148",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1075.0352516174316,\r
+        "y": 219.744779586792,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "2d2f666f.01836a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cffa7667.9fa518",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1446.7017402648926,\r
+        "y": 221.74478244781494,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2d2f666f.01836a",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1293.3685684204102,\r
+        "y": 221.74476146697998,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "cffa7667.9fa518"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7552c12f.99edc",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 837.455753326416,\r
+        "y": 176.5819854736328,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "3a4ab2c5.34288e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3a4ab2c5.34288e",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1024.1224327087402,\r
+        "y": 175.915283203125,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "9c32c1a6.b8f8d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c32c1a6.b8f8d",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",\r
+        "comments": "",\r
+        "x": 1205.7890586853027,\r
+        "y": 175.915283203125,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "90dd0a6d.b97718",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1476.0351676940918,\r
+        "y": 391.0781068508513,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "6395826d.fca69c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9272b53d.a87e88",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1984.3210220336914,\r
+        "y": 358.64962673187256,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "e056b855.39d1d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7e4a72fa.4d4f3c",\r
+        "type": "set",\r
+        "name": "set vf-module-length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1462.6067924499512,\r
+        "y": 354.855993270874,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f8dd3a29.d23a98",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1266.908187866211,\r
+        "y": 368.2368783657439,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "90dd0a6d.b97718",\r
+                "7e4a72fa.4d4f3c",\r
+                "e9fcde91.f8ee4",\r
+                "15ae932b.8eaafd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "da9482b8.2c7db",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1122.5511436462402,\r
+        "y": 368.3003663723357,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "f8dd3a29.d23a98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c6091bc8.bb5b78",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 886.5511255264282,\r
+        "y": 295.3003787994385,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "da9482b8.2c7db",\r
+                "75404cd4.467764",\r
+                "b9120614.fcff58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "75404cd4.467764",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1128.035161972046,\r
+        "y": 267.0781078338623,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "73c9cf7f.c3fda"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b9120614.fcff58",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1130.0663509368896,\r
+        "y": 304.10941886901855,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "73c9cf7f.c3fda"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "73c9cf7f.c3fda",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-operation-input.vf-module-request-input.vf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1287.8438663482666,\r
+        "y": 284.9983673095703,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e056b855.39d1d8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2188.0352630615234,\r
+        "y": 357.07813313556835,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "3493694e.e41bb6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3493694e.e41bb6",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2358.378559112549,\r
+        "y": 361.164268522989,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "8b2508c0.364288",\r
+                "1dfeb945.730fd7",\r
+                "fe377f26.34769"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8b2508c0.364288",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2609.2652130126953,\r
+        "y": 331.50668144226074,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1dfeb945.730fd7",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2603.71150970459,\r
+        "y": 376.16432145191357,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "33f87d4b.131732",\r
+        "type": "switchNode",\r
+        "name": "switch ActivateSDWANDeviceInstance",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`\">\n    ",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1783.5352668762207,\r
+        "y": 457.07813835144043,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "19b41c70.4beab4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "19b41c70.4beab4",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2012.5350151062012,\r
+        "y": 456.07811546325684,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "1a6abe61.332a02"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1a6abe61.332a02",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1967.9479293823242,\r
+        "y": 518.0742564201355,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "4f4f0899.d407e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4f4f0899.d407e8",\r
+        "type": "for",\r
+        "name": "for loop didx - Get deviceId from servicedata",\r
+        "xml": "<for index=\"didx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2249.2816829681396,\r
+        "y": 528.0742769241333,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "3ef068c9.f46d98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6395826d.fca69c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1777.5352249145508,\r
+        "y": 362.0781407649629,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "9272b53d.a87e88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c29879dc.c33238",\r
+        "type": "comment",\r
+        "name": "Get devices",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1775.5351600646973,\r
+        "y": 427.07811641693115,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e9fcde91.f8ee4",\r
+        "type": "set",\r
+        "name": "set prop.site.deviceId_length",\r
+        "xml": "<set>\n<parameter name='prop.site.deviceId_length' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1489.0351600646973,\r
+        "y": 319.07811641693115,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6d78088c.cbfc88",\r
+        "type": "execute",\r
+        "name": "execute Properties",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 838.0352058410645,\r
+        "y": 384.07812309265137,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "58514bba.536ea4",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2548.281505584717,\r
+        "y": 522.0744781494141,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "6a60b8bf.296158"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6a60b8bf.296158",\r
+        "type": "switchNode",\r
+        "name": "switch deviceId",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].name == 'deviceId'`\">\n    ",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2708.2817611694336,\r
+        "y": 524.0743312835693,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "6bb682b3.a31adc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6bb682b3.a31adc",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2860.2819328308105,\r
+        "y": 523.0743312835693,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "6989c0f.96b544"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6989c0f.96b544",\r
+        "type": "set",\r
+        "name": "set deviceId",\r
+        "xml": "<set>\n<parameter name='prop.site.deviceId[$prop.site.deviceId_length]' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].value`' />\n<parameter name='prop.site.deviceId_length' value='`$prop.site.deviceId_length + 1`' />\n",\r
+        "comments": "",\r
+        "x": 3000.281936645508,\r
+        "y": 522.6742858886719,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fe377f26.34769",\r
+        "type": "call",\r
+        "name": "call sdwan-get-wan-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-wan-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2595.0079612731934,\r
+        "y": 423.00392010761425,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "48f81161.66243",\r
+        "type": "switchNode",\r
+        "name": "switch ActivateSiteInstance",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.request-information.request-action == 'ActivateSiteInstance'`\">\n    ",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1763.507797241211,\r
+        "y": 565.7539291381836,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "c8d462fc.6ddb3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c8d462fc.6ddb3",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2005.5076446533203,\r
+        "y": 596.75390625,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "92bd8825.90b9a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "92bd8825.90b9a8",\r
+        "type": "set",\r
+        "name": "set tmp.siteVidx",\r
+        "xml": "<set>\n<parameter name='tmp.siteVidx' value='`$idx`' />\n<parameter name='ctx.site.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].`' />\n",\r
+        "comments": "",\r
+        "x": 2228.237594604492,\r
+        "y": 624.1824264526367,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3ef068c9.f46d98",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2451.7578125,\r
+        "y": 617.0039043426514,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "a2711e1c.d6e09",\r
+                "113b21af.23a45e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a2711e1c.d6e09",\r
+        "type": "switchNode",\r
+        "name": "switch name (DeviceName)",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].name == 'name'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2677.425521850586,\r
+        "y": 618.3374032974243,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "661373f5.be831c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "661373f5.be831c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2879.426013946533,\r
+        "y": 612.3374633789062,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "e8b03259.bbcb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e8b03259.bbcb",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2697.7590560913086,\r
+        "y": 695.3374328613281,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "4554c798.aa2dd8",\r
+                "bf88a576.7aa2c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4554c798.aa2dd8",\r
+        "type": "switchNode",\r
+        "name": "switch deviceName match",\r
+        "xml": "<switch test=\"`$prop.wan.deviceName == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`\">\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2903.42578125,\r
+        "y": 696.3374967575073,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "8f8b4c45.50538"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8f8b4c45.50538",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3086.7597618103027,\r
+        "y": 698.3375577926636,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "b9108ee7.e5b06"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b9108ee7.e5b06",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2986.0917205810547,\r
+        "y": 770.3373403549194,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "4d1bca38.4b9934",\r
+                "ad38b737.99a528",\r
+                "d2df96f9.05ab08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ad38b737.99a528",\r
+        "type": "set",\r
+        "name": "set tmp.devicevidx",\r
+        "xml": "<set>\n<parameter name='tmp.devicevidx' value='`$idx`' />\n\n",\r
+        "comments": "",\r
+        "x": 3236.84765625,\r
+        "y": 891.0104351043701,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "26e95066.5bddc",\r
+        "type": "switchNode",\r
+        "name": "switch deviceId",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].name == 'deviceId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3535.515853881836,\r
+        "y": 831.677375793457,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "1f6de92a.592947"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1f6de92a.592947",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3688.5162239074707,\r
+        "y": 832.6774530410767,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "49ba52e1.34347c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "49ba52e1.34347c",\r
+        "type": "set",\r
+        "name": "set prop.wan.deviceId",\r
+        "xml": "<set>\n<parameter name='prop.wan.deviceId' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].value`' />\n",\r
+        "comments": "",\r
+        "x": 3857.516830444336,\r
+        "y": 831.2774877548218,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4d1bca38.4b9934",\r
+        "type": "for",\r
+        "name": "for loop deviceidx - Get deviceId from servicedata",\r
+        "xml": "<for index=\"deviceidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`\">\n    \n    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3279.045753479004,\r
+        "y": 766.0417041778564,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "9729ab27.7939b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9729ab27.7939b8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 3356.046485900879,\r
+        "y": 830.0418033599854,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "26e95066.5bddc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6cd6d96e.5cd3a8",\r
+        "type": "comment",\r
+        "name": "Get siteId from site resource created for this service",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 936.7578377723694,\r
+        "y": 440.0039186477661,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e1a9bec.bd0de4",\r
+        "type": "for",\r
+        "name": "for loop sidx - Get siteId from servicedata",\r
+        "xml": "<for index=\"sidx\" start=\"0\" end=\"`$ctx.site.vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`\">\n    \n    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 899.7578353881836,\r
+        "y": 478.6705856323242,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "d8025975.c452c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d8025975.c452c8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1161.7680282592773,\r
+        "y": 479.34741020202637,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "7ae7755a.84d27c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7ae7755a.84d27c",\r
+        "type": "switchNode",\r
+        "name": "switch siteId",\r
+        "xml": "<switch test=\"`$ctx.site.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$sidx].name == 'siteId'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1330.7581634521484,\r
+        "y": 479.67071628570557,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "6e34759a.33dd3c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6e34759a.33dd3c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1264.7586250305176,\r
+        "y": 546.6707553863525,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "4cc37cb0.d42884"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4cc37cb0.d42884",\r
+        "type": "set",\r
+        "name": "set prop.wan.siteId",\r
+        "xml": "<set>\n<parameter name='prop.wan.siteId' value='`$ctx.site.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$sidx].value`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1438.7585945129395,\r
+        "y": 543.2706317901611,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "83739943.858e68",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 807.7578125,\r
+        "y": 654.7539043426514,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "a8fa84ce.eb12f8",\r
+                "d18bc7f4.341358",\r
+                "3bf2ecab.90fcb4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a8fa84ce.eb12f8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1039.7578964233398,\r
+        "y": 618.753927230835,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "9b3d8e62.faaef"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d18bc7f4.341358",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1042.248779296875,\r
+        "y": 654.3279638290405,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "7795db23.93cf44"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3bf2ecab.90fcb4",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1037.581787109375,\r
+        "y": 690.661322593689,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "dde2f622.170a38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dde2f622.170a38",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1191.3542785644531,\r
+        "y": 688.1004095077515,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7795db23.93cf44",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1187.8201751708984,\r
+        "y": 652.6136512756348,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9b3d8e62.faaef",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 1195.2580108642578,\r
+        "y": 617.7538194656372,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "93891afe.aeea78",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 822.2679443359375,\r
+        "y": 742.4309062957764,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "5c43c4aa.9264cc",\r
+                "33df2014.cd50d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5c43c4aa.9264cc",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1057.2680702209473,\r
+        "y": 728.4308948516846,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "28f385cf.49854a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "28f385cf.49854a",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 1199.2680778503418,\r
+        "y": 727.4308958053589,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "112c2ecc.277fc1",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing get token rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1205.2680778503418,\r
+        "y": 764.8238840103149,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "33df2014.cd50d",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1056.5180702209473,\r
+        "y": 764.0738019943237,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "112c2ecc.277fc1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc9fd33d.1cf95",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 797.2676391601562,\r
+        "y": 797.7639751434326,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "addc3c45.8b358",\r
+        "type": "comment",\r
+        "name": "Create port",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1084.7578392028809,\r
+        "y": 826.2539043426514,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7a2f98d7.5ecea8",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode device port create",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-port.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"portResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 856.0918731689453,\r
+        "y": 883.8098802566528,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "fd994a2a.92c728",\r
+                "92fe968a.87b558"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "92fe968a.87b558",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1105.091932296753,\r
+        "y": 859.8099217414856,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "3a8360ac.8e93a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fd994a2a.92c728",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1153.0919361114502,\r
+        "y": 897.8100881576538,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "c9adde1d.a5805"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3a8360ac.8e93a",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create device port rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1249.0922660827637,\r
+        "y": 858.8099212646484,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c9adde1d.a5805",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1300.091947555542,\r
+        "y": 898.8099269866943,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a2c6a4a4.2e00b8",\r
+        "type": "for",\r
+        "name": "for loop idx - VF-module input parameters",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 861.4032020568848,\r
+        "y": 1001.4548950195312,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "925ea7f2.d972f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "925ea7f2.d972f8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1105.2991561889648,\r
+        "y": 1000.3768668174744,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "47d44aef.50cf54"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "47d44aef.50cf54",\r
+        "type": "switchNode",\r
+        "name": "switch IPMode",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'IPMode'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1253.4164009094238,\r
+        "y": 1002.3503503799438,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "14cc8583.77380a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "14cc8583.77380a",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1401.4163856506348,\r
+        "y": 999.3503150939941,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "1dbcdc9e.2ab813"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1dbcdc9e.2ab813",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1562.4032516479492,\r
+        "y": 1001.2326736450195,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "193e5621.82d8aa",\r
+                "c01114ca.b0a928"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "193e5621.82d8aa",\r
+        "type": "switchNode",\r
+        "name": "switch portType GE match",\r
+        "xml": "<switch test=\"`GE == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`\">\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1764.0699272155762,\r
+        "y": 1002.2327299118042,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "bc174d71.6f73c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc174d71.6f73c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1949.4041366577148,\r
+        "y": 993.2328510284424,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "b0b3b2d7.c3aed"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c01114ca.b0a928",\r
+        "type": "switchNode",\r
+        "name": "switch portType LTE match",\r
+        "xml": "<switch test=\"`LTE == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`\">\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1763.4032936096191,\r
+        "y": 1064.232717514038,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "acc83fa1.efe81"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "acc83fa1.efe81",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1964.4033832550049,\r
+        "y": 1068.2326908111572,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "30dfd74d.405928"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e31d4c6.c361fb",\r
+        "type": "comment",\r
+        "name": "set linkType as Ethernet",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 2189.4034156799316,\r
+        "y": 946.2327260971069,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "60995785.6141d8",\r
+        "type": "comment",\r
+        "name": "set linkType as Cellular",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 2200.625476837158,\r
+        "y": 1033.2326751947403,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "86ffb9d1.271bf8",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode device port create",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-port.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"portResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 877.5149421691895,\r
+        "y": 1130.7885818481445,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "fa0604ac.0f5bc8",\r
+                "2afd5b9a.0c9054"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2afd5b9a.0c9054",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1126.515001296997,\r
+        "y": 1106.7886233329773,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "fd5d5c5b.4f78f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa0604ac.0f5bc8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1126.515001296997,\r
+        "y": 1144.7887878417969,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "2654b242.f97d8e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fd5d5c5b.4f78f",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create device port rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1270.5153350830078,\r
+        "y": 1105.7886228561401,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2654b242.f97d8e",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1273.5150127410889,\r
+        "y": 1145.7886266708374,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b0b3b2d7.c3aed",\r
+        "type": "set",\r
+        "name": "set prop.wan.linkType Ethernet",\r
+        "xml": "<set>\n<parameter name='prop.wan.linkType' value=\"Ethernet\" />\n\n",\r
+        "comments": "",\r
+        "x": 2176.1807975769043,\r
+        "y": 986.6770839691162,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "30dfd74d.405928",\r
+        "type": "set",\r
+        "name": "set prop.wan.linkType Cellular",\r
+        "xml": "<set>\n<parameter name='prop.wan.linkType' value=\"Cellular\" />",\r
+        "comments": "",\r
+        "x": 2186.1808433532715,\r
+        "y": 1066.6770544052124,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e2c4dac5.6f39e8",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode get transport network info",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/network-orchestration-resources'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"get\"/>\n<parameter name=\"responsePrefix\" value=\"transportNetworksResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 908.5352516174316,\r
+        "y": 1220.0782823562622,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "7a45df8a.7903b",\r
+                "36ac3856.141338"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "555b730f.2ad3ec",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode wan port create",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-wan-port.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/transport-network-ports'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"wanPortResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 881.5354232788086,\r
+        "y": 1604.078293800354,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "3f91502c.081fa",\r
+                "6ca447f7.7cb2c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cb6170fa.31a46",\r
+        "type": "set",\r
+        "name": "set prop.wan.transportNetworkId",\r
+        "xml": "<set>\n<parameter name='prop.wan.transportNetworkId' value='`$transportNetworksResp.data.transportNetworks[$tidx].id`' />\n",\r
+        "comments": "",\r
+        "x": 1776.5262603759766,\r
+        "y": 1335.0683436393738,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "409701be.1a03c",\r
+        "type": "execute",\r
+        "name": "execute split ip and mask",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$prop.wan.ipAddress`'/>\n<parameter name=\"regex\" value=\"/\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"ipandMask\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 828.5250358581543,\r
+        "y": 1396.4012417793274,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "33b19903.96b096",\r
+                "f243f0f3.7944c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f243f0f3.7944c",\r
+        "type": "failure",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1029.5250549316406,\r
+        "y": 1374.4012331962585,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "f9bdce70.a5d11"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "33b19903.96b096",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1029.525058746338,\r
+        "y": 1415.4012370109558,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "7b17ef62.bca26"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f9bdce70.a5d11",\r
+        "type": "set",\r
+        "name": "set ipAddress prefixLength",\r
+        "xml": "<set>\n<parameter name='prop.wan.ip-address' value='`$ipandMask[0]`' />\n<parameter name='prop.wan.prefixLength' value='`$ipandMask[1]`' />",\r
+        "comments": "",\r
+        "x": 1226.525074005127,\r
+        "y": 1372.4012331962585,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7b17ef62.bca26",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value=\"An error occured while splitting sna1_route\" />\n",\r
+        "comments": "",\r
+        "x": 1184.5250663757324,\r
+        "y": 1412.4012360572815,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5dfad1bf.4368f",\r
+        "type": "switchNode",\r
+        "name": "switch transportNetworkName same",\r
+        "xml": "<switch test=\"`$transportNetworksResp.data.transportNetworks[$tidx].name == $prop.wan.transportNetworkName`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1364.5359382629395,\r
+        "y": 1287.7447051107883,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "2b9a741b.c318cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2b9a741b.c318cc",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1611.5355377197266,\r
+        "y": 1286.744643688202,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "cb6170fa.31a46"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "844b5fe4.d3379",\r
+        "type": "set",\r
+        "name": "set prop.wan.wanPortId",\r
+        "xml": "<set>\n<parameter name='prop.wan.wanPortId' value='`$wanPortResp.success[0].id`' />\n",\r
+        "comments": "",\r
+        "x": 1538.859546661377,\r
+        "y": 1622.735113143921,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c63182d3.fbcc4",\r
+        "type": "set",\r
+        "name": "set prop.wan.devicePortId",\r
+        "xml": "<set>\n<parameter name='prop.wan.devicePortId' value='`$portResp.success[0].id`' />\n",\r
+        "comments": "",\r
+        "x": 823.526050567627,\r
+        "y": 1176.0681076049805,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d1467d26.a7bbb",\r
+        "type": "comment",\r
+        "name": "Get network id",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1016.5349006652832,\r
+        "y": 1185.411289215088,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4696daa4.7bc6d4",\r
+        "type": "comment",\r
+        "name": "Create wan port",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 812.5349235534668,\r
+        "y": 1361.411374092102,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6ca447f7.7cb2c8",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1153.5351524353027,\r
+        "y": 1578.077886581421,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "6062b706.984518"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f91502c.081fa",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1151.5350723266602,\r
+        "y": 1625.078049659729,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "9419758e.c47e08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9419758e.c47e08",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1320.5350799560547,\r
+        "y": 1625.0778864622116,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "844b5fe4.d3379"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "88101c47.a8c7e",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create wan port rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1492.535488128662,\r
+        "y": 1579.0778856277466,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "36ac3856.141338",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1210.534755706787,\r
+        "y": 1199.0777764320374,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "b8093d9a.685ef"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a45df8a.7903b",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1210.5347518920898,\r
+        "y": 1239.077941417694,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "f5cec88.5afd738"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f5cec88.5afd738",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1354.534767150879,\r
+        "y": 1238.077778339386,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b8093d9a.685ef",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Get transport network info rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1352.5350875854492,\r
+        "y": 1198.0777764320374,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "86b35264.46fea",\r
+        "type": "comment",\r
+        "name": "TODO: split ip/mask",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1225.5347061157227,\r
+        "y": 1334.5815052986145,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "85c6d777.738908",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1114.5355415344238,\r
+        "y": 1286.411331653595,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "5dfad1bf.4368f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "675842c8.f4343c",\r
+        "type": "for",\r
+        "name": "for loop tidx - Get transportNetwork ID",\r
+        "xml": "<for index=\"tidx\" start=\"0\" end=\"`$transportNetworksResp.data.transportNetworks_length`\">\n    \n    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 870.5352210998535,\r
+        "y": 1289.411153793335,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "85c6d777.738908"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6062b706.984518",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1313.5389022827148,\r
+        "y": 1576.5816287994385,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9e802733.d722c8",\r
+        "type": "for",\r
+        "name": "for loop idx - VF-module input parameters",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 871.8372230529785,\r
+        "y": 1481.6666259765625,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "7d8af107.52b1d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7d8af107.52b1d",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1115.7331771850586,\r
+        "y": 1480.5885977745056,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "58ac9d77.f3c914"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "58ac9d77.f3c914",\r
+        "type": "switchNode",\r
+        "name": "switch IPMode",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'IPMode'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1263.8504219055176,\r
+        "y": 1482.562081336975,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "463d34c6.f0572c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "463d34c6.f0572c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1411.8504066467285,\r
+        "y": 1479.5620460510254,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "f6e7d7b8.9804f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f6e7d7b8.9804f8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1568.8372230529785,\r
+        "y": 1481.4443969726562,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "7986250.a52d3dc",\r
+                "80947f3.e50c28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7986250.a52d3dc",\r
+        "type": "switchNode",\r
+        "name": "switch IPMode Static match",\r
+        "xml": "<switch test=\"`Static == $prop.wan.IPMode`\">\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1774.50394821167,\r
+        "y": 1482.4444608688354,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "c5b82352.18946"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "80947f3.e50c28",\r
+        "type": "switchNode",\r
+        "name": "switch IPMode DHCP match",\r
+        "xml": "<switch test=\"`DHCP == $prop.wan.IPMode`\">\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1773.837314605713,\r
+        "y": 1544.4444484710693,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "ca30d3ba.e4aa5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8679bf14.4ac1",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 798.4032974243164,\r
+        "y": 2124.5665798187256,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7362e1fa.b1592",\r
+        "type": "set",\r
+        "name": "set device PortId to service data",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='devicePortId' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.wan.devicePortId`' />\n",\r
+        "comments": "",\r
+        "x": 858.0597534179688,\r
+        "y": 1779.222749710083,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "726be50f.6f16fc",\r
+        "type": "update",\r
+        "name": "update SDWAN wan port instance configuration in AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='wan-port-config' \n      key='wan-port-config.wan-port-config-id = $vf-module-topology-operation-input.vnf-information.vnf-id' >\n<parameter name=\"wan-port-config-id\" value=\"`$vf-module-topology-operation-input.vnf-information.vnf-id`\" />\n<parameter name='operational-status' value='Active' />\n<parameter name='device-port-id' value='`$prop.wan.devicePortId`' />\n<parameter name='wan-port-id' value='`$prop.wan.wanPortId`' />\n<parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 925.7223663330078,\r
+        "y": 2090.3707427978516,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "46743c8f.b3fd84",\r
+        "type": "set",\r
+        "name": "set wan portId to service data",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='wanPortId' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.wan.wanPortId`' />\n",\r
+        "comments": "",\r
+        "x": 864.0687103271484,\r
+        "y": 1869.4818668365479,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "35191a02.d89a16",\r
+        "type": "set",\r
+        "name": "set ipAddress prefixLength",\r
+        "xml": "<set>\n<parameter name='prop.wan.ip-address' value=\"\" />\n<parameter name='prop.wan.prefixLength' value=\"\" />\n<parameter name='prop.wan.providerIpAddress' value=\"\" />\n<parameter name='prop.wan.IpMode' value=\"static\" />\n<parameter name='prop.route.nextHopType' value=\"ip-address\" />\n<parameter name='prop.route.ipAddress' value=\"`$prop.wan.ipAddress`\" />\n\n",\r
+        "comments": "",\r
+        "x": 2158.292377471924,\r
+        "y": 1476.8992538452148,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "103790c7.a4e84f",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode underlay route",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-underlay.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static/action/batch-delete'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"underlayspokeResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 894.6254920959473,\r
+        "y": 1719.8992919921875,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "cb65e9dc.cb7d28",\r
+                "509b7bd.b23cb84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cb65e9dc.cb7d28",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1144.6253185272217,\r
+        "y": 1704.8995790481567,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "aae088c9.6e82a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "509b7bd.b23cb84",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1146.625638961792,\r
+        "y": 1748.8995885849,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "537341f9.e0df6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aae088c9.6e82a8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1290.209774017334,\r
+        "y": 1694.2653658390045,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "537341f9.e0df6",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1291.2095317840576,\r
+        "y": 1741.2653667926788,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d38fbe54.6487b",\r
+        "type": "set",\r
+        "name": "set ipAddress prefixLength",\r
+        "xml": "<set>\n<parameter name='prop.route.nextHopType' value=\"outbound-interface\" />\n<parameter name='prop.wan.IpMode' value=\"DHCP\" />\n<parameter name='prop.route.ipAddress' value=\"\" />\n",\r
+        "comments": "",\r
+        "x": 2161.7539710998535,\r
+        "y": 1548.0000038146973,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "15ae932b.8eaafd",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1469.5039100646973,\r
+        "y": 430,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "33f87d4b.131732",\r
+                "48f81161.66243"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "113b21af.23a45e",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic-device-param.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].name'\"/>\n<parameter name=\"field3\" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].name`'/>\n\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2628.8371620178223,\r
+        "y": 578,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bf88a576.7aa2c8",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic-device-name.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"'prop.wan.deviceName'\"/>\n<parameter name=\"field3\" value='`$prop.wan.deviceName`'/>\n<parameter name=\"field4\" value=\"'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value'\"/>\n<parameter name=\"field5\" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`'/>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2880.8371620178223,\r
+        "y": 661,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d2df96f9.05ab08",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.FileRecorder\">\n<parameter name=\"file\" value=\"/opt/opendaylight/current/data/log/svclogic-last.log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"'tmp.devicevidx'\"/>\n<parameter name=\"field3\" value='`$tmp.devicevidx`'/>\n\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3216.8371620178223,\r
+        "y": 930,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c5b82352.18946",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1973.5039100646973,\r
+        "y": 1476.6666259765625,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "35191a02.d89a16"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ca30d3ba.e4aa5",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1970.5039100646973,\r
+        "y": 1554.6666259765625,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": [\r
+            [\r
+                "d38fbe54.6487b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "92451c4e.ffaad",\r
+        "type": "set",\r
+        "name": "hardcode device port resp",\r
+        "xml": "<set>\n<parameter name='portResp.success[0].id' value=\"12345\" />\n",\r
+        "comments": "",\r
+        "x": 806.5352172851562,\r
+        "y": 945.5313758850098,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7f799175.fb047",\r
+        "type": "set",\r
+        "name": "increment wan-port param length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\n",\r
+        "comments": "",\r
+        "x": 866.5351791381836,\r
+        "y": 1824.0313453674316,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "131a2ffd.3a8e5",\r
+        "type": "set",\r
+        "name": "increment wan-port param length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\n",\r
+        "comments": "",\r
+        "x": 874.5351791381836,\r
+        "y": 1909.0313472747803,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e9b4c90b.c4ce98",\r
+        "type": "set",\r
+        "name": "set vf-module-id and vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 894.0352058410645,\r
+        "y": 2003.0313870636746,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7c031fb.d5948e",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 860.0352058410645,\r
+        "y": 2051.531388017349,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a7fe1093.6d40a",\r
+        "type": "set",\r
+        "name": "copy input data in service-data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 858.0351600646973,\r
+        "y": 1955.2813415527344,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7b8751b7.f6ba8",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 2064.0351600646973,\r
+        "y": 2255.03125,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5ef5bb05.ba3244",\r
+        "type": "set",\r
+        "name": "set vf-module-id and vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 2098.3383598327637,\r
+        "y": 2298.8343591690063,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7b8dfcbe.827b44",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 2065.338394165039,\r
+        "y": 2337.8344264030457,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e28c61da.26a12",\r
+        "type": "set",\r
+        "name": "hardcode port resp",\r
+        "xml": "<set>\n<parameter name='portResp.success[0].id' value=\"12345\" />\n",\r
+        "comments": "",\r
+        "x": 779.5039901733398,\r
+        "y": 842.3333721160889,\r
+        "z": "81e8e679.1e5f48",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-create.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-create.json
new file mode 100644 (file)
index 0000000..f862a2d
--- /dev/null
@@ -0,0 +1,533 @@
+[\r
+    {\r
+        "id": "bc28da2b.7303d8",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 323.0104064941406,\r
+        "y": 132.99999237060547,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "dad83918.445348"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dad83918.445348",\r
+        "type": "method",\r
+        "name": "sdwan-vf-operation-wanport-create",\r
+        "xml": "<method rpc='sdwan-vf-operation-wanport-create' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 322.0104064941406,\r
+        "y": 232.99999237060547,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "ffb1ada3.8a76c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "55cf0e90.e3564",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 179.51040267944336,\r
+        "y": 42,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "bc28da2b.7303d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ffb1ada3.8a76c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 481.01039123535156,\r
+        "y": 349.0000009536743,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "470949db.a87688",\r
+                "1946860c.52d49a",\r
+                "986d9d2e.d652e",\r
+                "176bae50.e7ba42",\r
+                "1c96aac1.62b6a5",\r
+                "d12731ca.f4e9a",\r
+                "ad8e03c8.3f99",\r
+                "99ca206c.689c4",\r
+                "45a27310.e17b0c",\r
+                "98b0c583.6fb0e8",\r
+                "f3463186.010ce",\r
+                "4efead29.a28254",\r
+                "187c318b.c5572e",\r
+                "29c03152.ef4a3e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "470949db.a87688",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 781.3398132324219,\r
+        "y": 240.49612522125244,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "4bf0f7e7.44aea8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4bf0f7e7.44aea8",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1033.3399047851562,\r
+        "y": 239.16278839111328,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "3d05a6f7.8cda9a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d918203.c2e31e",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1405.0063934326172,\r
+        "y": 241.16279125213623,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3d05a6f7.8cda9a",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1251.6732215881348,\r
+        "y": 241.16277027130127,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "d918203.c2e31e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "176bae50.e7ba42",\r
+        "type": "for",\r
+        "name": "for loop idx - VF input parameters",\r
+        "xml": "<for index=\"idx\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 855.2605972290039,\r
+        "y": 462.66665840148926,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "18c22866.3fa9a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "18c22866.3fa9a8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1070.0389404296875,\r
+        "y": 460.2222423553467,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "f7311df1.3a06f",\r
+                "eb8b9c09.06311"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f7311df1.3a06f",\r
+        "type": "execute",\r
+        "name": "execute split parameterName",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n<parameter name=\"original_string\" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\n<parameter name=\"regex\" value=\"_\"/>\n<parameter name=\"ctx_memory_result_key\" value=\"param-prefix\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1266.2951431274414,\r
+        "y": 437.97038078308105,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "eb8b9c09.06311",\r
+        "type": "set",\r
+        "name": "set parameterName",\r
+        "xml": "<set>\n<parameter name=\"`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`\" value='`$param-prefix[$param-prefix_length -1]`'/>\n",\r
+        "comments": "",\r
+        "x": 1235.7395706176758,\r
+        "y": 474.97049713134766,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f77b19d7.8bb178",\r
+        "type": "comment",\r
+        "name": "Take the parameter names by removing prefix",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1239.260799407959,\r
+        "y": 397.33332681655884,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1946860c.52d49a",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 795.7604064941406,\r
+        "y": 195.9999942779541,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "89c152d0.6fb2c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "89c152d0.6fb2c",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 982.4270858764648,\r
+        "y": 195.3332920074463,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "869ba82c.b1cd68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "869ba82c.b1cd68",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",\r
+        "comments": "",\r
+        "x": 1164.0937118530273,\r
+        "y": 195.3332920074463,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "986d9d2e.d652e",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 837.0103960037231,\r
+        "y": 315.9999952316284,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "6d96cae7.544aa4",\r
+                "7b4aef1d.e8397"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6d96cae7.544aa4",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1068.0104064941406,\r
+        "y": 291.99999237060547,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "8b1de33b.f87d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7b4aef1d.e8397",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1068.0104064941406,\r
+        "y": 331.99999237060547,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "e6620c2c.848df"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8b1de33b.f87d8",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1210.5104064941406,\r
+        "y": 291.99999237060547,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e6620c2c.848df",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1212.3674507141113,\r
+        "y": 331.9365043640137,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "9a648de3.1f16d",\r
+                "8d5a09c0.be4698"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8d5a09c0.be4698",\r
+        "type": "set",\r
+        "name": "set vf-index",\r
+        "xml": "<set>\n<parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1365.0659255981445,\r
+        "y": 301.5556030566804,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9a648de3.1f16d",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-index`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1421.4944305419922,\r
+        "y": 354.7777328491211,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "35f2967d.f1236a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9105950c.e52f88",\r
+        "type": "comment",\r
+        "name": "make sure this network doesn't exist already",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1645.1451606750488,\r
+        "y": 313.03179025650024,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "35f2967d.f1236a",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1696.7801513671875,\r
+        "y": 354.34923553466797,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "7879d3b9.a48b9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7879d3b9.a48b9c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1597.5103492736816,\r
+        "y": 412.9206666946411,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            [\r
+                "d7b29734.9c35b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d7b29734.9c35b8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1745.2604522705078,\r
+        "y": 412.7778587634675,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "99ca206c.689c4",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.site-vf-index`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\n",\r
+        "comments": "",\r
+        "x": 849.8635559082031,\r
+        "y": 742.4961910247803,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ad8e03c8.3f99",\r
+        "type": "execute",\r
+        "name": "execute generate-vf-module-index",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"prop.wan-port-vf-index\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 862.1971206665039,\r
+        "y": 688.1629104614258,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d12731ca.f4e9a",\r
+        "type": "set",\r
+        "name": "set new vf-module_length",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />",\r
+        "comments": "",\r
+        "x": 834.1970672607422,\r
+        "y": 635.1628475189209,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1c96aac1.62b6a5",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\n",\r
+        "comments": "",\r
+        "x": 846.1967353820801,\r
+        "y": 525.1542224884033,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "45a27310.e17b0c",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $prop.wan-port-vf-index\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 838.0104808807373,\r
+        "y": 794.0000371932983,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "98b0c583.6fb0e8",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 852.5105400085449,\r
+        "y": 843.9999303817749,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "187c318b.c5572e",\r
+        "type": "save",\r
+        "name": "save sdwan vpn resource in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='wan-port-config' \n      key='wan-port-config.wan-port-config-id = $prop.vnf-index' >\n<parameter name=\"wan-port-config-id\" value=\"`$prop.vnf-index`\" />\n<parameter name=\"wan-port-config-name\" value=\"`$prop.wan.name`\" />\n<parameter name=\"device-id\" value=\"`$prop.wan.deviceName`\" />\n<parameter name='vlan-id' value=\"`$prop.wan.vlanId`\" />\n<parameter name=\"ip-address\" value=\"`$prop.wan.ipAddress`\" />\n<parameter name=\"provider-ip-address\" value=\"`$prop.wan.providerIpAddress`\" />\n<parameter name=\"input-bandwidth\" value=\"`$prop.wan.inputBandwidth`\" />\n<parameter name=\"output-bandwidth\" value=\"`$prop.wan.outputBandwidth`\" />\n<parameter name=\"description\" value=\"`$prop.wan.description`\" />\n<parameter name=\"port-type\" value=\"`$prop.wan.portType`\" />\n<parameter name=\"port-number\" value=\"`$prop.wan.portNumber`\" />\n<parameter name=\"transport-network-name\" value=\"`$prop.wan.transportNetworkName`\" />\n<parameter name='operational-status' value='Created' />\n<parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\n<parameter name='selflink' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vf-module-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $service-data.vnfs.vnf[$vnf-index].vnf-id  + '/vnf-data/vf-modules/vf-module/' + $prop.site-vf-index + '/vf-module-data/'` \" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 856.0104484558105,\r
+        "y": 887.4999761581421,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "29c03152.ef4a3e",\r
+        "type": "save",\r
+        "name": "save service relationship in AAI",\r
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf:relationship-list' \n      key='generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-vpn\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-vpns/sdwan-vpn/' + $prop.site-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"sdwan-vpn.id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.site-vf-index`\" />\n\n\n<!--save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource:relationship-list' \n      key='site-resource.site-resource-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \n      force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"sdwan-site\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/network/sdwan-sites/sdwan-site/' + $prop.site-vf-index`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"sdwan-vpn.id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.site-vf-index`\" /-->\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 853.0103759765625,\r
+        "y": 933.5000076293945,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f3463186.010ce",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 803.7329216003418,\r
+        "y": 980.6738667488098,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4efead29.a28254",\r
+        "type": "call",\r
+        "name": "call sdwan-get-wan-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-wan-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 845.8992767333984,\r
+        "y": 587.8888759613037,\r
+        "z": "eaff5db6.7dde1",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-deactivate.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-deactivate.json
new file mode 100644 (file)
index 0000000..04265aa
--- /dev/null
@@ -0,0 +1,834 @@
+[\r
+    {\r
+        "id": "e69423a5.584ae",\r
+        "type": "execute",\r
+        "name": "execute Properties",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 849.5312957763672,\r
+        "y": 366.07812881469727,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a2e25c17.8e9c",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 130,\r
+        "y": 54.0000057220459,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "3fa8aef8.7e3df2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3fa8aef8.7e3df2",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 261.2856903076172,\r
+        "y": 103.23811435699463,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "2162b779.2eb3a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2162b779.2eb3a8",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-wanport-deactivate",\r
+        "xml": "<method rpc='sdwan-vf-operation-wanport-deactivate' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 264.4286193847656,\r
+        "y": 188.00003814697266,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "832591c7.4ef99"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7df3c0c6.f5b88",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 834.53125,\r
+        "y": 203.07812213897705,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "112ac69c.661419"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "112ac69c.661419",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1086.5313415527344,\r
+        "y": 201.7447853088379,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "9fb48502.518d68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e66ecc6.7152f3",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1458.1978302001953,\r
+        "y": 203.74478816986084,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9fb48502.518d68",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1304.864658355713,\r
+        "y": 203.74476718902588,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "e66ecc6.7152f3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ff28f3d.3169d1",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 848.9518432617188,\r
+        "y": 158.5819911956787,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "a6a2da6e.228e08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a6a2da6e.228e08",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1035.618522644043,\r
+        "y": 157.9152889251709,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "c0d198d3.426068"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c0d198d3.426068",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",\r
+        "comments": "",\r
+        "x": 1217.2851486206055,\r
+        "y": 157.9152889251709,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "61f42e0f.accb4",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1487.5312576293945,\r
+        "y": 373.0781125728972,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "ce0facb9.acf8f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d0cbbcf7.18e0c",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1906.8170928955078,\r
+        "y": 375.6496305465698,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "ada2f692.ece248"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bd278e04.68d68",\r
+        "type": "set",\r
+        "name": "set vf-module-length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 1474.102882385254,\r
+        "y": 336.8559989929199,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4efb1646.df29b8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1278.4042778015137,\r
+        "y": 350.2368840877898,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "61f42e0f.accb4",\r
+                "bd278e04.68d68",\r
+                "49047f5d.3dde6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1c241e5.3b7e6e2",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1134.047233581543,\r
+        "y": 350.3003720943816,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "4efb1646.df29b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8e428583.69a8e8",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 898.047215461731,\r
+        "y": 277.3003845214844,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "1c241e5.3b7e6e2",\r
+                "45b16795.1e16b8",\r
+                "5c72c52f.a612dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "45b16795.1e16b8",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1139.5312519073486,\r
+        "y": 249.0781135559082,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "b89d0343.04bd1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5c72c52f.a612dc",\r
+        "type": "other",\r
+        "name": "Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1141.5624408721924,\r
+        "y": 286.10942459106445,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "b89d0343.04bd1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b89d0343.04bd1",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-operation-input.vf-module-request-input.vf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1299.3399562835693,\r
+        "y": 266.9983730316162,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ada2f692.ece248",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2110.53133392334,\r
+        "y": 374.0781369502656,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "8cb3d733.8b9cc8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8cb3d733.8b9cc8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1872.8745422363281,\r
+        "y": 476.16428661346436,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "e9572390.a2ce1",\r
+                "7be5423c.87235c",\r
+                "39502de7.a9fc62"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e9572390.a2ce1",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2114.7612342834473,\r
+        "y": 446.50670051574707,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7be5423c.87235c",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2118.207492828369,\r
+        "y": 491.1643395423889,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ce0facb9.acf8f",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1695.0313034057617,\r
+        "y": 373.07812118530273,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "d0cbbcf7.18e0c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2948d13a.1b821e",\r
+        "type": "comment",\r
+        "name": "Get devices",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 848.0315361022949,\r
+        "y": 494.0781602859497,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "49047f5d.3dde6",\r
+        "type": "set",\r
+        "name": "set prop.site.deviceId_length",\r
+        "xml": "<set>\n<parameter name='prop.site.deviceId_length' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1500.53125,\r
+        "y": 301.07812213897705,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "832591c7.4ef99",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 405.52733993530273,\r
+        "y": 405.0742197036743,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "ff28f3d.3169d1",\r
+                "7df3c0c6.f5b88",\r
+                "8e428583.69a8e8",\r
+                "e69423a5.584ae",\r
+                "ce0e4f49.1217b",\r
+                "16f0a729.f1f5a9",\r
+                "d2d93614.7c8ad8",\r
+                "2604b323.ea5f4c",\r
+                "9139c857.0718b8",\r
+                "c9d5923c.c3e6a",\r
+                "4a67f6d4.3597f8",\r
+                "7c127312.19825c",\r
+                "1954d3bb.e0ec6c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "39502de7.a9fc62",\r
+        "type": "call",\r
+        "name": "call sdwan-get-wan-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-wan-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2109.5039443969727,\r
+        "y": 538.0039381980896,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9139c857.0718b8",\r
+        "type": "get-resource",\r
+        "name": "get-resource esr-thirdparty-sdnc",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"esr-thirdparty-sdnc\" \n\t\tkey=\"esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \n\t\t     depth = '1'\"\n        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 893.2539443969727,\r
+        "y": 444.75391960144043,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "679a2fa0.7fa24",\r
+                "db810e5a.69a4a",\r
+                "b796d6f.b8abb28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "679a2fa0.7fa24",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1125.2540283203125,\r
+        "y": 408.753942489624,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "e1a99634.deb268"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "db810e5a.69a4a",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1127.7449111938477,\r
+        "y": 444.3279790878296,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "363ab1e2.2b5cce"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b796d6f.b8abb28",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1123.0779190063477,\r
+        "y": 480.661337852478,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "cdf3743a.490b68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cdf3743a.490b68",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1276.8504104614258,\r
+        "y": 478.1004247665405,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "363ab1e2.2b5cce",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`\" />\n\n",\r
+        "comments": "",\r
+        "x": 1273.316307067871,\r
+        "y": 442.6136665344238,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e1a99634.deb268",\r
+        "type": "set",\r
+        "name": "set controller data",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.thirdpartySdnc.url' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.user' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`\" />\n<parameter name='prop.sdncRestApi.thirdpartySdnc.password' value=\"`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`\" />\n",\r
+        "comments": "",\r
+        "x": 1280.7541427612305,\r
+        "y": 407.75383472442627,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c9d5923c.c3e6a",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode Get token",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/actokentemplate.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"token-result\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 907.7640762329102,\r
+        "y": 532.4309215545654,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "80be9352.04481",\r
+                "fdeb2c27.d10b4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "80be9352.04481",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1142.76420211792,\r
+        "y": 518.4309101104736,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "303f14f3.7822fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "303f14f3.7822fc",\r
+        "type": "set",\r
+        "name": "set token-id",\r
+        "xml": "<set>\n<parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\n",\r
+        "comments": "",\r
+        "x": 1284.7642097473145,\r
+        "y": 517.430911064148,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "de3334dd.87a328",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing get token rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1290.7642097473145,\r
+        "y": 554.823899269104,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fdeb2c27.d10b4",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1142.01420211792,\r
+        "y": 554.0738172531128,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "de3334dd.87a328"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a67f6d4.3597f8",\r
+        "type": "call",\r
+        "name": "call sdwan-get-tenant-auth",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 884.7638244628906,\r
+        "y": 585.7639970779419,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "2604b323.ea5f4c",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 849.8993644714355,\r
+        "y": 1030.5663061141968,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4c7ada40.e6d834",\r
+        "type": "update",\r
+        "name": "update SDWAN wan port instance configuration in AAI",\r
+        "xml": "<update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='wan-port-config' \n      key='wan-port-config.wan-port-config-id = $vf-module-topology-operation-input.vnf-information.vnf-id' >\n<parameter name=\"wan-port-config-id\" value=\"`$vf-module-topology-operation-input.vnf-information.vnf-id`\" />\n<parameter name='operational-status' value='PendingDelete' />\n<parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\n<parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />\n<parameter name='model-version-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 969.2184829711914,\r
+        "y": 990.3698863983154,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ce0e4f49.1217b",\r
+        "type": "set",\r
+        "name": "copy input data to service data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\n",\r
+        "comments": "",\r
+        "x": 903.59619140625,\r
+        "y": 864.7630681991577,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "16f0a729.f1f5a9",\r
+        "type": "set",\r
+        "name": "set vf-module-id and vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 937.8993911743164,\r
+        "y": 908.5661773681641,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d2d93614.7c8ad8",\r
+        "type": "set",\r
+        "name": "set vf-module-level-oper-status",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />",\r
+        "comments": "",\r
+        "x": 904.8993911743164,\r
+        "y": 944.5661773681641,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1954d3bb.e0ec6c",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode device port delete",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-device-port-del.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports/action/batch-delete'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"portResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 952.03125,\r
+        "y": 770.078145980835,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "5763133a.85c38c",\r
+                "e2a71559.3f3e88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5763133a.85c38c",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1198.031234741211,\r
+        "y": 808.0782346725464,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "c730322d.384d7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e2a71559.3f3e88",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1194.0313148498535,\r
+        "y": 762.0781497955322,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "33e8f10d.25726e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "33e8f10d.25726e",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create vpn rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1335.031406402588,\r
+        "y": 762.0781507492065,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c730322d.384d7",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1342.0311012268066,\r
+        "y": 806.0781536102295,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7c127312.19825c",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode wan port delete",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n<parameter name=\"templateFileName\" value=\"`$prop.restapi.templateDir + '/sdwan-wan-port-del.json'`\" />\n<parameter name=\"restapiUrl\" value=\"`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/transport-network-ports/action/batch-delete'`\" />\n<parameter name=\"restapiUser\" value=\"`$prop.sdncRestApi.thirdpartySdnc.user`\" />\n<parameter name=\"restapiPassword\" value=\"`$prop.sdncRestApi.thirdpartySdnc.password`\" />\n<parameter name=\"format\" value=\"json\"/>\n<parameter name=\"httpMethod\" value=\"post\"/>\n<parameter name=\"responsePrefix\" value=\"portResp\"/>\n<parameter name=\"trustStoreFileName\" value=\"/opt/onap/sdnc/data/stores/truststore.onap.client.jks\"/>\n<parameter name=\"trustStorePassword\" value=\"adminadmin\"/>\n<parameter name=\"keyStoreFileName\" value=\"/opt/onap/sdnc/data/stores/sdnc.p12\"/>\n<parameter name=\"keyStorePassword\" value=\"adminadmin\"/>\n<parameter name='customHttpHeaders' value=\"`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 947.0314178466797,\r
+        "y": 664.0781440734863,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "e0828ab7.60a978",\r
+                "3d0c4f43.fce4d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e0828ab7.60a978",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1235.0315132141113,\r
+        "y": 696.0781135559082,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "aca8b9c6.d1fb58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3d0c4f43.fce4d",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1239.031593322754,\r
+        "y": 632.0781917572021,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            [\r
+                "729b835e.b7b53c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "729b835e.b7b53c",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error executing Create vpn rest api\" />\n",\r
+        "comments": "",\r
+        "x": 1384.0317649841309,\r
+        "y": 634.0781917572021,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "aca8b9c6.d1fb58",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1391.0313568115234,\r
+        "y": 694.0781135559082,\r
+        "z": "4fee9402.f5c9bc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-delete.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-delete.json
new file mode 100644 (file)
index 0000000..d290e8e
--- /dev/null
@@ -0,0 +1,663 @@
+[\r
+    {\r
+        "id": "4c9b7636.16d1a8",\r
+        "type": "method",\r
+        "name": "method sdwan-vf-operation-wanport-delete",\r
+        "xml": "<method rpc='sdwan-vf-operation-wanport-delete' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 227.01040649414062,\r
+        "y": 192.58634161949158,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "ef9a78fa.b0f5b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ae863831.900868",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 215.29611206054688,\r
+        "y": 98.23810935020447,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "4c9b7636.16d1a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3c4c41bd.66b0ee",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 136.01040649414062,\r
+        "y": 35.99999976158142,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "ae863831.900868"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ef9a78fa.b0f5b8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 246.67710876464844,\r
+        "y": 459.66673517227173,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "73502c25.0501b4",\r
+                "8ef64cba.b142",\r
+                "e7c6e1f4.291c4",\r
+                "5b7d49e0.41f2f8",\r
+                "8b01c2d1.84cd3",\r
+                "27503470.8bf84c",\r
+                "dce00f39.1d9f7",\r
+                "9d21b2cd.86c73",\r
+                "827a72ac.9aabf",\r
+                "67cd24d6.a0f83c",\r
+                "a35824b0.8bb6e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8ef64cba.b142",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 559.0417709350586,\r
+        "y": 272.269140958786,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "11c14e91.a941a1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "73502c25.0501b4",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 564.010425567627,\r
+        "y": 211.0000102519989,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "45acbb70.cf9d84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "45acbb70.cf9d84",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 744.0104064941406,\r
+        "y": 209.99999976158142,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "1c305856.7d7878"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1c305856.7d7878",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 893.4391326904297,\r
+        "y": 211.14291739463806,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "11c14e91.a941a1",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 782.0104217529297,\r
+        "y": 273.0000059604645,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "4a09a290.a75bbc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a09a290.a75bbc",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 997.0104064941406,\r
+        "y": 270.9999997615814,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "57c73c18.c834a4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "57c73c18.c834a4",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1161.0104064941406,\r
+        "y": 265.9999997615814,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e7c6e1f4.291c4",\r
+        "type": "switchNode",\r
+        "name": "switch vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 630.010440826416,\r
+        "y": 349.00002455711365,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "8cdd0772.dbdbf8",\r
+                "d22fa0c4.8a1a8",\r
+                "b6f26649.6b92a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d22fa0c4.8a1a8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 852.0104331970215,\r
+        "y": 383.0000340938568,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "1ebe6a81.7b0665"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8cdd0772.dbdbf8",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 857.0104293823242,\r
+        "y": 330.0000331401825,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "1ebe6a81.7b0665"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1ebe6a81.7b0665",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1015.0104331970215,\r
+        "y": 343.0000340938568,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b6f26649.6b92a8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 852.0104331970215,\r
+        "y": 444.0000340938568,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "5d0462e8.482a9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "98248461.3994b8",\r
+        "type": "set",\r
+        "name": "set vf-module_length",\r
+        "xml": "<set>\n<parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n\n",\r
+        "comments": "",\r
+        "x": 1206.0104484558105,\r
+        "y": 442.0000480413437,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5d0462e8.482a9c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1013.0104789733887,\r
+        "y": 441.00002551078796,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "98248461.3994b8",\r
+                "bb5716e5.5eb1d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bb5716e5.5eb1d8",\r
+        "type": "for",\r
+        "name": "for each existing vf-index",\r
+        "xml": "<for index='idx' start='0' end='`$vf-module-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1225.0104179382324,\r
+        "y": 495.00002455711365,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "56d74cea.fe48b4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "56d74cea.fe48b4",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1468.0104331970215,\r
+        "y": 490.0000340938568,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "2f21e786.1474c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2f21e786.1474c8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1709.0105609893799,\r
+        "y": 483.00003123283386,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "935557d5.b42b38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "935557d5.b42b38",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1861.0105323791504,\r
+        "y": 485.00002455711365,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "b801dc09.3262a",\r
+                "fd33c1ac.d18c2",\r
+                "49806a1a.1b29c4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b801dc09.3262a",\r
+        "type": "set",\r
+        "name": "set tmp.vidx and ctx.vnf-data",\r
+        "xml": "<set>\n<parameter name='tmp.vidx' value='`$idx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 2083.0105323791504,\r
+        "y": 481.00002455711365,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fd33c1ac.d18c2",\r
+        "type": "set",\r
+        "name": "set vf-module-request-input.",\r
+        "xml": "<set>\n<parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\n\n",\r
+        "comments": "",\r
+        "x": 2089.0105323791504,\r
+        "y": 530.0000245571136,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "49806a1a.1b29c4",\r
+        "type": "call",\r
+        "name": "call sdwan-get-vf-module-device-param",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2117.010753631592,\r
+        "y": 578.0000302791595,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5b7d49e0.41f2f8",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.vidx ",\r
+        "xml": "<switch test=\"`$tmp.vidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 569.0416526794434,\r
+        "y": 522.0161073207855,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "93788503.77e6c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "93788503.77e6c8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 716.4702949523926,\r
+        "y": 521.5875174999237,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "70fed172.85f44"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "70fed172.85f44",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 865.8990211486816,\r
+        "y": 522.7304351329803,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8b01c2d1.84cd3",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 613.3398132324219,\r
+        "y": 592.3333127498627,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "223c17b4.64b778",\r
+                "e9d52081.e76dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "223c17b4.64b778",\r
+        "type": "outcome",\r
+        "name": "outcome PendingDelete",\r
+        "xml": "<outcome value='PendingDelete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 904.1730804443359,\r
+        "y": 596.4444358348846,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "814b2c34.1fd7f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e9d52081.e76dc",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 871.1732177734375,\r
+        "y": 648.4444885253906,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "714ed175.ddb84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "714ed175.ddb84",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`\" />",\r
+        "comments": "",\r
+        "x": 1030.6729850769043,\r
+        "y": 651.4444875717163,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "814b2c34.1fd7f",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1101.4794807434082,\r
+        "y": 606.769590139389,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "67cd24d6.a0f83c",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 562.031307220459,\r
+        "y": 966.0313129425049,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "27503470.8bf84c",\r
+        "type": "for",\r
+        "name": "for lidx..service-data.vf-modules.vf-module[]",\r
+        "xml": "<for index='lidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 644.1178894042969,\r
+        "y": 712.1424579620361,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "666e6c4f.f97484"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dce00f39.1d9f7",\r
+        "type": "set",\r
+        "name": "set new vnf length",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length\" value='`$prop.vnfidxLen`'/>\n\n\t\n",\r
+        "comments": "",\r
+        "x": 568.2192611694336,\r
+        "y": 764.9466757774353,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9d21b2cd.86c73",\r
+        "type": "set",\r
+        "name": "Remove vnf from ServiceData",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].\" value=\"\"/>\n",\r
+        "comments": "",\r
+        "x": 605.1179351806641,\r
+        "y": 815.1424608230591,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "666e6c4f.f97484",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 904.1178798675537,\r
+        "y": 719.1423177719116,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "46998b08.18a904"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a35824b0.8bb6e8",\r
+        "type": "delete",\r
+        "name": "delete wanport vf instance configuration in AAI",\r
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource='site-resource' \n        key='site-resource.site-resource-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 654.1183090209961,\r
+        "y": 906.4041156768799,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "46998b08.18a904",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lidx].vf-module-data.vf-module-information.vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1090.1179466247559,\r
+        "y": 719.1424784660339,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "52431b6f.b34934"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "52431b6f.b34934",\r
+        "type": "outcomeFalse",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1259.1179542541504,\r
+        "y": 718.142315864563,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "2b619a80.4a9f36"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2b619a80.4a9f36",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1413.117793083191,\r
+        "y": 710.1423168182373,\r
+        "z": "fa825249.678d7",\r
+        "wires": [\r
+            [\r
+                "466caa7f.55c334",\r
+                "921821fe.9836b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "466caa7f.55c334",\r
+        "type": "set",\r
+        "name": "set  vnf data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 1578.1178884506226,\r
+        "y": 685.1424722671509,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "921821fe.9836b",\r
+        "type": "set",\r
+        "name": "set prop.vnfNewidx",\r
+        "xml": "<set>\n<parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\n",\r
+        "comments": "",\r
+        "x": 1600.1178884506226,\r
+        "y": 741.1424360275269,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "827a72ac.9aabf",\r
+        "type": "set",\r
+        "name": "set vf-module-object-path",\r
+        "xml": "<set>\n<parameter name='vf-module-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $vf-module-topology-operation-input.vf-module-information.vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology/'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vf-module-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",\r
+        "comments": "",\r
+        "x": 591.9201431274414,\r
+        "y": 860.4757957458496,\r
+        "z": "fa825249.678d7",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_validate-sdwan-vf-vpn-input-parameters.json b/platform-logic/generic-resource-api/src/main/json/sdwan/GENERIC-RESOURCE-API_validate-sdwan-vf-vpn-input-parameters.json
new file mode 100644 (file)
index 0000000..8a5d8f9
--- /dev/null
@@ -0,0 +1,1305 @@
+[\r
+    {\r
+        "id": "3eca748a.ef817c",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 123,\r
+        "y": 75,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "350fb0d5.88723"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "350fb0d5.88723",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 368.2857131958008,\r
+        "y": 74.23807907104492,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "7fecfee8.d291b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7fecfee8.d291b",\r
+        "type": "method",\r
+        "name": "validate-sdwan-vf-vpn-input-parameters",\r
+        "xml": "<method rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 451.9166946411133,\r
+        "y": 209.25301837921143,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "8f6f1f8b.897a9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8f6f1f8b.897a9",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 735.9167022705078,\r
+        "y": 197.25304317474365,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "634b7128.2e84d",\r
+                "adb8eda0.ca986",\r
+                "bc20a4d8.66ea78",\r
+                "376a189c.5eea28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "634b7128.2e84d",\r
+        "type": "switchNode",\r
+        "name": "switch  svc-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 995.916633605957,\r
+        "y": 45.25303936004639,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "183ac3e9.257bcc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "183ac3e9.257bcc",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1186.6309356689453,\r
+        "y": 46.2530403137207,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "65be383e.39b058"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "65be383e.39b058",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-request-id is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 1361.0594863891602,\r
+        "y": 45.25303268432617,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "adb8eda0.ca986",\r
+        "type": "switchNode",\r
+        "name": "switch svc-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 332.9166564941406,\r
+        "y": 468.2530336380005,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "83c4de98.01196",\r
+                "ce7e74f7.3c86c8",\r
+                "147fd5d9.68de3a",\r
+                "1561519f.abda0e",\r
+                "d7c5bf00.510dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "83c4de98.01196",\r
+        "type": "outcome",\r
+        "name": "create",\r
+        "xml": "<outcome value='create'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 526.5000228881836,\r
+        "y": 297.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "363f7231.506cbe"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "363f7231.506cbe",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 687.5000228881836,\r
+        "y": 297.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "46be34f.5b2c7cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ce7e74f7.3c86c8",\r
+        "type": "outcome",\r
+        "name": "deactivate",\r
+        "xml": "<outcome value='deactivate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 499.4920120239258,\r
+        "y": 906.428539276123,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "aec7db3f.798358"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "147fd5d9.68de3a",\r
+        "type": "outcome",\r
+        "name": "delete",\r
+        "xml": "<outcome value='delete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 503.20639419555664,\r
+        "y": 1077.1430969238281,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "c7708172.24701"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1561519f.abda0e",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 502.9682846069336,\r
+        "y": 1250.571382522583,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b6252f6e.c1321"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6252f6e.c1321",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$vf-module-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n",\r
+        "comments": "",\r
+        "x": 686.5398178100586,\r
+        "y": 1251.190523147583,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "46be34f.5b2c7cc",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 888,\r
+        "y": 295.6666797399521,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3528f63.34e230a",\r
+                "82048a2c.348118"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3528f63.34e230a",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1073.4999923706055,\r
+        "y": 323.66667652130127,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3198409.3ebdec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3198409.3ebdec",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is required to be SOTN CreateVPNNetworkInstance for svc-action=create\" />\n",\r
+        "comments": "",\r
+        "x": 1224.0000228881836,\r
+        "y": 317.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ee1459dc.d090c8",\r
+        "type": "other",\r
+        "name": "DeleteSDWANVpnInstance",\r
+        "xml": "<outcome value='DeleteSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 945.0634384155273,\r
+        "y": 1073.698395729065,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "773b0668.3dfda8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "640b4312.a9c5ac",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 860.6189804077148,\r
+        "y": 1149.920636177063,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "20eafb56.ca5e14"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "20eafb56.ca5e14",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is required to be SOTN DeleteVPNNetworkInstance for svc-action=delete\" />\n",\r
+        "comments": "",\r
+        "x": 1020.9524002075195,\r
+        "y": 1152.0317735671997,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "773b0668.3dfda8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1168.9523086547852,\r
+        "y": 1079.9206190109253,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "30507c3b.465aa4",\r
+                "b4bebf6c.2b4fa",\r
+                "b3df3a7b.216bd8",\r
+                "eb92e3d.8a6ff2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d7c5bf00.510dc",\r
+        "type": "outcome",\r
+        "name": "activate",\r
+        "xml": "<outcome value='activate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 520.4285774230957,\r
+        "y": 560.7143135070801,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "aa89a015.4408d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aa89a015.4408d",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 703.2857437133789,\r
+        "y": 557.8571634292603,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "c1f6d379.b3eef",\r
+                "89075fc5.672ae"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c1f6d379.b3eef",\r
+        "type": "other",\r
+        "name": "ActivateSDWANVpnInstance",\r
+        "xml": "<outcome value='ActivateSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 956.5000228881836,\r
+        "y": 537.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "ce665d03.3901d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "89075fc5.672ae",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 886.5000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "c6e2911c.5f916"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c6e2911c.5f916",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is required to be SOTN ActivateVPNNetworkInstance for svc-action=activate\" />\n",\r
+        "comments": "",\r
+        "x": 1044.0000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ce665d03.3901d",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1187.5000228881836,\r
+        "y": 537.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b3df3a7b.216bd8",\r
+                "30507c3b.465aa4",\r
+                "b4bebf6c.2b4fa",\r
+                "57bd5824.2497c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c598159a.7423c8",\r
+        "type": "other",\r
+        "name": "DeactivateSDWANVpnInstance",\r
+        "xml": "<outcome value='DeactivateSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 942.9206390380859,\r
+        "y": 908.1429328918457,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "50af0272.e02a9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e01173d7.fe6b9",\r
+        "type": "other",\r
+        "name": "Other",\r
+        "xml": "<outcome value='Other'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 857.9206314086914,\r
+        "y": 977.1429405212402,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d14295e9.c68018"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d14295e9.c68018",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is required to be SOTN DeactivateVPNNetworkInstance for svc-action=deactivate\" />\n",\r
+        "comments": "",\r
+        "x": 1038.9206466674805,\r
+        "y": 978.1429405212402,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "aec7db3f.798358",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 679.7776947021484,\r
+        "y": 910.6188039779663,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "c598159a.7423c8",\r
+                "e01173d7.fe6b9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c7708172.24701",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 683.5554962158203,\r
+        "y": 1076.9523208141327,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "ee1459dc.d090c8",\r
+                "640b4312.a9c5ac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "50af0272.e02a9c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1202.888786315918,\r
+        "y": 910.9523277282715,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "30507c3b.465aa4",\r
+                "b4bebf6c.2b4fa",\r
+                "b3df3a7b.216bd8",\r
+                "c2db488a.b105a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "82048a2c.348118",\r
+        "type": "other",\r
+        "name": "CreateSDWANVpnInstance",\r
+        "xml": "<outcome value='CreateSDWANVpnInstance'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1172.499984741211,\r
+        "y": 276.6666679382324,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "7a0b5551.c75d9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a0b5551.c75d9c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1407.49995803833,\r
+        "y": 275.6666679382324,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3f52a78f.7ab728"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f52a78f.7ab728",\r
+        "type": "for",\r
+        "name": "for loop i - vpn vf input parameters",\r
+        "xml": "<for index=\"i\" start=\"0\" end=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1638.000015258789,\r
+        "y": 276.6666679382324,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d37b6b2c.71fb38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d37b6b2c.71fb38",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1846.5000228881836,\r
+        "y": 277.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "9ec108e6.32a3b8",\r
+                "a16aa1da.005f3",\r
+                "3a20c40b.dcc4cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9ec108e6.32a3b8",\r
+        "type": "set",\r
+        "name": "clear tmp-data",\r
+        "xml": "<set>\n<parameter name='tmp.name' value='' />\n<parameter name='tmp.value' value='' />\n",\r
+        "comments": "",\r
+        "x": 2029.5000228881836,\r
+        "y": 237.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a16aa1da.005f3",\r
+        "type": "set",\r
+        "name": "set tmp-data",\r
+        "xml": "<set>\n<parameter name='tmp.name' value=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].name`\"/>\n<parameter name='tmp.value' value=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].value`\"/>\n",\r
+        "comments": "",\r
+        "x": 2024.0000228881836,\r
+        "y": 277.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3a20c40b.dcc4cc",\r
+        "type": "switchNode",\r
+        "name": "switch name",\r
+        "xml": "<switch test=\"`$tmp.name`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2024.0000228881836,\r
+        "y": 317.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3280408b.66ab3",\r
+                "63ad3611.30c718",\r
+                "2eab978e.1492a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d22ab892.eef718",\r
+        "type": "switchNode",\r
+        "name": "switch value",\r
+        "xml": "<switch test=\"`$tmp.value`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2484.0001907348633,\r
+        "y": 269.66669142246246,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b07f67fa.6ab208"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2eab978e.1492a8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2243.500358581543,\r
+        "y": 335.66667902469635,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "5967794c.72e8b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5967794c.72e8b8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[' + $i + ']' + '.name is a required input'`\" />\n",\r
+        "comments": "",\r
+        "x": 2418.5003623962402,\r
+        "y": 334.66667902469635,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3280408b.66ab3",\r
+        "type": "other",\r
+        "name": "name",\r
+        "xml": "<outcome value='name'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2243.500358581543,\r
+        "y": 219.66667330265045,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d22ab892.eef718"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "63ad3611.30c718",\r
+        "type": "other",\r
+        "name": "topology",\r
+        "xml": "<outcome value='topology'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2255.500114440918,\r
+        "y": 273.333335518837,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d22ab892.eef718"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b07f67fa.6ab208",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2627.5001907348633,\r
+        "y": 269.66669142246246,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "3ecabf5c.8d652"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3ecabf5c.8d652",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'vf-module-request-input.vf-module-input-parameters.param '+ $tmp.name +' is a required input'`\" />\n",\r
+        "comments": "",\r
+        "x": 2785.5001907348633,\r
+        "y": 269.66669142246246,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b3df3a7b.216bd8",\r
+        "type": "switchNode",\r
+        "name": "switch service-data.vf-modules.vf-module_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1479.3889541625977,\r
+        "y": 576.9999761581421,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "37913775.d258a8",\r
+                "8c9e338f.0d83c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "37913775.d258a8",\r
+        "type": "other",\r
+        "name": "outcome Null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1748.0000228881836,\r
+        "y": 556.666711807251,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "7c4231f0.9cbb7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7c4231f0.9cbb7",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1924.0000228881836,\r
+        "y": 557.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8c9e338f.0d83c",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1726.5000228881836,\r
+        "y": 597.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b6f61e8c.9dd35"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6f61e8c.9dd35",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1887.5000228881836,\r
+        "y": 597.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "9317c153.6ccad",\r
+                "bdedbaa4.65e588"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9317c153.6ccad",\r
+        "type": "for",\r
+        "name": "for nidx..service-data.vf-modules.vf-module[]",\r
+        "xml": "<for index='nidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2150.0000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "1fade275.78b10e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1fade275.78b10e",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id found",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n    \n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2436.0000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "99a1d82a.9dd8c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "99a1d82a.9dd8c8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2606.5000228881836,\r
+        "y": 577.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "39ae6a67.1c8296"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "70e3cfee.6e895",\r
+        "type": "set",\r
+        "name": "set tmp.nidx and ctx.network-data",\r
+        "xml": "<set>\n<parameter name='tmp.nidx' value='`$nidx`' />\n<parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-data.`' />\n",\r
+        "comments": "",\r
+        "x": 3007.50008392334,\r
+        "y": 574.6667140722275,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1412cffb.8d463",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 2364.0000228881836,\r
+        "y": 617.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fbeeeb3e.43c3b8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2226.5000228881836,\r
+        "y": 617.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "1412cffb.8d463"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bdedbaa4.65e588",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.nidx ",\r
+        "xml": "<switch test=\"`$tmp.nidx`\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2072.5000228881836,\r
+        "y": 617.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "fbeeeb3e.43c3b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "57bd5824.2497c8",\r
+        "type": "switchNode",\r
+        "name": "switch network-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1451.6667098999023,\r
+        "y": 656.5555486679077,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "719dd138.28ef4",\r
+                "2dca8a18.a65586"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "719dd138.28ef4",\r
+        "type": "outcome",\r
+        "name": "outcome Created",\r
+        "xml": "<outcome value='Created'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1748.5001258850098,\r
+        "y": 656.5555467605591,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "94e9cf1a.6c399"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2dca8a18.a65586",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1716.5001258850098,\r
+        "y": 696.5555467605591,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "2c8432e2.7a0b8e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2c8432e2.7a0b8e",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'vf-module is not in appropriate state for activate. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`\" />\n",\r
+        "comments": "",\r
+        "x": 1874.0001258850098,\r
+        "y": 696.5555467605591,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b4bebf6c.2b4fa",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-id",\r
+        "xml": "<switch test=\"`$vf-module-topology-operation-input.vf-module-information.vf-module-id`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1398.5000228881836,\r
+        "y": 517.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "9ad9b806.2c19b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9ad9b806.2c19b8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1626.5000228881836,\r
+        "y": 517.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "b7b28733.f37c08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b7b28733.f37c08",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-request-input.network-input-parameters.name is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 1764.0000228881836,\r
+        "y": 517.6666707992554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "30507c3b.465aa4",\r
+        "type": "execute",\r
+        "name": "execute requiredParameters",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\n<parameter name=\"vf-module-topology-operation-input.vf-module-information.vf-module-id\" value=\"$vf-module-topology-operation-input.vf-module-information.vf-module-id\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1433.0000228881836,\r
+        "y": 477.66667079925537,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c2db488a.b105a8",\r
+        "type": "switchNode",\r
+        "name": "switch network-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1479.8332748413086,\r
+        "y": 906.5555257797241,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "cf4b307b.b1b04",\r
+                "acc49742.fd0df8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cf4b307b.b1b04",\r
+        "type": "outcome",\r
+        "name": "outcome Active",\r
+        "xml": "<outcome value='Active'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1753.166648864746,\r
+        "y": 880.9999837875366,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "e31a54a2.3ff1f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "acc49742.fd0df8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1723.166648864746,\r
+        "y": 920.9999837875366,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "bc3125bf.c135a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc3125bf.c135a8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'vf-module is not in appropriate state for deactivate. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`\" />\n    ",\r
+        "comments": "",\r
+        "x": 1889.166648864746,\r
+        "y": 922.9999837875366,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "eb92e3d.8a6ff2",\r
+        "type": "switchNode",\r
+        "name": "switch network-level-oper-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1468.7221908569336,\r
+        "y": 1077.6666097640991,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "4005e1e5.db606",\r
+                "3f0b16e4.30f1ca"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4005e1e5.db606",\r
+        "type": "outcome",\r
+        "name": "outcome PendingDelete",\r
+        "xml": "<outcome value='PendingDelete'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1768.7222518920898,\r
+        "y": 1045.444405555725,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "e99f233c.ef676"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f0b16e4.30f1ca",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1712.055564880371,\r
+        "y": 1092.1110677719116,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "26e244b4.b2362c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "26e244b4.b2362c",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'vf-module is not in appropriate state for delete. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`\" />\n",\r
+        "comments": "",\r
+        "x": 1878.055564880371,\r
+        "y": 1094.1110677719116,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "94e9cf1a.6c399",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1940.5001029968262,\r
+        "y": 657.6666488647461,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e31a54a2.3ff1f8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1953.1665267944336,\r
+        "y": 879.1481161117554,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e99f233c.ef676",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1984.277732849121,\r
+        "y": 1045.8147420883179,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "39ae6a67.1c8296",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2756.666534423828,\r
+        "y": 574.0000190734863,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "70e3cfee.6e895"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc20a4d8.66ea78",\r
+        "type": "switchNode",\r
+        "name": "switch vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 971.0065307617188,\r
+        "y": 121.24849605560303,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "ae64d058.26533"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ae64d058.26533",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1151.0065116882324,\r
+        "y": 120.24848556518555,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "d4c5df8d.2e7e3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d4c5df8d.2e7e3",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf entry not found in service-data\" />\n",\r
+        "comments": "",\r
+        "x": 1300.4352378845215,\r
+        "y": 121.39140319824219,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "376a189c.5eea28",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 951.0379104614258,\r
+        "y": 183.51763439178467,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "891fced5.d7d06"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "891fced5.d7d06",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`\">    \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1189.0065269470215,\r
+        "y": 183.2484917640686,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "2828372d.9354b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2828372d.9354b8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1404.0065116882324,\r
+        "y": 181.24848556518555,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": [\r
+            [\r
+                "56c573f0.8eef8c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "56c573f0.8eef8c",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1568.0065116882324,\r
+        "y": 176.24848556518555,\r
+        "z": "619b2b0c.b0ac74",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
index 83427b5..a049e64 100755 (executable)
@@ -109,6 +109,7 @@ GENERIC-RESOURCE-API security-zone-topology-operation-unassign ${project.version
 GENERIC-RESOURCE-API security-zone-topology-operation ${project.version} sync
 GENERIC-RESOURCE-API self-serve-aai-vf-module-put ${project.version} sync
 GENERIC-RESOURCE-API self-serve-aai-vnf-put ${project.version} sync
+GENERIC-RESOURCE-API self-serve-aai-pnf-put ${project.version} sync
 GENERIC-RESOURCE-API self-serve-capability-param-resolution ${project.version} sync
 GENERIC-RESOURCE-API self-serve-pnf-generate-name ${project.version} sync
 GENERIC-RESOURCE-API self-serve-vnf-generate-name ${project.version} sync
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-pnf-put.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-pnf-put.xml
new file mode 100644 (file)
index 0000000..6631d89
--- /dev/null
@@ -0,0 +1,156 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='self-serve-aai-pnf-put' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$ss.capability-name`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="ss.capability-name is null" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$ss.capability-action`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="ss.capability-action is null" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='assign'>\r
+                    <block atomic='true'>\r
+                        <for silentFailure='true' index="aidx" start="0" end="`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`">\r
+                            <switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$aidx].name`'>\r
+                                <outcome value='pnf-name'>\r
+                                    <set>\r
+                                        <parameter name='ss.param.pnf-name' value ='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$aidx].value`' />\r
+                                        <parameter name='ss.param.pnf-name-index' value='`$aidx`' />\r
+                                    </set>\r
+                                </outcome>\r
+                                <outcome value='pnf-name2'>\r
+                                    <set>\r
+                                        <parameter name='ss.param.pnf-name2' value ='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$aidx].value`' />\r
+                                        <parameter name='ss.param.pnf-name2-index' value='`$aidx`' />\r
+                                    </set>\r
+                                </outcome>\r
+                                <outcome value='pnf-id'>\r
+                                    <set>\r
+                                        <parameter name='ss.param.pnf-id' value ='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$aidx].value`' />\r
+                                        <parameter name='ss.param.pnf-id-index' value='`$aidx`' />\r
+                                    </set>\r
+                                </outcome>\r
+                                <outcome value='aai-pnf-put'>\r
+                                    <set>\r
+                                        <parameter name='ss.param.aai-pnf-put-index' value='`$aidx`' />\r
+                                    </set>\r
+                                </outcome>\r
+                                <outcome value='ipv4-oam-address'>\r
+                                    <set>\r
+                                        <parameter name='ss.param.ipv4-oam-address' value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$aidx].value`' />\r
+                                        <parameter name='ss.param.ipv4-oam-address-index' value='`$aidx`' />\r
+                                    </set>\r
+                                </outcome>\r
+                                <outcome value='ipv6-oam-address'>\r
+                                    <set>\r
+                                        <parameter name='ss.param.ipv6-oam-address' value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$aidx].value`' />\r
+                                        <parameter name='ss.param.ipv6-oam-address-index' value='`$aidx`' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+       resource="pnf"\r
+               key="pnf.pnf-name = $ss.param.pnf-name "\r
+       pfx="tmp.aai.pnf" >\r
+                            <outcome value='failure'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$ss.param.aai-pnf-put-index].resource-resolution-data.status' \r
+       value='FAILED' />\r
+                                    </set>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='500' />\r
+                                        <parameter name='error-message' value="`'Encountered error to get pnf with pnf-name=' + $ss.param.pnf-name + ' from AnAI'`" />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$ss.param.aai-pnf-put-index].resource-resolution-data.status' \r
+       value='FAILED' />\r
+                                    </set>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='500' />\r
+                                        <parameter name='error-message' value="`'pnf with pnf-name=' + $ss.param.pnf-name + ' not found in AAI'`" />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <set>\r
+                            <parameter name="ss.selflink" \r
+       value="`'restconf/config/GENERIC-RESOURCE-API:services/service/' + \r
+       $service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.service-instance-id + \r
+       '/service-data/pnfs/pnf/' + \r
+       $ss.param.pnf-id + \r
+       '/pnf-data/pnf-topology/'`" />\r
+                        </set>\r
+                        <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+       resource="pnf"\r
+               key="pnf.pnf-name = $ss.param.pnf-name " >\r
+                            <parameter name="pnf-name2" value="`$ss.param.pnf-name2`" />\r
+                            <parameter name="prov-status" value="PREPROV" />\r
+                            <parameter name="selflink" value="`$ss.selflink`" />\r
+                            <parameter name="ipaddress-v4-oam" value="`$ss.param.ipv4-oam-address`" />\r
+                            <parameter name="ipaddress-v6-oam" value="`$ss.param.ipv6-oam-address`" />\r
+                            <parameter name="model-customization-id"\r
+        value="`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.onap-model-information.model-customization-uuid`" />\r
+                            <parameter name="model-invariant-id"\r
+        value="`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.onap-model-information.model-invariant-uuid`" />\r
+                            <parameter name="model-version-id"\r
+        value="`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.onap-model-information.model-uuid`" />\r
+                            <outcome value='failure'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$ss.param.aai-pnf-put-index].resource-resolution-data.status' \r
+       value='FAILED' />\r
+                                    </set>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='500' />\r
+                                        <parameter name='error-message' value="`'Failed to update pnf.pnf-name in AnAI with pnf-name=' + $ss.param.pnf-name`" />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$ss.param.aai-pnf-put-index].resource-resolution-data.status' \r
+       value='FAILED' />\r
+                                    </set>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='500' />\r
+                                        <parameter name='error-message' value="`'pnf with pnf-name =' + $ss.param.pnf-name + ' is not found in AAI'`" />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                        </update>\r
+                        <set>\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$ss.param.aai-pnf-put-index].resource-resolution-data.status' \r
+       value='SUCCESS' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$ss.param.aai-pnf-put-index].value' \r
+       value='SUCCESS' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/ss-aai-pnf-put.log' />\r
+            </execute>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
old mode 100755 (executable)
new mode 100644 (file)
index 557afd5..eab88b4
                 <outcome value='assign'>\r
                     <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign' mode='sync' ></call>\r
                 </outcome>\r
-                <outcome value='activate'>\r
-                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-activate' mode='sync' ></call>\r
-                </outcome>\r
-                <outcome value='deactivate'>\r
-                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-deactivate' mode='sync' ></call>\r
-                </outcome>\r
                 <outcome value='unassign'>\r
                     <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-unassign' mode='sync' ></call>\r
                 </outcome>\r
                 <outcome value='changeassign'>\r
                     <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-changeassign' mode='sync' ></call>\r
                 </outcome>\r
+                <outcome value='create'>\r
+                    <block atomic="true">\r
+                        <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                            <outcome value='CreateSDWANVpnInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-vpn-create' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='CreateSDWANLanPortInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-lanport-create' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='CreateSiteInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-site-create' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='CreateSDWANDeviceInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-device-create' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='CreateSDWANPortInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-wanport-create' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block></block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='activate'>\r
+                    <block atomic="true">\r
+                        <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                            <outcome value='ActivateSDWANVpnInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-vpn-activate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='ActivateSDWANLanPortInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-lanport-activate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='ActivateSiteInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-site-activate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='ActivateSDWANDeviceInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-device-activate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='ActivateSDWANPortInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-wanport-activate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-activate' mode='sync' ></call>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='deactivate'>\r
+                    <block atomic="true">\r
+                        <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                            <outcome value='DeactivateSDWANVpnInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-vpn-deactivate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='DeactivateSDWANLanPortInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-lanport-deactivate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='DeactivateSiteInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-site-deactivate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='DeactivateSDWANDeviceInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-device-deactivate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='DeactivateSDWANPortInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-wanport-deactivate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-deactivate' mode='sync' ></call>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='delete'>\r
+                    <block atomic="true">\r
+                        <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                            <outcome value='DeleteSDWANVpnInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-vpn-delete' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='DeleteSDWANLanPortInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-lanport-delete' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='DeleteSiteInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-site-delete' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='DeleteSDWANDeviceInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-device-delete' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='DeleteSDWANPortInstance'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-vf-operation-wanport-delete' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block></block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='update'>\r
+                    <block atomic="true">\r
+                        <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                            <outcome value='SdwanBandwidthChange'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='sdwan-bandwidth-policy-change' mode='sync' ></call>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
                 <outcome value='Other'>\r
                     <return status='failure'>\r
                         <parameter name='ack-final' value='Y'/>\r
index 7fffebd..2fc01cf 100644 (file)
@@ -5,8 +5,8 @@
         <block atomic="true">\r
             <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
                resource="service-subscription" \r
-        key= 'service-subscription.service-type = $service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.subscription-service-type \r
-        AND customer.global-customer-id = $service-data.vnfs.vnf[$tmp.vidx].vnf-data.service-information.global-customer-id'\r
+        key= 'service-subscription.service-type = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.subscription-service-type \r
+        AND customer.global-customer-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.global-customer-id'\r
       force="true" pfx="tmp.AnAI-data-tenant">\r
                 <outcome value='success'>\r
                     <switch test='`$tmp.AnAI-data-tenant.temp-ub-sub-account-id`'>\r
@@ -48,4 +48,4 @@
             </execute>\r
         </block>\r
     </method>\r
-</service-logic>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-device-param.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-device-param.xml
new file mode 100644 (file)
index 0000000..ddafa01
--- /dev/null
@@ -0,0 +1,87 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-get-vf-module-device-param' mode='sync'>\r
+        <block atomic="true">\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.name' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'esn'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.esn' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'class'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.class' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'type'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.deviceModel' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'version'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.version' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'systemIp'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.systemIP' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'description'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.description' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'vendor'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.vendor' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'deviceId'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.deviceId' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'sdncCreate'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.device.sdncCreate' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <return status='success'>\r
+                        <parameter name="ack-final-indicator" value="Y" />\r
+                        <parameter name="error-code" value="200" />\r
+                        <parameter name="error-message" value="`$error-message`" />\r
+                    </return>\r
+                </block>\r
+            </for>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-lanport-param.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-lanport-param.xml
new file mode 100644 (file)
index 0000000..21f05ed
--- /dev/null
@@ -0,0 +1,80 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-get-vf-module-lanport-param' mode='sync'>\r
+        <block atomic="true">\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'id'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.id' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'deviceName'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.deviceName' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portSwitch'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.portSwitch' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portType'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.portType' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portNumber'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.portNumber' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'ipAddress'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.ipAddress' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'vlanId'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.vlanId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'devicePortId'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.devicePortId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'lanPortId'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.lan.lanPortId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <return status='success'>\r
+                        <parameter name="ack-final-indicator" value="Y" />\r
+                        <parameter name="error-code" value="200" />\r
+                        <parameter name="error-message" value="`$error-message`" />\r
+                    </return>\r
+                </block>\r
+            </for>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-site-param.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-get-vf-module-site-param.xml
new file mode 100644 (file)
index 0000000..3317c6c
--- /dev/null
@@ -0,0 +1,147 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-get-vf-module-site-param' mode='sync'>\r
+        <block atomic="true">\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                        <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic2.log"/>\r
+                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                        <parameter name="field2" value="'vf-module-site-params'"/>\r
+                        <parameter name="field3" value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\r
+                    </record>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.site.name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'description'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.site.description' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.site.name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'location-name'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.site.location-name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'address'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.site.location-address' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'postcode'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.site.location-postcode' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'latitude'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.site.location-latitude' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'longitude'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.site.location-longitude' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'emails'`">\r
+                        <outcome value='true'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='prop.site.emails' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                    <parameter name="original_string" value='`$prop.site.emails`'/>\r
+                                    <parameter name="regex" value=","/>\r
+                                    <parameter name="ctx_memory_result_key" value="prop.site.email"/>\r
+                                </execute>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'type'`">\r
+                        <outcome value='true'>\r
+                            <block>\r
+                                <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`">\r
+                                    <outcome value=''>\r
+                                        <block></block>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <set>\r
+                                            <parameter name='prop.site.type' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                                            <parameter name='prop.site.sdwan' value='true' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'role'`">\r
+                        <outcome value='true'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='prop.site.role' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                    <parameter name="original_string" value='`$prop.site.role`'/>\r
+                                    <parameter name="regex" value=","/>\r
+                                    <parameter name="ctx_memory_result_key" value="prop.site.roles"/>\r
+                                </execute>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'controlPoint'`">\r
+                        <outcome value='true'>\r
+                            <block>\r
+                                <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`">\r
+                                    <outcome value=''>\r
+                                        <block></block>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='prop.site.controlPoint' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                                            </set>\r
+                                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                                <parameter name="original_string" value='`$prop.site.controlPoint`'/>\r
+                                                <parameter name="regex" value=","/>\r
+                                                <parameter name="ctx_memory_result_key" value="prop.site.controlpoints"/>\r
+                                            </execute>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <return status='success'>\r
+                        <parameter name="ack-final-indicator" value="Y" />\r
+                        <parameter name="error-code" value="200" />\r
+                        <parameter name="error-message" value="`$error-message`" />\r
+                    </return>\r
+                </block>\r
+            </for>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 68980ec..e42b3bd 100644 (file)
     xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
     <method rpc='sdwan-get-wan-param' mode='sync'>\r
         <block atomic="true">\r
-            <for index='idx' start='0' end='`$vnf-request-input.vnf-input-parameters.param_length`' >\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
                 <block>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'id'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name  == 'id'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.id' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.id' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'name'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.name' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'description'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name  == 'description'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.description' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.description' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'deviceName'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'deviceName'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.deviceName' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.deviceName' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'portType'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portType'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.portType' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.portType' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'portNumber'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'apn'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.portNumber' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.apn-name' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'ipAddress'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'portNumber'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.ipAddress' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.portNumber' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'providerIpAddress'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'ipAddress'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.providerIpAddress' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.ipAddress' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'vlanId'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'providerIpAddress'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.vlanId' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.providerIpAddress' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'transportNetworkName'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'vlanId'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.transportNetworkName' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.vlanId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'inputBandwidth'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'transportNetworkName'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.inputBandwidth' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.transportNetworkName' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'outputBandwidth'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'inputBandwidth'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.outputBandwidth' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.inputBandwidth' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'devicePortId'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'outputBandwidth'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.devicePortId' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.outputBandwidth' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
-                    <switch test="`$vnf-request-input.vnf-input-parameters.param[$idx].name == 'wanPortId'`">\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'devicePortId'`">\r
                         <outcome value='true'>\r
                             <set>\r
-                                <parameter name='prop.wan.wanPortId' value='`$vnf-request-input.vnf-input-parameters.param[$idx].value`' />\r
+                                <parameter name='prop.wan.devicePortId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'wanPortId'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.wan.wanPortId' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'publicIP'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.wan.publicIP' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'IPMode'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.wan.IPMode' value='`$vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
                             </set>\r
                         </outcome>\r
                     </switch>\r
             </for>\r
         </block>\r
     </method>\r
-</service-logic>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-activate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-activate.xml
new file mode 100644 (file)
index 0000000..3e57bbc
--- /dev/null
@@ -0,0 +1,316 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-device-activate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                            <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic1.log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="vf-module-id-input"/>\r
+                            <parameter name="field3" value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`'/>\r
+                        </record>\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.vidx`">\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log"/>\r
+                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                <parameter name="field2" value="Provided alloted resource length"/>\r
+                <parameter name="field3" value="'parameters length'"/>\r
+                <parameter name="field4" value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`'/>\r
+            </record>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = 'SDWANController' AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="token-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing get token rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="service-subscription" \r
+        key= 'service-subscription.service-type = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.subscription-service-type \r
+        AND customer.global-customer-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.global-customer-id'\r
+      force="true" pfx="tmp.AnAI-data">\r
+                <outcome value='success'>\r
+                    <switch test='`$tmp.AnAI-data.temp-ub-sub-account-id`'>\r
+                        <outcome value=''>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='prop.customer-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.global-customer-id`' />\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat' >\r
+                                    <parameter name="source" value='`$prop.customer-id`'/>\r
+                                    <parameter name="outputPath" value="tmp.userAccountEmail"/>\r
+                                    <parameter name="target" value="@test.com"/>\r
+                                </execute>\r
+                                <set>\r
+                                    <parameter name='prop.userAccount' value='`$tmp.userAccountEmail`' />\r
+                                    <parameter name='prop.userEmail' value='`$tmp.userAccountEmail`' />\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                    <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-tenant.json'`" />\r
+                                    <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v2/baseservice/tenants'`" />\r
+                                    <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                                    <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                                    <parameter name="format" value="json"/>\r
+                                    <parameter name="httpMethod" value="post"/>\r
+                                    <parameter name="responsePrefix" value="tenant-result"/>\r
+                                    <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                                    <parameter name="trustStorePassword" value="adminadmin"/>\r
+                                    <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                                    <parameter name="keyStorePassword" value="adminadmin"/>\r
+                                    <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                                </execute>\r
+                                <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="service-subscription" \r
+        key= 'service-subscription.service-type = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.subscription-service-type \r
+        AND customer.global-customer-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.global-customer-id'>\r
+                                    <parameter name='temp-ub-sub-account-id' value='`$tenant-result.data.tenantId`' />\r
+                                    <!--parameter name='temp-ub-sub-account-id' value='`$prop.customer-id`' /-->\r
+                                </update>\r
+                                <set>\r
+                                    <parameter name='prop.tenant-id' value='`$tenant-result.data.tenantId`' />\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                    <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                                    <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v2/baseservice/tenants/authorization/' + $prop.tenant-id`" />\r
+                                    <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                                    <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                                    <parameter name="format" value="json"/>\r
+                                    <parameter name="httpMethod" value="put"/>\r
+                                    <parameter name="responsePrefix" value="tenant-result"/>\r
+                                    <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                                    <parameter name="trustStorePassword" value="adminadmin"/>\r
+                                    <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                                    <parameter name="keyStorePassword" value="adminadmin"/>\r
+                                    <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                                </execute>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='prop.tenant-id' value='`$tmp.AnAI-data.temp-ub-sub-account-id`' />\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                    <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                                    <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v2/baseservice/tenants/authorization/' + $prop.tenant-id`" />\r
+                                    <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                                    <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                                    <parameter name="format" value="json"/>\r
+                                    <parameter name="httpMethod" value="put"/>\r
+                                    <parameter name="responsePrefix" value="tenant-result"/>\r
+                                    <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                                    <parameter name="trustStorePassword" value="adminadmin"/>\r
+                                    <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                                    <parameter name="keyStorePassword" value="adminadmin"/>\r
+                                    <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                                </execute>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing get token rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <block atomic="true">\r
+                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                    <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-network-orchestration.json'`" />\r
+                    <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/network-orchestration-resources'`" />\r
+                    <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                    <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                    <parameter name="format" value="json"/>\r
+                    <parameter name="httpMethod" value="put"/>\r
+                    <parameter name="responsePrefix" value="orchestration-result"/>\r
+                    <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                    <parameter name="trustStorePassword" value="adminadmin"/>\r
+                    <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                    <parameter name="keyStorePassword" value="adminadmin"/>\r
+                    <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                </execute>\r
+            </block>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-device.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v3/devices'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="deviceResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Activate Device rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value="deviceId" />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$deviceResp.success[0].id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-create.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-create.xml
new file mode 100644 (file)
index 0000000..eed2f5f
--- /dev/null
@@ -0,0 +1,113 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-device-create' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='vf-index' value='0' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-index`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <return status='failure'>\r
+                                        <parameter name='ack-final' value='Y'/>\r
+                                        <parameter name="error-code" value="500" />\r
+                                        <parameter name="error-message" value="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                        <parameter name="original_string" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\r
+                        <parameter name="regex" value="_"/>\r
+                        <parameter name="ctx_memory_result_key" value="param-prefix"/>\r
+                    </execute>\r
+                    <set>\r
+                        <parameter name="`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`" value='`$param-prefix[$param-prefix_length -1]`'/>\r
+                    </set>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                <parameter name="ctx-destination" value="prop.device-vf-index"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.device-vf-index`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+                <!--parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' /-->\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $prop.device-vf-index\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-deactivate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-deactivate.xml
new file mode 100644 (file)
index 0000000..5a1bc3d
--- /dev/null
@@ -0,0 +1,196 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-device-deactivate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.vidx`">\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="token-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <block></block>\r
+                </outcome>\r
+            </execute>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='prop.devices_length' value='1' />\r
+            </set>\r
+            <set>\r
+                <parameter name='prop.devices[0]' value='`$prop.device.deviceId`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-device-del.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v3/devices'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="delete"/>\r
+                <parameter name="responsePrefix" value="deviceResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Create vpn rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='device' \r
+      key='device.device-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\r
+                <parameter name='device-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                <!--parameter name='device-id' value='`$deviceResp.success[0].id`' /-->\r
+                <parameter name='operational-status' value='PendingDelete' />\r
+            </update>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-delete.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-device-delete.xml
new file mode 100644 (file)
index 0000000..995ecff
--- /dev/null
@@ -0,0 +1,142 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-device-delete' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.vidx`">\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status`'>\r
+                <outcome value='PendingDelete'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='prop.vnfidxLen' value='`0`' />\r
+            </set>\r
+            <for index='lidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                <block atomic="true">\r
+                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lidx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                        <outcome value='false'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-id`' />\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-data.`' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length" value='`$prop.vnfidxLen`'/>\r
+            </set>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen]." value=""/>\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <switch test="`$prop.device.sdncCreate`">\r
+                <outcome value='true'>\r
+                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource='device' \r
+        key='device.device-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'></delete>\r
+                </outcome>\r
+            </switch>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-activate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-activate.xml
new file mode 100644 (file)
index 0000000..15f1e53
--- /dev/null
@@ -0,0 +1,425 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-lanport-activate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lanport-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index='vnfidx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <for index='vfidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module_length`' >\r
+                    <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                        <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value == '$prop.lan.deviceName'`">\r
+                            <outcome value='true'>\r
+                                <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                                    <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'deviceId'`">\r
+                                        <outcome value='true'>\r
+                                            <set>\r
+                                                <parameter name='prop.lan.deviceId' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </for>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </for>\r
+            </for>\r
+            <set>\r
+                <parameter name='prop.siteAttachements_length' value='0' />\r
+                <parameter name='prop.siteIds_length' value='0' />\r
+            </set>\r
+            <for index='vnfidx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <for index='vfidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module_length`' >\r
+                    <block>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                            <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic24.log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="request-action"/>\r
+                            <parameter name="field3" value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action`'/>\r
+                        </record>\r
+                        <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSDWANSiteInstance'`">\r
+                            <outcome value='true'>\r
+                                <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                                    <block atomic="true">\r
+                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                            <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic23.log"/>\r
+                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                            <parameter name="field2" value="param-name"/>\r
+                                            <parameter name="field3" value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name`'/>\r
+                                        </record>\r
+                                        <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'role'`">\r
+                                            <outcome value='true'>\r
+                                                <block atomic="true">\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                                        <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic22.log"/>\r
+                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                        <parameter name="field2" value="set spoke role"/>\r
+                                                    </record>\r
+                                                    <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value == 'sd-wan-edge'`">\r
+                                                        <outcome value='true'>\r
+                                                            <set>\r
+                                                                <parameter name='prop.role' value="spoke" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                    <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'dsvpn-hub'`">\r
+                                                        <outcome value='true'>\r
+                                                            <set>\r
+                                                                <parameter name='prop.role' value="hub" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'siteId'`">\r
+                                            <outcome value='true'>\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='prop.attach.siteId' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name='prop.siteIds[$prop.siteIds_length]' value='`$prop.attach.siteId`' />\r
+                                                        <parameter name='prop.siteIds_length' value='`$prop.siteIds_length + 1`' />\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name='prop.siteAttachements[$prop.siteAttachements_length].siteId' value='`$prop.attach.siteId`' />\r
+                                                        <parameter name='prop.siteAttachements[$prop.siteAttachements_length].roles[0]' value='`$prop.role`' />\r
+                                                        <parameter name='prop.siteAttachements[$prop.siteAttachements_length].roles_length' value='1' />\r
+                                                        <parameter name='prop.siteAttachements_length' value='`$prop.siteAttachements_length + 1`' />\r
+                                                    </set>\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                                        <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic21.log"/>\r
+                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                        <parameter name="field2" value="prop.attach.siteId"/>\r
+                                                        <parameter name="field3" value='`$prop.attach.siteId`'/>\r
+                                                    </record>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </block>\r
+                                </for>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSDWANVpnInstance'`">\r
+                            <outcome value='true'>\r
+                                <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                                    <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'vpn-id'`">\r
+                                        <outcome value='true'>\r
+                                            <set>\r
+                                                <parameter name='prop.vpn1Id' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </for>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </for>\r
+            </for>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="token-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing get token rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdlan-port.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="portResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Create device port rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='prop.lan.devicePortId' value='`$portResp.success[0].id`' />\r
+            </set>\r
+            <switch test="`$prop.lan.portSwitch == 'layer2-port'`">\r
+                <outcome value='true'>\r
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                        <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdlan-bridge-domain.json'`" />\r
+                        <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/bridge-domains'`" />\r
+                        <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                        <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                        <parameter name="format" value="json"/>\r
+                        <parameter name="httpMethod" value="post"/>\r
+                        <parameter name="responsePrefix" value="bridgeDomainResp"/>\r
+                        <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                        <parameter name="trustStorePassword" value="adminadmin"/>\r
+                        <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                        <parameter name="keyStorePassword" value="adminadmin"/>\r
+                        <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                        <outcome value='failure'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="Error executing Create bridge domain rest api" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <block atomic="true"></block>\r
+                        </outcome>\r
+                    </execute>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                <parameter name="original_string" value='`$prop.lan.ipAddress`'/>\r
+                <parameter name="regex" value="/"/>\r
+                <parameter name="ctx_memory_result_key" value="ipandMask"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.lan.ip-address' value='`$ipandMask[0]`' />\r
+                        <parameter name='prop.lan.prefixLength' value='`$ipandMask[1]`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='' />\r
+                        <parameter name='error-message' value="An error occured while splitting sna1_route" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdlan-ip-subnets.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/ip-subnets'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="lanPortResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Create device port rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='prop.lan.lanPortId' value='`lanPortResp.success[0].id`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-vpn.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/vpn'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="put"/>\r
+                <parameter name="responsePrefix" value="vpn-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Create vpn failed" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-vpn-topology.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn1Id + '/topology'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="put"/>\r
+                <parameter name="responsePrefix" value="vpn-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Create vpn topology failed" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='devicePortId' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.lan.devicePortId`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='lanPortId' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.lan.lanPortId`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='lan-port-config' \r
+      key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\r
+                <parameter name='sdwan-vpn-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                <parameter name='operational-status' value='Active' />\r
+                <parameter name='lan-port-config-id' value='`$prop.lan-port-config-id`' />\r
+            </update>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-create.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-create.xml
new file mode 100644 (file)
index 0000000..607a19f
--- /dev/null
@@ -0,0 +1,136 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-lanport-create' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='vf-index' value='0' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-index`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <return status='failure'>\r
+                                        <parameter name='ack-final' value='Y'/>\r
+                                        <parameter name="error-code" value="500" />\r
+                                        <parameter name="error-message" value="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                        <parameter name="original_string" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\r
+                        <parameter name="regex" value="_"/>\r
+                        <parameter name="ctx_memory_result_key" value="param-prefix"/>\r
+                    </execute>\r
+                    <set>\r
+                        <parameter name="`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`" value='`$param-prefix[$param-prefix_length -1]`'/>\r
+                    </set>\r
+                </block>\r
+            </for>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lanport-param' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                <parameter name="ctx-destination" value="prop.lan-vf-index"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.lan-vf-index`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='lan-port-config' \r
+      key='lan-port-config.lan-port-config-id = $prop.lan-vf-index' >\r
+                <parameter name="lan-port-config-id" value="`$prop.vnf-index`" />\r
+                <parameter name="device-id" value="`$prop.lan.deviceName`" />\r
+                <parameter name="port-switch" value="`$prop.lan.portSwitch`" />\r
+                <parameter name="port-type" value="`$prop.lan.portType`" />\r
+                <parameter name="port-number" value="`$prop.lan.portnumber`" />\r
+                <parameter name="ipv4-address" value="`$prop.lan.ipAddress`" />\r
+                <parameter name='vlan-tag' value="`$prop.lan.vlanId`" />\r
+                <parameter name='operational-status' value='Created' />\r
+                <parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\r
+                <parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\r
+                <parameter name='model-version-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\r
+                <parameter name='selflink' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vf-module-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $service-data.vnfs.vnf[$vnf-index].vnf-id  + '/vnf-data/vf-modules/vf-module/' + $prop.site-vf-index + '/vf-module-data/'` " />\r
+            </save>\r
+            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf:relationship-list' \r
+      key='generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \r
+      force="true" pfx="tmp.AnAI-data">\r
+                <parameter name="relationship-list.relationship[0].related-to" value="sdwan-vpn" />\r
+                <parameter name="relationship-list.relationship[0].related-link" value="`'/network/sdwan-vpns/sdwan-vpn/' + $prop.lan-vf-index`" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="lan-port-config-id" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.lan-vf-index`" />\r
+            </save>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-deactivate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-deactivate.xml
new file mode 100644 (file)
index 0000000..77575c2
--- /dev/null
@@ -0,0 +1,413 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-lanport-deactivate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lanport-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index='vnfidx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <for index='vfidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module_length`' >\r
+                    <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                        <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value == '$prop.lan.deviceName'`">\r
+                            <outcome value='true'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='prop.vnf-id' value='`$service-data.vnfs.vnf[$vnfidx].vnf-id`' />\r
+                                    </set>\r
+                                    <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                                        <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'deviceId'`">\r
+                                            <outcome value='true'>\r
+                                                <set>\r
+                                                    <parameter name='prop.lan.deviceId' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </for>\r
+            </for>\r
+            <set>\r
+                <parameter name='prop.siteAttachements_length' value='0' />\r
+                <parameter name='prop.siteIds_length' value='0' />\r
+            </set>\r
+            <for index='vnfidx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-id == $prop.vnf-id`">\r
+                    <outcome value='false'>\r
+                        <for index='vfidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module_length`' >\r
+                            <block>\r
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                    <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic24.log"/>\r
+                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                    <parameter name="field2" value="request-action"/>\r
+                                    <parameter name="field3" value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action`'/>\r
+                                </record>\r
+                                <!--switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSDWANSiteInstance'`"-->\r
+                                <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSiteInstance'`">\r
+                                    <outcome value='true'>\r
+                                        <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                                            <block atomic="true">\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                                    <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic23.log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="param-name"/>\r
+                                                    <parameter name="field3" value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name`'/>\r
+                                                </record>\r
+                                                <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'role'`">\r
+                                                    <outcome value='true'>\r
+                                                        <block atomic="true">\r
+                                                            <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value == 'sd-wan-edge'`">\r
+                                                                <outcome value='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='prop.role' value="spoke" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                            <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'dsvpn-hub'`">\r
+                                                                <outcome value='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='prop.role' value="hub" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'siteId'`">\r
+                                                    <outcome value='true'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='prop.attach.siteId' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='prop.siteIds[$prop.siteIds_length]' value='`$prop.attach.siteId`' />\r
+                                                                <parameter name='prop.siteIds_length' value='`$prop.siteIds_length + 1`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='prop.siteAttachements[$prop.siteAttachements_length].siteId' value='`$prop.attach.siteId`' />\r
+                                                                <parameter name='prop.siteAttachements[$prop.siteAttachements_length].roles[0]' value='`$prop.role`' />\r
+                                                                <parameter name='prop.siteAttachements[$prop.siteAttachements_length].roles_length' value='1' />\r
+                                                                <parameter name='prop.siteAttachements_length' value='`$prop.siteAttachements_length + 1`' />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </for>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.request-information.request-action == 'ActivateSDWANVpnInstance'`">\r
+                                    <outcome value='true'>\r
+                                        <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                                            <switch test="`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].name == 'vpn-id'`">\r
+                                                <outcome value='true'>\r
+                                                    <set>\r
+                                                        <parameter name='prop.vpn1Id' value='`$service-data.vnfs.vnf[$vnfidx].vnf-data.vf-modules.vf-module[$vfidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$pidx].value`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </for>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="token-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing get token rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdlan-port-del.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports/action/batch-delete'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="portResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Create device port rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <switch test="`$prop.lan.portSwitch == 'layer2-port'`">\r
+                <outcome value='true'>\r
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                        <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdlan-bridge-domain.json'`" />\r
+                        <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/bridge-domains'`" />\r
+                        <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                        <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                        <parameter name="format" value="json"/>\r
+                        <parameter name="httpMethod" value="post"/>\r
+                        <parameter name="responsePrefix" value="bridgeDomainResp"/>\r
+                        <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                        <parameter name="trustStorePassword" value="adminadmin"/>\r
+                        <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                        <parameter name="keyStorePassword" value="adminadmin"/>\r
+                        <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                        <outcome value='failure'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="Error executing Create bridge domain rest api" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <block atomic="true"></block>\r
+                        </outcome>\r
+                    </execute>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                <parameter name="original_string" value='`$prop.lan.ipAddress`'/>\r
+                <parameter name="regex" value="/"/>\r
+                <parameter name="ctx_memory_result_key" value="ipandMask"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.lan.ip-address' value='`$ipandMask[0]`' />\r
+                        <parameter name='prop.lan.prefixLength' value='`$ipandMask[1]`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='' />\r
+                        <parameter name='error-message' value="An error occured while splitting sna1_route" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdlan-ip-subnets-del.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/ip-subnets/action/batch-delete'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="lanPortResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Create device port rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='prop.lan.lanPortId' value='`lanPortResp.success[0].id`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-vpn.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/vpn'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="put"/>\r
+                <parameter name="responsePrefix" value="vpn-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Create vpn failed" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-vpn-topology.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn1Id + '/topology'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="put"/>\r
+                <parameter name="responsePrefix" value="vpn-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Create vpn topology failed" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='lan-port-config' \r
+      key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\r
+                <parameter name='sdwan-vpn-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                <parameter name='operational-status' value='PendingDelete' />\r
+                <parameter name='lan-port-config-id' value='`$prop.lan-port-config-id`' />\r
+            </update>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-delete.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-lanport-delete.xml
new file mode 100644 (file)
index 0000000..5fb6735
--- /dev/null
@@ -0,0 +1,138 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-lanport-delete' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-lan-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.vidx`">\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status`'>\r
+                <outcome value='PendingDelete'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='prop.vnfidxLen' value='`0`' />\r
+            </set>\r
+            <for index='lidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                <block atomic="true">\r
+                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lidx].vf-module-data.vf-module-information.vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                        <outcome value='false'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-id`' />\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-data.`' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length" value='`$prop.vnfidxLen`'/>\r
+            </set>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen]." value=""/>\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource='lan-port-config' \r
+        key='site-resource.site-resource-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'></delete>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-activate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-activate.xml
new file mode 100644 (file)
index 0000000..8ac5971
--- /dev/null
@@ -0,0 +1,260 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-site-activate' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='prop.site.sdwan' value="false" />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vf-module-operation-input.vf-module-request-input.vf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vf-module-operation-input.vf-module-request-input.vf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='prop.site.deviceId_length' value='0' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <block atomic="true">\r
+                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                    <outcome value='true'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='tmp.vidx' value='`$idx`' />\r
+                                                <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                            </set>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-site-param' mode='sync' ></call>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`">\r
+                                    <outcome value='true'>\r
+                                        <block atomic="true">\r
+                                            <for index="deviceidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                                                <block>\r
+                                                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].name == 'deviceId'`">\r
+                                                        <outcome value='true'>\r
+                                                            <set>\r
+                                                                <parameter name='prop.site.deviceId[$prop.site.deviceId_length]' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].value`' />\r
+                                                                <parameter name='prop.site.deviceId_length' value='`$prop.site.deviceId_length + 1`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <switch test="`$prop.site.sdwan`">\r
+                <outcome value='true'>\r
+                    <block atomic="true">\r
+                        <switch test="`$prop.site.controlPoint`">\r
+                            <outcome value=''>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='template.site.role' value="hub" />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='template.site.role' value="spoke" />\r
+                                    </set>\r
+                                    <for index='cpidx' start='0' end='`$prop.site.controlpoints_length`' >\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='prop.controlPtId' value='`$prop.site.controlpoints[$cpidx]`' />\r
+                                            </set>\r
+                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="site-resource" \r
+               key="site-resource.site-resource-name = $prop.controlPtId AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.controlPoints' local-only='false' >\r
+                                                <outcome value='success'>\r
+                                                    <set>\r
+                                                        <parameter name='prop.site.controlpoints[$cpidx]' value='`$tmp.aai.controlPoints.generated-site-id`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='failure'>\r
+                                                    <block></block>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                        </block>\r
+                                    </for>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                        <set>\r
+                            <parameter name='prop.site.siteId' value="" />\r
+                        </set>\r
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                            <outcome value='success'>\r
+                                <set>\r
+                                    <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                                    <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                                    <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                            <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                            <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                            <parameter name="format" value="json"/>\r
+                            <parameter name="httpMethod" value="post"/>\r
+                            <parameter name="responsePrefix" value="token-result"/>\r
+                            <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                            <parameter name="trustStorePassword" value="adminadmin"/>\r
+                            <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                            <parameter name="keyStorePassword" value="adminadmin"/>\r
+                            <outcome value='success'>\r
+                                <set>\r
+                                    <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <block></block>\r
+                            </outcome>\r
+                        </execute>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                            <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-site-' + $template.site.role + '.json'`" />\r
+                            <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/sites'`" />\r
+                            <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                            <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                            <parameter name="format" value="json"/>\r
+                            <parameter name="httpMethod" value="post"/>\r
+                            <parameter name="responsePrefix" value="site-result"/>\r
+                            <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                            <parameter name="trustStorePassword" value="adminadmin"/>\r
+                            <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                            <parameter name="keyStorePassword" value="adminadmin"/>\r
+                            <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                            <outcome value='success'>\r
+                                <block atomic="true"></block>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="Error executing Create vpn rest api" />\r
+                                </return>\r
+                            </outcome>\r
+                        </execute>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='siteId' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$site-result.success[0].id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource' \r
+      key='site-resource.site-resource-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\r
+                <parameter name='site-resource-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                <parameter name='generated-site-id' value='`$site-result.success[0].id`' />\r
+                <parameter name='operational-status' value='Active' />\r
+            </update>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-create.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-create.xml
new file mode 100644 (file)
index 0000000..d13f680
--- /dev/null
@@ -0,0 +1,114 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-site-create' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='vf-index' value='0' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-index`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <return status='failure'>\r
+                                        <parameter name='ack-final' value='Y'/>\r
+                                        <parameter name="error-code" value="500" />\r
+                                        <parameter name="error-message" value="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                        <parameter name="original_string" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\r
+                        <parameter name="regex" value="_"/>\r
+                        <parameter name="ctx_memory_result_key" value="param-prefix"/>\r
+                    </execute>\r
+                    <set>\r
+                        <parameter name="`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`" value='`$param-prefix[$param-prefix_length -1]`'/>\r
+                    </set>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-site-param' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                <parameter name="ctx-destination" value="prop.site-vf-index"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.site-vf-index`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-id' value='`$prop.site-vf-index`' />\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $prop.site-vf-index\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-deactivate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-deactivate.xml
new file mode 100644 (file)
index 0000000..1fcddf6
--- /dev/null
@@ -0,0 +1,222 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-site-deactivate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-site-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.vidx`">\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log"/>\r
+                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                <parameter name="field2" value="Provided alloted resource length"/>\r
+                <parameter name="field3" value="'parameters length'"/>\r
+                <parameter name="field4" value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`'/>\r
+            </record>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`'>\r
+                <block>\r
+                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'type'`">\r
+                        <outcome value='true'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='prop.site.type' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                                    <parameter name='prop.site.sdwan' value="true" />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'siteId'`">\r
+                        <outcome value='true'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='prop.site.siteId' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <switch test="`$prop.site.sdwan`">\r
+                <outcome value='true'>\r
+                    <block atomic="true">\r
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                            <outcome value='success'>\r
+                                <set>\r
+                                    <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                                    <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                                    <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                            <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                            <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                            <parameter name="format" value="json"/>\r
+                            <parameter name="httpMethod" value="post"/>\r
+                            <parameter name="responsePrefix" value="token-result"/>\r
+                            <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                            <parameter name="trustStorePassword" value="adminadmin"/>\r
+                            <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                            <parameter name="keyStorePassword" value="adminadmin"/>\r
+                            <outcome value='success'>\r
+                                <set>\r
+                                    <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <block></block>\r
+                            </outcome>\r
+                        </execute>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                            <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-site-del.json'`" />\r
+                            <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/sites/action/batch-delete'`" />\r
+                            <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                            <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                            <parameter name="format" value="json"/>\r
+                            <parameter name="httpMethod" value="post"/>\r
+                            <parameter name="responsePrefix" value="site-result"/>\r
+                            <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                            <parameter name="trustStorePassword" value="adminadmin"/>\r
+                            <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                            <parameter name="keyStorePassword" value="adminadmin"/>\r
+                            <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                            <outcome value='failure'>\r
+                                <block atomic="true"></block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block atomic="true"></block>\r
+                            </outcome>\r
+                        </execute>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='device' \r
+      key='device.device-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\r
+                <parameter name='device-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                <!--parameter name='device-id' value='`$deviceResp.success[0].id`' /-->\r
+                <parameter name='operational-status' value='PendingDelete' />\r
+            </update>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-delete.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-site-delete.xml
new file mode 100644 (file)
index 0000000..0c728d4
--- /dev/null
@@ -0,0 +1,136 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-site-delete' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.vidx`">\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status`'>\r
+                <outcome value='PendingDelete'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='prop.vnfidxLen' value='`0`' />\r
+            </set>\r
+            <for index='lidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                <block atomic="true">\r
+                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lidx].vf-module-data.vf-module-information.vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                        <outcome value='false'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-id`' />\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-data.`' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length" value='`$prop.vnfidxLen`'/>\r
+            </set>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen]." value=""/>\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-activate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-activate.xml
new file mode 100644 (file)
index 0000000..8e93f1a
--- /dev/null
@@ -0,0 +1,175 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-vpn-activate' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync' ></call>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log"/>\r
+                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                <parameter name="field2" value="sdwan-network-topology-operation-activate"/>\r
+                <parameter name="field3" value="SDWAN-Activate"/>\r
+            </record>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <for index='idx' start='0' end='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                <block>\r
+                    <switch test="`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.name' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'topology'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.topology' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = 'SDWANController' AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="token-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing get token rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-vpn-create.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/vpn'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="vpn-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+            </execute>\r
+            <set>\r
+                <parameter name='prop.vpn-id' value='`$vpn-result.success[0].id`' />\r
+                <parameter name='prop.vpn1Id' value='`$vpn-result.success[0].id`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-vpn-topology-create.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn-id + '/topology'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="vpn-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='tenant-id' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.tenant-id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='vpn-id' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.vpn-id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='sdwan-vpn' \r
+      key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\r
+                <parameter name='sdwan-vpn-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                <parameter name='operational-status' value='Active' />\r
+                <parameter name='tenanat-id' value='`$prop.tenant-id`' />\r
+                <parameter name='vpn-id' value='`$prop.vpn-id`' />\r
+            </update>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-create.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-create.xml
new file mode 100644 (file)
index 0000000..f352d1d
--- /dev/null
@@ -0,0 +1,154 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-vpn-create' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync' ></call>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='vf-index' value='0' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-index`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <return status='failure'>\r
+                                        <parameter name='ack-final' value='Y'/>\r
+                                        <parameter name="error-code" value="500" />\r
+                                        <parameter name="error-message" value="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                        <parameter name="original_string" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\r
+                        <parameter name="regex" value="_"/>\r
+                        <parameter name="ctx_memory_result_key" value="param-prefix"/>\r
+                    </execute>\r
+                    <set>\r
+                        <parameter name="`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`" value='`$param-prefix[$param-prefix_length -1]`'/>\r
+                    </set>\r
+                </block>\r
+            </for>\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.name' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'topology'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.topology' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                <parameter name="ctx-destination" value="prop.vpn-vf-index"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.vpn-vf-index`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-id' value='`$prop.site-vf-index`' />\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $prop.vpn-vf-index\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='sdwan-vpn' \r
+      key='sdwan-vpn.sdwan-vpn-id = $prop.vpn-vf-index' >\r
+                <parameter name='sdwan-vpn-id' value='`$prop.vpn-vf-index`' />\r
+                <parameter name='sdwan-vpn-name' value='`$prop.name`' />\r
+                <parameter name='topology' value='`$prop.topology`' />\r
+                <parameter name='operational-status' value='Created' />\r
+                <parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\r
+                <parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\r
+                <parameter name='model-version-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\r
+                <parameter name='selflink' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vf-module-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $service-data.vnfs.vnf[$vnf-index].vnf-id  + '/vnf-data/vf-modules/vf-module/' + $prop.vpn-vf-index + '/vf-module-data/'` " />\r
+            </save>\r
+            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf:relationship-list' \r
+      key='generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \r
+      force="true" pfx="tmp.AnAI-data">\r
+                <parameter name="relationship-list.relationship[0].related-to" value="sdwan-vpn" />\r
+                <parameter name="relationship-list.relationship[0].related-link" value="`'/network/sdwan-vpns/sdwan-vpn/' + $prop.vpn-vf-index`" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="sdwan-vpn.id" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.vpn-vf-index`" />\r
+                <!--save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource:relationship-list' \r
+      key='site-resource.site-resource-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \r
+      force="true" pfx="tmp.AnAI-data"><parameter name="relationship-list.relationship[0].related-to" value="sdwan-site" /><parameter name="relationship-list.relationship[0].related-link" value="`'/network/sdwan-sites/sdwan-site/' + $prop.site-vf-index`" /><parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="sdwan-vpn.id" /><parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.site-vf-index`" /-->\r
+            </save>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-deactivate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-deactivate.xml
new file mode 100644 (file)
index 0000000..f28d9c2
--- /dev/null
@@ -0,0 +1,169 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-vpn-deactivate' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync' ></call>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log"/>\r
+                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                <parameter name="field2" value="sdwan-network-topology-operation-activate"/>\r
+                <parameter name="field3" value="SDWAN-Activate"/>\r
+            </record>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <for index='idx' start='0' end='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                <block>\r
+                    <switch test="`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'name'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.name' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'topology'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.topology' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'vpn-id'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.vpn-id' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'tenant-id'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.tenant-id' value='`$ctx.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = 'SDWANController' AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="token-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing get token rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/' + $prop.vpn-id + '/topology'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="delete"/>\r
+                <parameter name="responsePrefix" value="vpn-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-vpn-delete.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/overlay-network/vpn/action/batch-delete'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="vpn-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='sdwan-vpn' \r
+      key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id' >\r
+                <parameter name='sdwan-vpn-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                <parameter name='operational-status' value='PendingDelete' />\r
+            </update>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-delete.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-vpn-delete.xml
new file mode 100644 (file)
index 0000000..8b95c4c
--- /dev/null
@@ -0,0 +1,47 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-vpn-delete' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync' ></call>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic.log"/>\r
+                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                <parameter name="field2" value="sdwan-vf-module-operation-delete"/>\r
+                <parameter name="field3" value="SDWAN-Delete"/>\r
+            </record>\r
+            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource='sdwan-vpn' \r
+        key='sdwan-vpn.sdwan-vpn-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'></delete>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length - 1`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx]." value=""/>\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-activate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-activate.xml
new file mode 100644 (file)
index 0000000..95f8369
--- /dev/null
@@ -0,0 +1,468 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-wanport-activate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vf-module-operation-input.vf-module-request-input.vf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vf-module-operation-input.vf-module-request-input.vf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='prop.site.deviceId_length' value='0' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <block atomic="true">\r
+                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                    <outcome value='true'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='tmp.vidx' value='`$idx`' />\r
+                                                <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                            </set>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-wan-param' mode='sync' ></call>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.request-information.request-action == 'ActivateSDWANDeviceInstance'`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <for index="didx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                                            <block atomic="true">\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                                    <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic-device-param.log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].name'"/>\r
+                                                    <parameter name="field3" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].name`'/>\r
+                                                </record>\r
+                                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].name == 'name'`">\r
+                                                    <outcome value='true'>\r
+                                                        <block atomic="true">\r
+                                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                                                <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic-device-name.log"/>\r
+                                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                <parameter name="field2" value="'prop.wan.deviceName'"/>\r
+                                                                <parameter name="field3" value='`$prop.wan.deviceName`'/>\r
+                                                                <parameter name="field4" value="'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value'"/>\r
+                                                                <parameter name="field5" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`'/>\r
+                                                            </record>\r
+                                                            <switch test="`$prop.wan.deviceName == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`">\r
+                                                                <outcome value='true'>\r
+                                                                    <block atomic="true">\r
+                                                                        <for index="deviceidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                                                                            <block atomic="true">\r
+                                                                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].name == 'deviceId'`">\r
+                                                                                    <outcome value='true'>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='prop.wan.deviceId' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$deviceidx].value`' />\r
+                                                                                        </set>\r
+                                                                                    </outcome>\r
+                                                                                </switch>\r
+                                                                            </block>\r
+                                                                        </for>\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.devicevidx' value='`$idx`' />\r
+                                                                        </set>\r
+                                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">\r
+                                                                            <parameter name="file" value="/opt/opendaylight/current/data/log/svclogic-last.log"/>\r
+                                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                            <parameter name="field2" value="'tmp.devicevidx'"/>\r
+                                                                            <parameter name="field3" value='`$tmp.devicevidx`'/>\r
+                                                                        </record>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </for>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.request-information.request-action == 'ActivateSiteInstance'`">\r
+                                <outcome value='true'>\r
+                                    <set>\r
+                                        <parameter name='tmp.siteVidx' value='`$idx`' />\r
+                                        <parameter name='ctx.site.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].`' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <for index="sidx" start="0" end="`$ctx.site.vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block atomic="true">\r
+                    <switch test="`$ctx.site.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$sidx].name == 'siteId'`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.wan.siteId' value='`$ctx.site.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$sidx].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="token-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing get token rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='portResp.success[0].id' value="12345" />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-port.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="portResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Create device port rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='portResp.success[0].id' value="12345" />\r
+            </set>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`'>\r
+                <block>\r
+                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'IPMode'`">\r
+                        <outcome value='true'>\r
+                            <block atomic="true">\r
+                                <switch test="`GE == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`">\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='prop.wan.linkType' value="Ethernet" />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test="`LTE == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$didx].value`">\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='prop.wan.linkType' value="Cellular" />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-port.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="portResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Create device port rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='prop.wan.devicePortId' value='`$portResp.success[0].id`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/network-orchestration-resources'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="get"/>\r
+                <parameter name="responsePrefix" value="transportNetworksResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Get transport network info rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <for index="tidx" start="0" end="`$transportNetworksResp.data.transportNetworks_length`">\r
+                <block>\r
+                    <switch test="`$transportNetworksResp.data.transportNetworks[$tidx].name == $prop.wan.transportNetworkName`">\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='prop.wan.transportNetworkId' value='`$transportNetworksResp.data.transportNetworks[$tidx].id`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                <parameter name="original_string" value='`$prop.wan.ipAddress`'/>\r
+                <parameter name="regex" value="/"/>\r
+                <parameter name="ctx_memory_result_key" value="ipandMask"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.wan.ip-address' value='`$ipandMask[0]`' />\r
+                        <parameter name='prop.wan.prefixLength' value='`$ipandMask[1]`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='' />\r
+                        <parameter name='error-message' value="An error occured while splitting sna1_route" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length`'>\r
+                <block>\r
+                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$idx].name == 'IPMode'`">\r
+                        <outcome value='true'>\r
+                            <block atomic="true">\r
+                                <switch test="`Static == $prop.wan.IPMode`">\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='prop.wan.ip-address' value="" />\r
+                                            <parameter name='prop.wan.prefixLength' value="" />\r
+                                            <parameter name='prop.wan.providerIpAddress' value="" />\r
+                                            <parameter name='prop.wan.IpMode' value="static" />\r
+                                            <parameter name='prop.route.nextHopType' value="ip-address" />\r
+                                            <parameter name='prop.route.ipAddress' value="`$prop.wan.ipAddress`" />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test="`DHCP == $prop.wan.IPMode`">\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='prop.route.nextHopType' value="outbound-interface" />\r
+                                            <parameter name='prop.wan.IpMode' value="DHCP" />\r
+                                            <parameter name='prop.route.ipAddress' value="" />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-wan-port.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/transport-network-ports'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="wanPortResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='prop.wan.wanPortId' value='`$wanPortResp.success[0].id`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-underlay.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/routing-protocol/static/action/batch-delete'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="underlayspokeResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='devicePortId' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.wan.devicePortId`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].name' value='wanPortId' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param[$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length].value' value='`$prop.wan.wanPortId`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length + 1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='Active' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <update plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='wan-port-config' \r
+      key='wan-port-config.wan-port-config-id = $vf-module-topology-operation-input.vnf-information.vnf-id' >\r
+                <parameter name="wan-port-config-id" value="`$vf-module-topology-operation-input.vnf-information.vnf-id`" />\r
+                <parameter name='operational-status' value='Active' />\r
+                <parameter name='device-port-id' value='`$prop.wan.devicePortId`' />\r
+                <parameter name='wan-port-id' value='`$prop.wan.wanPortId`' />\r
+                <parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\r
+                <parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />\r
+                <parameter name='model-version-id' value='`$vf-module-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />\r
+            </update>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-create.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-create.xml
new file mode 100644 (file)
index 0000000..c849449
--- /dev/null
@@ -0,0 +1,144 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-wanport-create' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='vf-index' value='0' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vf-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-index`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <return status='failure'>\r
+                                        <parameter name='ack-final' value='Y'/>\r
+                                        <parameter name="error-code" value="500" />\r
+                                        <parameter name="error-message" value="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id already found in service-data" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index="idx" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                <block>\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                        <parameter name="original_string" value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`'/>\r
+                        <parameter name="regex" value="_"/>\r
+                        <parameter name="ctx_memory_result_key" value="param-prefix"/>\r
+                    </execute>\r
+                    <set>\r
+                        <parameter name="`vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$idx].name`" value='`$param-prefix[$param-prefix_length -1]`'/>\r
+                    </set>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-wan-param' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index + 1`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\r
+                <parameter name="ctx-destination" value="prop.wan-port-vf-index"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-id' value='`$prop.site-vf-index`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vnf-information.' value='`$vf-module-topology-operation-input.vnf-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-request-input.' value='`$vf-module-topology-operation-input.vf-module-request-input.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-topology.' value='`$tmp.vf-module-topology.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-index+1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $prop.wan-port-vf-index\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.order-status'  value='Created' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-index].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='wan-port-config' \r
+      key='wan-port-config.wan-port-config-id = $prop.vnf-index' >\r
+                <parameter name="wan-port-config-id" value="`$prop.vnf-index`" />\r
+                <parameter name="wan-port-config-name" value="`$prop.wan.name`" />\r
+                <parameter name="device-id" value="`$prop.wan.deviceName`" />\r
+                <parameter name='vlan-id' value="`$prop.wan.vlanId`" />\r
+                <parameter name="ip-address" value="`$prop.wan.ipAddress`" />\r
+                <parameter name="provider-ip-address" value="`$prop.wan.providerIpAddress`" />\r
+                <parameter name="input-bandwidth" value="`$prop.wan.inputBandwidth`" />\r
+                <parameter name="output-bandwidth" value="`$prop.wan.outputBandwidth`" />\r
+                <parameter name="description" value="`$prop.wan.description`" />\r
+                <parameter name="port-type" value="`$prop.wan.portType`" />\r
+                <parameter name="port-number" value="`$prop.wan.portNumber`" />\r
+                <parameter name="transport-network-name" value="`$prop.wan.transportNetworkName`" />\r
+                <parameter name='operational-status' value='Created' />\r
+                <parameter name='model-customization-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\r
+                <parameter name='model-invariant-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\r
+                <parameter name='model-version-id' value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\r
+                <parameter name='selflink' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'  + $vf-module-topology-operation-input.service-information.service-instance-id  + '/service-data/vnfs/vnf/'  + $service-data.vnfs.vnf[$vnf-index].vnf-id  + '/vnf-data/vf-modules/vf-module/' + $prop.site-vf-index + '/vf-module-data/'` " />\r
+            </save>\r
+            <save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='generic-vnf:relationship-list' \r
+      key='generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \r
+      force="true" pfx="tmp.AnAI-data">\r
+                <parameter name="relationship-list.relationship[0].related-to" value="sdwan-vpn" />\r
+                <parameter name="relationship-list.relationship[0].related-link" value="`'/network/sdwan-vpns/sdwan-vpn/' + $prop.site-vf-index`" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="sdwan-vpn.id" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.site-vf-index`" />\r
+                <!--save plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' resource='site-resource:relationship-list' \r
+      key='site-resource.site-resource-id = $service-data.vnfs.vnf[$vnf-index].vnf-id' \r
+      force="true" pfx="tmp.AnAI-data"><parameter name="relationship-list.relationship[0].related-to" value="sdwan-site" /><parameter name="relationship-list.relationship[0].related-link" value="`'/network/sdwan-sites/sdwan-site/' + $prop.site-vf-index`" /><parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="sdwan-vpn.id" /><parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.site-vf-index`" /-->\r
+            </save>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-deactivate.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-deactivate.xml
new file mode 100644 (file)
index 0000000..ab5d5b0
--- /dev/null
@@ -0,0 +1,208 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-wanport-deactivate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vf-module-operation-input.vf-module-request-input.vf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vf-module-operation-input.vf-module-request-input.vf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='prop.site.deviceId_length' value='0' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <block atomic="true">\r
+                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                    <outcome value='true'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='tmp.vidx' value='`$idx`' />\r
+                                                <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                            </set>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-wan-param' mode='sync' ></call>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="esr-thirdparty-sdnc" \r
+               key="esr-thirdparty-sdnc.thirdparty-sdnc-id = SDWANController AND \r
+                    depth = '1'"\r
+        pfx='tmp.aai.esr-thirdparty-sdnc' local-only='false' >\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.url' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].service-url`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.user' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].user-name`" />\r
+                        <parameter name='prop.sdncRestApi.thirdpartySdnc.password' value="`$tmp.aai.esr-thirdparty-sdnc.esr-system-info-list.esr-system-info[0].password`" />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'An error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unexpected error occurred while querying esr-thirdparty-sdnc from AnAI with thirdparty-sdnc-id = ' + $tmp.thirdparty-sdnc-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/actokentemplate.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/v2/tokens'`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="token-result"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <outcome value='success'>\r
+                    <set>\r
+                        <parameter name='prop.sdncRestApi.token_id' value='`$token-result.data.token_id`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing get token rest api" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-tenant-auth' mode='sync' ></call>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-wan-port-del.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/transport-network-ports/action/batch-delete'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="portResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Create vpn rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name="templateFileName" value="`$prop.restapi.templateDir + '/sdwan-device-port-del.json'`" />\r
+                <parameter name="restapiUrl" value="`$prop.sdncRestApi.thirdpartySdnc.url + '/controller/campus/v1/sdwan/net/ports/action/batch-delete'`" />\r
+                <parameter name="restapiUser" value="`$prop.sdncRestApi.thirdpartySdnc.user`" />\r
+                <parameter name="restapiPassword" value="`$prop.sdncRestApi.thirdpartySdnc.password`" />\r
+                <parameter name="format" value="json"/>\r
+                <parameter name="httpMethod" value="post"/>\r
+                <parameter name="responsePrefix" value="portResp"/>\r
+                <parameter name="trustStoreFileName" value="/opt/onap/sdnc/data/stores/truststore.onap.client.jks"/>\r
+                <parameter name="trustStorePassword" value="adminadmin"/>\r
+                <parameter name="keyStoreFileName" value="/opt/onap/sdnc/data/stores/sdnc.p12"/>\r
+                <parameter name="keyStorePassword" value="adminadmin"/>\r
+                <parameter name='customHttpHeaders' value="`'X-ACCESS-TOKEN=' + $prop.sdncRestApi.token_id`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error executing Create vpn rest api" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.sdnc-request-header.' value='`$vf-module-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.request-information.' value='`$vf-module-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.service-information.' value='`$vf-module-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-information.' value='`$vf-module-topology-operation-input.vf-module-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status'  value='PendingDelete' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-rpc-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.last-action'  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-delete.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_sdwan-vf-operation-wanport-delete.xml
new file mode 100644 (file)
index 0000000..587f6cc
--- /dev/null
@@ -0,0 +1,135 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='sdwan-vf-operation-wanport-delete' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='vf-module-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$vf-module-length`' >\r
+                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vidx' value='`$idx`' />\r
+                                            <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-request-input.' value='`$ctx.vf-module-data.vf-module-request-input.`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='sdwan-get-vf-module-device-param' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.vidx`">\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-topology-operation-input.vnf-request-input.vnf-id not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.vidx].vf-module-data.vf-module-level-oper-status.order-status`'>\r
+                <outcome value='PendingDelete'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'VNF is not in appropriate state for activate. Current state is ' + $service-data.vnfs.vnf[$tmp.nidx].vnf-data.vnf-level-oper-status.order-status`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='lidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                <block atomic="true">\r
+                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lidx].vf-module-data.vf-module-information.vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                        <outcome value='false'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-id`' />\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen].vnf-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[lidx].vf-module-data.`' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='prop.vnfidxLen' value='`$prop.vnfidxLen + 1`' />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length" value='`$prop.vnfidxLen`'/>\r
+            </set>\r
+            <set>\r
+                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$prop.vnfidxLen]." value=""/>\r
+            </set>\r
+            <set>\r
+                <parameter name='vf-module-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vf-modules/vf-module/'\r
+ + $vf-module-topology-operation-input.vf-module-information.vf-module-id\r
+ + '/vf-module-data/vf-module-topology/'`"/>\r
+                <parameter name='vnf-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/vnfs/vnf/'\r
+ + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+ + '/vnf-data/vnf-topology/'`"/>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $vf-module-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource='site-resource' \r
+        key='site-resource.site-resource-id = $vf-module-topology-operation-input.vf-module-information.vf-module-id'></delete>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_validate-sdwan-vf-vpn-input-parameters.xml b/platform-logic/generic-resource-api/src/main/xml/sdwan/GENERIC-RESOURCE-API_validate-sdwan-vf-vpn-input-parameters.xml
new file mode 100644 (file)
index 0000000..de558b8
--- /dev/null
@@ -0,0 +1,323 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='validate-sdwan-vf-vpn-input-parameters' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf entry not found in service-data" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test="`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`">\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='create'>\r
+                    <block atomic="true">\r
+                        <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                            <outcome value='CreateSDWANVpnInstance'>\r
+                                <block atomic="true">\r
+                                    <for index="i" start="0" end="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='tmp.name' value='' />\r
+                                                <parameter name='tmp.value' value='' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='tmp.name' value="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].name`"/>\r
+                                                <parameter name='tmp.value' value="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].value`"/>\r
+                                            </set>\r
+                                            <switch test="`$tmp.name`">\r
+                                                <outcome value='name'>\r
+                                                    <switch test="`$tmp.value`">\r
+                                                        <outcome value=''>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                <parameter name="error-code" value="500" />\r
+                                                                <parameter name="error-message" value="`'vf-module-request-input.vf-module-input-parameters.param '+ $tmp.name +' is a required input'`" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\r
+                                                <outcome value='topology'>\r
+                                                    <switch test="`$tmp.value`">\r
+                                                        <outcome value=''>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                <parameter name="error-code" value="500" />\r
+                                                                <parameter name="error-message" value="`'vf-module-request-input.vf-module-input-parameters.param '+ $tmp.name +' is a required input'`" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\r
+                                                <outcome value=''>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="`'vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[' + $i + ']' + '.name is a required input'`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </for>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="request-information.request-action is required to be SOTN CreateVPNNetworkInstance for svc-action=create" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='activate'>\r
+                    <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                        <outcome value='ActivateSDWANVpnInstance'>\r
+                            <block atomic="true">\r
+                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
+                                    <parameter name="vf-module-topology-operation-input.vf-module-information.vf-module-id" value="$vf-module-topology-operation-input.vf-module-information.vf-module-id"/>\r
+                                </execute>\r
+                                <switch test="`$vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                    <outcome value=''>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                                    <outcome value=''>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block atomic="true">\r
+                                            <for index='nidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                                    <outcome value='true'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='tmp.nidx' value='`$nidx`' />\r
+                                                                <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-data.`' />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </for>\r
+                                            <switch test="`$tmp.nidx`">\r
+                                                <outcome value=''>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\r
+                                    <outcome value='Created'>\r
+                                        <block atomic="true"></block>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="`'vf-module is not in appropriate state for activate. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="request-information.request-action is required to be SOTN ActivateVPNNetworkInstance for svc-action=activate" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='deactivate'>\r
+                    <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                        <outcome value='DeactivateSDWANVpnInstance'>\r
+                            <block atomic="true">\r
+                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
+                                    <parameter name="vf-module-topology-operation-input.vf-module-information.vf-module-id" value="$vf-module-topology-operation-input.vf-module-information.vf-module-id"/>\r
+                                </execute>\r
+                                <switch test="`$vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                    <outcome value=''>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                                    <outcome value=''>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block atomic="true">\r
+                                            <for index='nidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                                    <outcome value='true'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='tmp.nidx' value='`$nidx`' />\r
+                                                                <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-data.`' />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </for>\r
+                                            <switch test="`$tmp.nidx`">\r
+                                                <outcome value=''>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\r
+                                    <outcome value='Active'>\r
+                                        <block atomic="true"></block>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="`'vf-module is not in appropriate state for deactivate. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="request-information.request-action is required to be SOTN DeactivateVPNNetworkInstance for svc-action=deactivate" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='delete'>\r
+                    <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                        <outcome value='DeleteSDWANVpnInstance'>\r
+                            <block atomic="true">\r
+                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='requiredParameters' >\r
+                                    <parameter name="vf-module-topology-operation-input.vf-module-information.vf-module-id" value="$vf-module-topology-operation-input.vf-module-information.vf-module-id"/>\r
+                                </execute>\r
+                                <switch test="`$vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                    <outcome value=''>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="network-request-input.network-input-parameters.name is a required input" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                                    <outcome value=''>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block atomic="true">\r
+                                            <for index='nidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                                                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`">\r
+                                                    <outcome value='true'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='tmp.nidx' value='`$nidx`' />\r
+                                                                <parameter name='ctx.vf-module-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$nidx].vf-module-data.`' />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </for>\r
+                                            <switch test="`$tmp.nidx`">\r
+                                                <outcome value=''>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="vf-module-topology-operation-input.vf-module-request-input.vf-module-id not found in service-data" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`'>\r
+                                    <outcome value='PendingDelete'>\r
+                                        <block atomic="true"></block>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="`'vf-module is not in appropriate state for delete. Current state is ' + $service-data.vf-modules.vf-module[$tmp.nidx].vf-module-data.vf-module-level-oper-status.order-status`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="request-information.request-action is required to be SOTN DeleteVPNNetworkInstance for svc-action=delete" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/lcm/src/main/json/LCM_rollback.json b/platform-logic/lcm/src/main/json/LCM_rollback.json
new file mode 100644 (file)
index 0000000..96adf3f
--- /dev/null
@@ -0,0 +1,702 @@
+[\r
+    {\r
+        "id": "367cac6c.e28ad4",\r
+        "type": "method",\r
+        "name": "rollback",\r
+        "xml": "<method rpc='rollback' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 606,\r
+        "y": 73,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "397a12a.10f34ee"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b7a7c5dd.d286a8",\r
+        "type": "service-logic",\r
+        "name": "LCM ${project.version}",\r
+        "module": "LCM",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='LCM' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 393.99993896484375,\r
+        "y": 74,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "367cac6c.e28ad4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2749994d.fe16d6",\r
+        "type": "execute",\r
+        "name": "execute AnsibleA.reqExec",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.adaptors.ansible.AnsibleAdapter' method='reqExec' >\n<parameter name='AgentUrl' value='`$prop.ansible.agenturl`'/>\n<parameter name='User' value='`$prop.ansible.user`'/>\n<parameter name='Password' value='`$prop.ansible.password`'/>\n<parameter name='LocalParameters' value='`$prop.ansible.lcm.localparameters`'/>\n<parameter name='EnvParameters' value='`$rollback-input.payload`'/>\n<parameter name='NodeList' value=\"`$nodelist`\"/>\n<parameter name='Timeout' value='`$prop.ansible.timeout`'/>\n<parameter name='Version' value='`$prop.ansible.version`'/>\n<parameter name='Id' value='`$rollback-input.common-header.request-id`'/>\n<parameter name='PlaybookName' value='`$playbookname`'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 461.00001525878906,\r
+        "y": 681,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "d80c72ca.e0d3b",\r
+                "3b639a7b.0ca876",\r
+                "f4b3d5c4.d9b698"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f74fb5f.f66a64",\r
+        "type": "switchNode",\r
+        "name": "switch",\r
+        "xml": "<switch test=\"`$org.onap.appc.adapter.ansible.result.code`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 860.9999389648438,\r
+        "y": 789.0000305175781,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "5e7ae3c.af98c1c",\r
+                "80745976.4dae58",\r
+                "2d735711.50c158"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5e7ae3c.af98c1c",\r
+        "type": "other",\r
+        "name": "outcome 500",\r
+        "xml": "<outcome value='500'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1005.9999389648438,\r
+        "y": 787.0000381469727,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "c157f020.8fa16"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "80745976.4dae58",\r
+        "type": "other",\r
+        "name": "outcome 100",\r
+        "xml": "<outcome value='100'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1002.9999389648438,\r
+        "y": 844.0000305175781,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "8633c607.bab378"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8633c607.bab378",\r
+        "type": "execute",\r
+        "name": "execute reqExecResult",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.adaptors.ansible.AnsibleAdapter' method='reqExecResult' >\n    <parameter name='AgentUrl' value='`$prop.ansible.agenturl`'/>\n\t<parameter name='User' value='`$prop.ansible.user`'/>\n\t<parameter name='Password' value='`$prop.ansible.password`'/>\n\t<parameter name='Id' value='`$org.onap.appc.adapter.ansible.Id`'/>\n\t<parameter name='PlaybookName' value='`$playbookname`'/>\n\t\n\n\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1190.9999389648438,\r
+        "y": 843.0000305175781,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "7d406d3c.e2a7a4",\r
+                "c98b9933.a78a78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b639a7b.0ca876",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 719.9999389648438,\r
+        "y": 702.0000915527344,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "c157f020.8fa16"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d80c72ca.e0d3b",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 721.9999389648438,\r
+        "y": 754.0000610351562,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "3f74fb5f.f66a64"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7d406d3c.e2a7a4",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1359.9999389648438,\r
+        "y": 801.0000381469727,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "c157f020.8fa16"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2d735711.50c158",\r
+        "type": "other",\r
+        "name": "outcome 101",\r
+        "xml": "<outcome value='101'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1002.9999389648438,\r
+        "y": 745.0000686645508,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "c157f020.8fa16"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c98b9933.a78a78",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1367.9998779296875,\r
+        "y": 849.0001220703125,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "5b424098.08bd5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4e1d4556.7dd52c",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name='status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\n<parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`'/>",\r
+        "comments": "",\r
+        "x": 1661.9998779296875,\r
+        "y": 906.0000610351562,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d900eabd.53e918",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 209,\r
+        "y": 73,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "b7a7c5dd.d286a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "397a12a.10f34ee",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 206.9166259765625,\r
+        "y": 165.08331298828125,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "2749994d.fe16d6",\r
+                "73725554.5774bc",\r
+                "8603ce63.b7c47",\r
+                "9a79bc82.279ce",\r
+                "cc7baeb9.6a3dc",\r
+                "b9b832a7.ed87d",\r
+                "16e37417.d2c8bc",\r
+                "763cfac9.48a8a4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "73725554.5774bc",\r
+        "type": "execute",\r
+        "name": "execute Properties",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/lcm-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 505.0000305175781,\r
+        "y": 198.08334350585938,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c9d7b572.9b1b08",\r
+        "type": "execute",\r
+        "name": "execute DmaapMsg",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.lcm.dmaap.publish.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.lcm.dmaap.url`' />\n    <parameter name='restapiUser' value='`$prop.lcm.dmaap.user`' />\n    <parameter name='restapiPassword' value='`$prop.lcm.dmaap.password`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='POST' />\n    <parameter name='contentType' value='application/json' />\n    <parameter name=\"responsePrefix\" value=\"lcm\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1671.9998779296875,\r
+        "y": 651.0834045410156,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "18a85145.032faf"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "18a85145.032faf",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1841.9998168945312,\r
+        "y": 650.0834045410156,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "1f387472.1096ac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c157f020.8fa16",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1474.9998168945312,\r
+        "y": 675.0834045410156,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "c9d7b572.9b1b08",\r
+                "b8d2a948.9f6268",\r
+                "9c77e950.a59098"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "246949fc.089f56",\r
+        "type": "execute",\r
+        "name": "execute DmaapMsg",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.lcm.dmaap.publish.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.lcm.dmaap.url`' />\n    <parameter name='restapiUser' value='`$prop.lcm.dmaap.user`' />\n    <parameter name='restapiPassword' value='`$prop.lcm.dmaap.password`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='POST' />\n    <parameter name='contentType' value='application/json' />\n    <parameter name=\"responsePrefix\" value=\"lcm\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1672.4998779296875,\r
+        "y": 856.0833740234375,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "3c6c9ce.ec3e364"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3c6c9ce.ec3e364",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1840.4998779296875,\r
+        "y": 856.0833740234375,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "8c845e57.511d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1f387472.1096ac",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\"> \n\t<parameter name=\"logger\" value=\"message-log\"/> \n\t<parameter name=\"field1\" value='Failed to Publish to DMaap'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1961.9998779296875,\r
+        "y": 649.0833740234375,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b8d2a948.9f6268",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='status.code' value='401' />\n<parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`' />\n",\r
+        "comments": "",\r
+        "x": 1653.91650390625,\r
+        "y": 702.0834045410156,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8c845e57.511d",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\"> \n\t<parameter name=\"logger\" value=\"message-log\"/> \n\t<parameter name=\"field1\" value='Failed to Publish to DMaap'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1968.9166259765625,\r
+        "y": 856.0833740234375,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c77e950.a59098",\r
+        "type": "set",\r
+        "name": "set DmaapReq",\r
+        "xml": "<set>\n<parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\n<parameter name='lcm-dmaap.correlation-id' value=\"`$rollback-input.common-header.request-id + '-' + $rollback-input.common-header.sub-request-id`\"/>\n<parameter name='lcm-dmaap.partition' value='`$prop.lcm.dmaap.partition`'/>\n<parameter name='lcm-dmaap.rpc-name' value='rollback'/>\n<parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\n<parameter name='lcm-dmaap.timestamp' value='`$rollback-input.common-header.timestamp`'/>\n<parameter name='lcm-dmaap.api-ver' value='`$rollback-input.common-header.api-ver`'/>\n<parameter name='lcm-dmaap.originator-id' value='`$rollback-input.common-header.originator-id`'/>\n<parameter name='lcm-dmaap.request-id' value='`$rollback-input.common-header.request-id`'/>\n<parameter name='lcm-dmaap.sub-request-id' value='`$rollback-input.common-header.sub-request-id`'/>\n<parameter name='lcm-dmaap.flags.mode' value='`$rollback-input.common-header.flags.mode`'/>\n<parameter name='lcm-dmaap.flags.force' value='`$rollback-input.common-header.flags.force`'/>\n<parameter name='lcm-dmaap.flags.ttl' value='`$rollback-input.common-header.flags.ttl`'/>\n<parameter name='lcm-dmaap.status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\n<parameter name='lcm-dmaap.status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\n",\r
+        "comments": "",\r
+        "x": 1658.9998779296875,\r
+        "y": 598.0833740234375,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5b424098.08bd5",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1495.9998779296875,\r
+        "y": 850.0833740234375,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "246949fc.089f56",\r
+                "4d96ab15.f92c04",\r
+                "4e1d4556.7dd52c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4d96ab15.f92c04",\r
+        "type": "set",\r
+        "name": "set DmaapReq",\r
+        "xml": "<set>\n<parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\n<parameter name='lcm-dmaap.correlation-id' value=\"`$rollback-input.common-header.request-id + '-' + $rollback-input.common-header.sub-request-id`\"/>\n<parameter name='lcm-dmaap.partition' value='`$prop.lcm.dmaap.partition`'/>\n<parameter name='lcm-dmaap.rpc-name' value='rollback'/>\n<parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\n<parameter name='lcm-dmaap.timestamp' value='`$rollback-input.common-header.timestamp`'/>\n<parameter name='lcm-dmaap.api-ver' value='`$rollback-input.common-header.api-ver`'/>\n<parameter name='lcm-dmaap.originator-id' value='`$rollback-input.common-header.originator-id`'/>\n<parameter name='lcm-dmaap.request-id' value='`$rollback-input.common-header.request-id`'/>\n<parameter name='lcm-dmaap.sub-request-id' value='`$rollback-input.common-header.sub-request-id`'/>\n<parameter name='lcm-dmaap.flags.mode' value='`$rollback-input.common-header.flags.mode`'/>\n<parameter name='lcm-dmaap.flags.force' value='`$rollback-input.common-header.flags.force`'/>\n<parameter name='lcm-dmaap.flags.ttl' value='`$rollback-input.common-header.flags.ttl`'/>\n<parameter name='lcm-dmaap.status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\n<parameter name='lcm-dmaap.status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\n",\r
+        "comments": "",\r
+        "x": 1662.1666259765625,\r
+        "y": 801.0833740234375,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f4b3d5c4.d9b698",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 728.9999389648438,\r
+        "y": 654.0000610351562,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "9b946286.c1fc1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2c09132b.2c598c",\r
+        "type": "set",\r
+        "name": "set Defaults",\r
+        "xml": "<set>\n<parameter name='org.onap.appc.adapter.ansible.result.code' value='401'/>\n<parameter name='org.onap.appc.adapter.ansible.message' value='Ansible Adapter was not found'/>\n",\r
+        "comments": "",\r
+        "x": 1019.9999389648438,\r
+        "y": 613,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9b946286.c1fc1",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 865.9999389648438,\r
+        "y": 648.0000610351562,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "2c09132b.2c598c",\r
+                "c157f020.8fa16"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8603ce63.b7c47",\r
+        "type": "set",\r
+        "name": "set default values",\r
+        "xml": "<set>\n<parameter name='status.code' value='200' />\n<parameter name='status.message' value='unexpected return from DG' />\n<parameter name='quote' value=\"'\" />\n",\r
+        "comments": "",\r
+        "x": 498,\r
+        "y": 245,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "16e37417.d2c8bc",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\"> \n\t<parameter name=\"logger\" value=\"message-log\"/> \n\t<parameter name=\"field1\" value='`$playbookname`'/>\n\t<parameter name=\"field2\" value='`$nodelist`'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 426.9998779296875,\r
+        "y": 609,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "cc7baeb9.6a3dc",\r
+        "type": "switchNode",\r
+        "name": "switch pnf-flag",\r
+        "xml": "<switch test='`$payloadJson.pnf-flag`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 480,\r
+        "y": 346,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "b515ebb.9b7de18",\r
+                "ea8f46f7.654968"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9a79bc82.279ce",\r
+        "type": "execute",\r
+        "name": "execute jsonStringToCtx",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='jsonStringToCtx'>\n\t<parameter name='source' value='rollback-input.payload' />\n\t<parameter name='outputPath' value='payloadJson' />\n\t<parameter name='isEscaped' value='true' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 512,\r
+        "y": 292,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b515ebb.9b7de18",\r
+        "type": "outcome",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 677,\r
+        "y": 325,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "d8920a01.f108b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ea8f46f7.654968",\r
+        "type": "outcome",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 677,\r
+        "y": 386,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "32f9eda7.1c1082"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "32f9eda7.1c1082",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 824.9999389648438,\r
+        "y": 385,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "3756c2a1.fa5d6e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d8920a01.f108b8",\r
+        "type": "set",\r
+        "name": "set AnsibleReq",\r
+        "xml": "<set>\n<parameter name='nodelist' value=\"`'[' + $quote + $payloadJson.ipaddress-v4-oam +  $quote + ']'`\"/>\n<parameter name='playbookname' value='`$prop.lcm.pnf.rollback.playbookname`'/>\n",\r
+        "comments": "",\r
+        "x": 838,\r
+        "y": 323,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b9b832a7.ed87d",\r
+        "type": "switchNode",\r
+        "name": "switch playbookname",\r
+        "xml": "<switch test='`$playbookname`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 477,\r
+        "y": 477,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "5725646c.c7b37c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5725646c.c7b37c",\r
+        "type": "outcome",\r
+        "name": "null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 648,\r
+        "y": 478,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "4546e558.72429c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4546e558.72429c",\r
+        "type": "set",\r
+        "name": "set playbookname",\r
+        "xml": "<set>\n<parameter name='nodelist' value=\"`$prop.ansible.nodelist`\"/>\n<parameter name='playbookname' value='`$prop.lcm.rollback.playbookname`'/>",\r
+        "comments": "",\r
+        "x": 838,\r
+        "y": 477,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "763cfac9.48a8a4",\r
+        "type": "switchNode",\r
+        "name": "switch nodelist",\r
+        "xml": "<switch test='`$nodelist`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 467,\r
+        "y": 536,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "76eb51c0.552ce",\r
+                "178c823.496cd7e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "76eb51c0.552ce",\r
+        "type": "outcome",\r
+        "name": "null",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 647,\r
+        "y": 529,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "66b6e37a.9e852c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "66b6e37a.9e852c",\r
+        "type": "set",\r
+        "name": "set nodelist",\r
+        "xml": "<set>\n<parameter name='nodelist' value=\"`$prop.ansible.nodelist`\"/>",\r
+        "comments": "",\r
+        "x": 804,\r
+        "y": 543,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "178c823.496cd7e",\r
+        "type": "outcome",\r
+        "name": "empty",\r
+        "xml": "<outcome value=\"['']\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 646,\r
+        "y": 573,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": [\r
+            [\r
+                "66b6e37a.9e852c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3756c2a1.fa5d6e",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='status.code' value='401' />\n<parameter name='status.message' value='Currently only support PNF.' />",\r
+        "comments": "",\r
+        "x": 998,\r
+        "y": 385,\r
+        "z": "6f1e5235.30d27c",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
index ea54b27..40fe3a9 100644 (file)
@@ -10,3 +10,4 @@ LCM unlock ${project.version} sync
 LCM snapshot ${project.version} sync
 LCM config-scale-out ${project.version} sync
 LCM health-check ${project.version} sync
+LCM rollback ${project.version} sync
diff --git a/platform-logic/lcm/src/main/xml/LCM_rollback.xml b/platform-logic/lcm/src/main/xml/LCM_rollback.xml
new file mode 100644 (file)
index 0000000..bb540b6
--- /dev/null
@@ -0,0 +1,340 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='LCM' version='${project.version}'>\r
+    <method rpc='rollback' mode='sync'>\r
+        <block atomic='true'>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/lcm-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <set>\r
+                <parameter name='status.code' value='200' />\r
+                <parameter name='status.message' value='unexpected return from DG' />\r
+                <parameter name='quote' value="'" />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='jsonStringToCtx'>\r
+                <parameter name='source' value='rollback-input.payload' />\r
+                <parameter name='outputPath' value='payloadJson' />\r
+                <parameter name='isEscaped' value='true' />\r
+            </execute>\r
+            <switch test='`$payloadJson.pnf-flag`'>\r
+                <outcome value='true'>\r
+                    <set>\r
+                        <parameter name='nodelist' value="`'[' + $quote + $payloadJson.ipaddress-v4-oam +  $quote + ']'`"/>\r
+                        <parameter name='playbookname' value='`$prop.lcm.pnf.rollback.playbookname`'/>\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <return status='failure'>\r
+                            <parameter name='status.code' value='401' />\r
+                            <parameter name='status.message' value='Currently only support PNF.' />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$playbookname`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='nodelist' value="`$prop.ansible.nodelist`"/>\r
+                        <parameter name='playbookname' value='`$prop.lcm.rollback.playbookname`'/>\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$nodelist`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='nodelist' value="`$prop.ansible.nodelist`"/>\r
+                    </set>\r
+                </outcome>\r
+                <outcome value="['']">\r
+                    <set>\r
+                        <parameter name='nodelist' value="`$prop.ansible.nodelist`"/>\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                <parameter name="logger" value="message-log"/>\r
+                <parameter name="field1" value='`$playbookname`'/>\r
+                <parameter name="field2" value='`$nodelist`'/>\r
+            </record>\r
+            <execute plugin='org.onap.ccsdk.sli.adaptors.ansible.AnsibleAdapter' method='reqExec' >\r
+                <parameter name='AgentUrl' value='`$prop.ansible.agenturl`'/>\r
+                <parameter name='User' value='`$prop.ansible.user`'/>\r
+                <parameter name='Password' value='`$prop.ansible.password`'/>\r
+                <parameter name='LocalParameters' value='`$prop.ansible.lcm.localparameters`'/>\r
+                <parameter name='EnvParameters' value='`$rollback-input.payload`'/>\r
+                <parameter name='NodeList' value="`$nodelist`"/>\r
+                <parameter name='Timeout' value='`$prop.ansible.timeout`'/>\r
+                <parameter name='Version' value='`$prop.ansible.version`'/>\r
+                <parameter name='Id' value='`$rollback-input.common-header.request-id`'/>\r
+                <parameter name='PlaybookName' value='`$playbookname`'/>\r
+                <outcome value='not-found'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='org.onap.appc.adapter.ansible.result.code' value='401'/>\r
+                            <parameter name='org.onap.appc.adapter.ansible.message' value='Ansible Adapter was not found'/>\r
+                        </set>\r
+                        <block>\r
+                            <set>\r
+                                <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
+                                <parameter name='lcm-dmaap.correlation-id' value="`$rollback-input.common-header.request-id + '-' + $rollback-input.common-header.sub-request-id`"/>\r
+                                <parameter name='lcm-dmaap.partition' value='`$prop.lcm.dmaap.partition`'/>\r
+                                <parameter name='lcm-dmaap.rpc-name' value='rollback'/>\r
+                                <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
+                                <parameter name='lcm-dmaap.timestamp' value='`$rollback-input.common-header.timestamp`'/>\r
+                                <parameter name='lcm-dmaap.api-ver' value='`$rollback-input.common-header.api-ver`'/>\r
+                                <parameter name='lcm-dmaap.originator-id' value='`$rollback-input.common-header.originator-id`'/>\r
+                                <parameter name='lcm-dmaap.request-id' value='`$rollback-input.common-header.request-id`'/>\r
+                                <parameter name='lcm-dmaap.sub-request-id' value='`$rollback-input.common-header.sub-request-id`'/>\r
+                                <parameter name='lcm-dmaap.flags.mode' value='`$rollback-input.common-header.flags.mode`'/>\r
+                                <parameter name='lcm-dmaap.flags.force' value='`$rollback-input.common-header.flags.force`'/>\r
+                                <parameter name='lcm-dmaap.flags.ttl' value='`$rollback-input.common-header.flags.ttl`'/>\r
+                                <parameter name='lcm-dmaap.status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
+                                <parameter name='lcm-dmaap.status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
+                            </set>\r
+                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.lcm.dmaap.publish.templatefile`" />\r
+                                <parameter name='restapiUrl' value='`$prop.lcm.dmaap.url`' />\r
+                                <parameter name='restapiUser' value='`$prop.lcm.dmaap.user`' />\r
+                                <parameter name='restapiPassword' value='`$prop.lcm.dmaap.password`' />\r
+                                <parameter name='format' value='json' />\r
+                                <parameter name='httpMethod' value='POST' />\r
+                                <parameter name='contentType' value='application/json' />\r
+                                <parameter name="responsePrefix" value="lcm" />\r
+                                <outcome value='failure'>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value='Failed to Publish to DMaap'/>\r
+                                    </record>\r
+                                </outcome>\r
+                            </execute>\r
+                            <return status='failure'>\r
+                                <parameter name='status.code' value='401' />\r
+                                <parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`' />\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
+                            <parameter name='lcm-dmaap.correlation-id' value="`$rollback-input.common-header.request-id + '-' + $rollback-input.common-header.sub-request-id`"/>\r
+                            <parameter name='lcm-dmaap.partition' value='`$prop.lcm.dmaap.partition`'/>\r
+                            <parameter name='lcm-dmaap.rpc-name' value='rollback'/>\r
+                            <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
+                            <parameter name='lcm-dmaap.timestamp' value='`$rollback-input.common-header.timestamp`'/>\r
+                            <parameter name='lcm-dmaap.api-ver' value='`$rollback-input.common-header.api-ver`'/>\r
+                            <parameter name='lcm-dmaap.originator-id' value='`$rollback-input.common-header.originator-id`'/>\r
+                            <parameter name='lcm-dmaap.request-id' value='`$rollback-input.common-header.request-id`'/>\r
+                            <parameter name='lcm-dmaap.sub-request-id' value='`$rollback-input.common-header.sub-request-id`'/>\r
+                            <parameter name='lcm-dmaap.flags.mode' value='`$rollback-input.common-header.flags.mode`'/>\r
+                            <parameter name='lcm-dmaap.flags.force' value='`$rollback-input.common-header.flags.force`'/>\r
+                            <parameter name='lcm-dmaap.flags.ttl' value='`$rollback-input.common-header.flags.ttl`'/>\r
+                            <parameter name='lcm-dmaap.status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
+                            <parameter name='lcm-dmaap.status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
+                        </set>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.lcm.dmaap.publish.templatefile`" />\r
+                            <parameter name='restapiUrl' value='`$prop.lcm.dmaap.url`' />\r
+                            <parameter name='restapiUser' value='`$prop.lcm.dmaap.user`' />\r
+                            <parameter name='restapiPassword' value='`$prop.lcm.dmaap.password`' />\r
+                            <parameter name='format' value='json' />\r
+                            <parameter name='httpMethod' value='POST' />\r
+                            <parameter name='contentType' value='application/json' />\r
+                            <parameter name="responsePrefix" value="lcm" />\r
+                            <outcome value='failure'>\r
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                    <parameter name="logger" value="message-log"/>\r
+                                    <parameter name="field1" value='Failed to Publish to DMaap'/>\r
+                                </record>\r
+                            </outcome>\r
+                        </execute>\r
+                        <return status='failure'>\r
+                            <parameter name='status.code' value='401' />\r
+                            <parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`' />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <switch test="`$org.onap.appc.adapter.ansible.result.code`">\r
+                        <outcome value='101'>\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
+                                    <parameter name='lcm-dmaap.correlation-id' value="`$rollback-input.common-header.request-id + '-' + $rollback-input.common-header.sub-request-id`"/>\r
+                                    <parameter name='lcm-dmaap.partition' value='`$prop.lcm.dmaap.partition`'/>\r
+                                    <parameter name='lcm-dmaap.rpc-name' value='rollback'/>\r
+                                    <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
+                                    <parameter name='lcm-dmaap.timestamp' value='`$rollback-input.common-header.timestamp`'/>\r
+                                    <parameter name='lcm-dmaap.api-ver' value='`$rollback-input.common-header.api-ver`'/>\r
+                                    <parameter name='lcm-dmaap.originator-id' value='`$rollback-input.common-header.originator-id`'/>\r
+                                    <parameter name='lcm-dmaap.request-id' value='`$rollback-input.common-header.request-id`'/>\r
+                                    <parameter name='lcm-dmaap.sub-request-id' value='`$rollback-input.common-header.sub-request-id`'/>\r
+                                    <parameter name='lcm-dmaap.flags.mode' value='`$rollback-input.common-header.flags.mode`'/>\r
+                                    <parameter name='lcm-dmaap.flags.force' value='`$rollback-input.common-header.flags.force`'/>\r
+                                    <parameter name='lcm-dmaap.flags.ttl' value='`$rollback-input.common-header.flags.ttl`'/>\r
+                                    <parameter name='lcm-dmaap.status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
+                                    <parameter name='lcm-dmaap.status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.lcm.dmaap.publish.templatefile`" />\r
+                                    <parameter name='restapiUrl' value='`$prop.lcm.dmaap.url`' />\r
+                                    <parameter name='restapiUser' value='`$prop.lcm.dmaap.user`' />\r
+                                    <parameter name='restapiPassword' value='`$prop.lcm.dmaap.password`' />\r
+                                    <parameter name='format' value='json' />\r
+                                    <parameter name='httpMethod' value='POST' />\r
+                                    <parameter name='contentType' value='application/json' />\r
+                                    <parameter name="responsePrefix" value="lcm" />\r
+                                    <outcome value='failure'>\r
+                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                            <parameter name="logger" value="message-log"/>\r
+                                            <parameter name="field1" value='Failed to Publish to DMaap'/>\r
+                                        </record>\r
+                                    </outcome>\r
+                                </execute>\r
+                                <return status='failure'>\r
+                                    <parameter name='status.code' value='401' />\r
+                                    <parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`' />\r
+                                </return>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='500'>\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
+                                    <parameter name='lcm-dmaap.correlation-id' value="`$rollback-input.common-header.request-id + '-' + $rollback-input.common-header.sub-request-id`"/>\r
+                                    <parameter name='lcm-dmaap.partition' value='`$prop.lcm.dmaap.partition`'/>\r
+                                    <parameter name='lcm-dmaap.rpc-name' value='rollback'/>\r
+                                    <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
+                                    <parameter name='lcm-dmaap.timestamp' value='`$rollback-input.common-header.timestamp`'/>\r
+                                    <parameter name='lcm-dmaap.api-ver' value='`$rollback-input.common-header.api-ver`'/>\r
+                                    <parameter name='lcm-dmaap.originator-id' value='`$rollback-input.common-header.originator-id`'/>\r
+                                    <parameter name='lcm-dmaap.request-id' value='`$rollback-input.common-header.request-id`'/>\r
+                                    <parameter name='lcm-dmaap.sub-request-id' value='`$rollback-input.common-header.sub-request-id`'/>\r
+                                    <parameter name='lcm-dmaap.flags.mode' value='`$rollback-input.common-header.flags.mode`'/>\r
+                                    <parameter name='lcm-dmaap.flags.force' value='`$rollback-input.common-header.flags.force`'/>\r
+                                    <parameter name='lcm-dmaap.flags.ttl' value='`$rollback-input.common-header.flags.ttl`'/>\r
+                                    <parameter name='lcm-dmaap.status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
+                                    <parameter name='lcm-dmaap.status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.lcm.dmaap.publish.templatefile`" />\r
+                                    <parameter name='restapiUrl' value='`$prop.lcm.dmaap.url`' />\r
+                                    <parameter name='restapiUser' value='`$prop.lcm.dmaap.user`' />\r
+                                    <parameter name='restapiPassword' value='`$prop.lcm.dmaap.password`' />\r
+                                    <parameter name='format' value='json' />\r
+                                    <parameter name='httpMethod' value='POST' />\r
+                                    <parameter name='contentType' value='application/json' />\r
+                                    <parameter name="responsePrefix" value="lcm" />\r
+                                    <outcome value='failure'>\r
+                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                            <parameter name="logger" value="message-log"/>\r
+                                            <parameter name="field1" value='Failed to Publish to DMaap'/>\r
+                                        </record>\r
+                                    </outcome>\r
+                                </execute>\r
+                                <return status='failure'>\r
+                                    <parameter name='status.code' value='401' />\r
+                                    <parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`' />\r
+                                </return>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='100'>\r
+                            <execute plugin='org.onap.ccsdk.sli.adaptors.ansible.AnsibleAdapter' method='reqExecResult' >\r
+                                <parameter name='AgentUrl' value='`$prop.ansible.agenturl`'/>\r
+                                <parameter name='User' value='`$prop.ansible.user`'/>\r
+                                <parameter name='Password' value='`$prop.ansible.password`'/>\r
+                                <parameter name='Id' value='`$org.onap.appc.adapter.ansible.Id`'/>\r
+                                <parameter name='PlaybookName' value='`$playbookname`'/>\r
+                                <outcome value='failure'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
+                                            <parameter name='lcm-dmaap.correlation-id' value="`$rollback-input.common-header.request-id + '-' + $rollback-input.common-header.sub-request-id`"/>\r
+                                            <parameter name='lcm-dmaap.partition' value='`$prop.lcm.dmaap.partition`'/>\r
+                                            <parameter name='lcm-dmaap.rpc-name' value='rollback'/>\r
+                                            <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
+                                            <parameter name='lcm-dmaap.timestamp' value='`$rollback-input.common-header.timestamp`'/>\r
+                                            <parameter name='lcm-dmaap.api-ver' value='`$rollback-input.common-header.api-ver`'/>\r
+                                            <parameter name='lcm-dmaap.originator-id' value='`$rollback-input.common-header.originator-id`'/>\r
+                                            <parameter name='lcm-dmaap.request-id' value='`$rollback-input.common-header.request-id`'/>\r
+                                            <parameter name='lcm-dmaap.sub-request-id' value='`$rollback-input.common-header.sub-request-id`'/>\r
+                                            <parameter name='lcm-dmaap.flags.mode' value='`$rollback-input.common-header.flags.mode`'/>\r
+                                            <parameter name='lcm-dmaap.flags.force' value='`$rollback-input.common-header.flags.force`'/>\r
+                                            <parameter name='lcm-dmaap.flags.ttl' value='`$rollback-input.common-header.flags.ttl`'/>\r
+                                            <parameter name='lcm-dmaap.status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
+                                            <parameter name='lcm-dmaap.status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
+                                        </set>\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.lcm.dmaap.publish.templatefile`" />\r
+                                            <parameter name='restapiUrl' value='`$prop.lcm.dmaap.url`' />\r
+                                            <parameter name='restapiUser' value='`$prop.lcm.dmaap.user`' />\r
+                                            <parameter name='restapiPassword' value='`$prop.lcm.dmaap.password`' />\r
+                                            <parameter name='format' value='json' />\r
+                                            <parameter name='httpMethod' value='POST' />\r
+                                            <parameter name='contentType' value='application/json' />\r
+                                            <parameter name="responsePrefix" value="lcm" />\r
+                                            <outcome value='failure'>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value='Failed to Publish to DMaap'/>\r
+                                                </record>\r
+                                            </outcome>\r
+                                        </execute>\r
+                                        <return status='failure'>\r
+                                            <parameter name='status.code' value='401' />\r
+                                            <parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`' />\r
+                                        </return>\r
+                                    </block>\r
+                                </outcome>\r
+                                <outcome value='success'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='lcm-dmaap.version' value='`$prop.lcm.dmaap.version`'/>\r
+                                            <parameter name='lcm-dmaap.correlation-id' value="`$rollback-input.common-header.request-id + '-' + $rollback-input.common-header.sub-request-id`"/>\r
+                                            <parameter name='lcm-dmaap.partition' value='`$prop.lcm.dmaap.partition`'/>\r
+                                            <parameter name='lcm-dmaap.rpc-name' value='rollback'/>\r
+                                            <parameter name='lcm-dmaap.type' value='`$prop.lcm.dmaap.type`'/>\r
+                                            <parameter name='lcm-dmaap.timestamp' value='`$rollback-input.common-header.timestamp`'/>\r
+                                            <parameter name='lcm-dmaap.api-ver' value='`$rollback-input.common-header.api-ver`'/>\r
+                                            <parameter name='lcm-dmaap.originator-id' value='`$rollback-input.common-header.originator-id`'/>\r
+                                            <parameter name='lcm-dmaap.request-id' value='`$rollback-input.common-header.request-id`'/>\r
+                                            <parameter name='lcm-dmaap.sub-request-id' value='`$rollback-input.common-header.sub-request-id`'/>\r
+                                            <parameter name='lcm-dmaap.flags.mode' value='`$rollback-input.common-header.flags.mode`'/>\r
+                                            <parameter name='lcm-dmaap.flags.force' value='`$rollback-input.common-header.flags.force`'/>\r
+                                            <parameter name='lcm-dmaap.flags.ttl' value='`$rollback-input.common-header.flags.ttl`'/>\r
+                                            <parameter name='lcm-dmaap.status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
+                                            <parameter name='lcm-dmaap.status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
+                                        </set>\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.lcm.dmaap.publish.templatefile`" />\r
+                                            <parameter name='restapiUrl' value='`$prop.lcm.dmaap.url`' />\r
+                                            <parameter name='restapiUser' value='`$prop.lcm.dmaap.user`' />\r
+                                            <parameter name='restapiPassword' value='`$prop.lcm.dmaap.password`' />\r
+                                            <parameter name='format' value='json' />\r
+                                            <parameter name='httpMethod' value='POST' />\r
+                                            <parameter name='contentType' value='application/json' />\r
+                                            <parameter name="responsePrefix" value="lcm" />\r
+                                            <outcome value='failure'>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value='Failed to Publish to DMaap'/>\r
+                                                </record>\r
+                                            </outcome>\r
+                                        </execute>\r
+                                        <return status='success'>\r
+                                            <parameter name='status.code' value='`$org.onap.appc.adapter.ansible.result.code`' />\r
+                                            <parameter name='status.message' value='`$org.onap.appc.adapter.ansible.message`'/>\r
+                                        </return>\r
+                                    </block>\r
+                                </outcome>\r
+                            </execute>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+            </execute>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/restapi-templates/src/main/json/sdlan-bridge-domain.json b/platform-logic/restapi-templates/src/main/json/sdlan-bridge-domain.json
new file mode 100644 (file)
index 0000000..1d0f8bd
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "bridgeDomains": [
+   {
+     "id": "",
+     "deviceId": ${prop.lan.deviceId},
+     "ports": [
+       {
+          "id": ${prop.lan.devicePortId},
+          "tagMode": "untag"
+       }
+    ],
+     "vlanId":  ${prop.lan.vlanId},
+     "description": "spoke2 test vlan L2 port"
+   }
+ ]
+}
+
diff --git a/platform-logic/restapi-templates/src/main/json/sdlan-ip-subnets-del.json b/platform-logic/restapi-templates/src/main/json/sdlan-ip-subnets-del.json
new file mode 100644 (file)
index 0000000..4e42e61
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "tnps": [
+        {
+            "id": ${prop.lan.lanPortId},            
+        }
+    ]
+}
+
diff --git a/platform-logic/restapi-templates/src/main/json/sdlan-ip-subnets.json b/platform-logic/restapi-templates/src/main/json/sdlan-ip-subnets.json
new file mode 100644 (file)
index 0000000..85ccf15
--- /dev/null
@@ -0,0 +1,37 @@
+{
+  "IPSubnets":[
+  {
+    "vpnId": ${prop.vpnId},
+    "siteId": ${prop.lan.siteId},
+    "deviceId": ${prop.lan.deviceId},
+    "id": "",
+    "interfaceType": "interface",
+    "interfaceName": "interface",
+    "portId": ${prop.lan.devicePortId},
+    "vlanId": null,
+    "ipAddress": ${prop.lan.ip-address},
+    "prefixLength": ${prop.lan.prefixLength},
+    "vrrp": {
+      "enable": false,
+      "vrrpId": null,
+      "virtualIpAddress": null,
+      "defaultRole": null,
+      "preemptDelay": null
+    },
+    "dhcp": {
+      "enable": false,
+      "dhcpServiceType": null,
+      "dhcpServer": null,
+      "dhcpRelay": null
+    },
+    "securityZone": "trust",
+    "proxyArp": "false",
+    "attributes": {
+       "mtu": null,
+       "TCPmss": null
+      },
+    "description": "hub1 L3 test"
+  }
+]
+}
+
diff --git a/platform-logic/restapi-templates/src/main/json/sdlan-port-del.json b/platform-logic/restapi-templates/src/main/json/sdlan-port-del.json
new file mode 100644 (file)
index 0000000..914bb66
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "tnps": [
+        {
+            "id": ${prop.lan.devicePortId},            
+        }
+    ]
+}
+
diff --git a/platform-logic/restapi-templates/src/main/json/sdlan-port.json b/platform-logic/restapi-templates/src/main/json/sdlan-port.json
new file mode 100644 (file)
index 0000000..a499d9a
--- /dev/null
@@ -0,0 +1,23 @@
+{
+    "ports": [
+        {
+            "id": "",
+            "portType": ${prop.lan.portType},
+            "portNumber": ${prop.lan.portNumber},
+            "deviceId": ${prop.lan.deviceId},
+            "portSwitch": ${prop.lan.portSwitch},
+            "linkInfo": {
+                 "linkType": "Ethernet",
+                 "cellular": null,
+                 "atm": null,
+                 "ethernet": {
+                      "negotiationMode": "manual",
+                      "media": "copper",
+                      "duplex": "half",
+                      "speed": 10
+                 }
+            }
+        }
+    ]
+}
+