Merge "CDS integration in GR-API for self-serve"
authorDan Timoney <dtimoney@att.com>
Wed, 6 Mar 2019 17:56:20 +0000 (17:56 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 6 Mar 2019 17:56:20 +0000 (17:56 +0000)
Former-commit-id: 7b60fe453be2fa7d9908576765b7c220802afc39

23 files changed:
installation/sdnc/src/main/docker/Dockerfile
installation/sdnc/src/main/resources/sdnctl.dump
installation/src/main/properties/generic-resource-api-dg.properties
installation/ueb-listener/src/main/docker/Dockerfile
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_pnf-topology-operation-assign.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_pnf-topology-operation.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-pnf-assign.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-pnf-ra-assignment.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vf-module-unassign.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vnf-unassign.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-pnf-input.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-unassign.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-unassign.json
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_pnf-topology-operation-assign.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_pnf-topology-operation.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-pnf-assign.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-pnf-ra-assignment.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vf-module-unassign.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vnf-unassign.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-pnf-input.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-unassign.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-unassign.xml
platform-logic/restapi-templates/src/main/json/self-serve-pnf-assignments.json [new file with mode: 0644]

index 7f7c0de..df39210 100755 (executable)
@@ -13,6 +13,8 @@ ENV JAVA_SECURITY_DIR $SSL_CERTS_DIR/java
 ENV SDNC_NORTHBOUND_REPO mvn:org.onap.sdnc.northbound/sdnc-northbound-all/${sdnc.northbound.version}/xml/features
 
 
+USER root
+
 
 # imstall ssl and java certificates
 COPY AAF_RootCA.cer $SSL_CERTS_DIR
@@ -35,6 +37,8 @@ RUN cp $ODL_HOME/etc/org.apache.karaf.features.cfg $ODL_HOME/etc/org.apache.kara
 RUN sed -i -e "\|featuresRepositories|s|$|,${SDNC_NORTHBOUND_REPO}|"  $ODL_HOME/etc/org.apache.karaf.features.cfg
 RUN sed -i -e "\|featuresBoot[^a-zA-Z]|s|$|,sdnc-northbound-all|"  $ODL_HOME/etc/org.apache.karaf.features.cfg
 
+RUN chown -R odl /opt
+USER odl
 
 ENTRYPOINT /opt/onap/sdnc/bin/startODL.sh
 EXPOSE 8181
index ee6d846..dfe7f92 100644 (file)
@@ -1554,6 +1554,7 @@ CREATE TABLE `NETWORK_MODEL` (
   `network_type` varchar(255) DEFAULT NULL,
   `network_role` varchar(255) DEFAULT NULL,
   `network_technology` varchar(255) DEFAULT NULL,
+  `trunk_network_indicator` char(1) DEFAULT NULL, 
   `network_scope` varchar(255) DEFAULT NULL,
   `naming_policy` varchar(255) DEFAULT NULL,
   `ecomp_generated_naming` char(1) DEFAULT NULL,
index 16d5987..8c21e68 100644 (file)
@@ -31,6 +31,7 @@ restapi.sotn-attachment.templatefile=sotn-attachment-allotted-resource.json
 restapi.sdwan-attachment.templatefile=sdwan-attachment-allotted-resource.json
 restapi.oof-getpath.templatefile=oof-getpath.json
 restapi.naming.gen-name.templatefile=naming-ms-post-gen-name.json
+restapi.ss.pnf.templatefile=self-serve-pnf-assignments.json
 restapi.ss.vnf.templatefile=self-serve-vnf-assignments.json
 restapi.ss.vfmodule.templatefile=self-serve-vfmodule-assignments.json
 restapi.ss.mS.vlan.tag.assign.templatefile=self-serve-mS-vlan-tag-assignments.json
@@ -59,6 +60,7 @@ restapi.services=/restconf/config/GENERIC-RESOURCE-API:services/service/{service
 restapi.service.vnf.vfmodule-resource=/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data/vnfs/vnf/{vnf-id}/vnf-data/vf-modules/vf-module/{vf-module-id}
 restapi.connection-attachment-allottedresource=/restconf/config/GENERIC-RESOURCE-API:connection-attachment-allotted-resources/connection-attachment-allotted-resource/{allotted-resource-id}/
 restapi.naming.gen-name.service=/web/service/v1/genNetworkElementName
+restapi.ss-pnf-assignments=/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data/pnfs/pnf/{pnf-id}/
 restapi.ss-vnf-assignments=/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data/vnfs/vnf/{vnf-id}/
 restapi.ss-vfmodule-assignments=/restconf/config/GENERIC-RESOURCE-API:services/service/{service-instance-id}/service-data/vnfs/vnf/{vnf-id}/vnf-data/vf-modules/vf-module/{vf-module-id}/
 restapi.ss-mS-vlan-tag-assign=/vlantagapi/v1/{action}
index 0ff773d..8008dfd 100644 (file)
@@ -1,7 +1,7 @@
 # Base alpine with added packages needed for open ecomp
 FROM onap/ccsdk-alpine-image:${ccsdk.docker.version}
 MAINTAINER SDNC Team (onap-sdnc@lists.onap.org)
-ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk
+ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk
 ENV SDNC_CONFIG_DIR /opt/onap/sdnc/data/properties
 
 
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_pnf-topology-operation-assign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_pnf-topology-operation-assign.json
new file mode 100644 (file)
index 0000000..2e3a1c2
--- /dev/null
@@ -0,0 +1,424 @@
+[\r
+    {\r
+        "id": "d3b3a7ea.d04d08",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 133.3333282470703,\r
+        "y": 79.63588523864746,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "46bb10f7.5c3fb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46bb10f7.5c3fb",\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": 248.61903381347656,\r
+        "y": 121.54066467285156,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "11b944cd.c96c5b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "11b944cd.c96c5b",\r
+        "type": "method",\r
+        "name": "method pnf-topology-operation-assign",\r
+        "xml": "<method rpc='pnf-topology-operation-assign' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 243.92864990234375,\r
+        "y": 165.55255317687988,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "ce6b8a58.b8d3e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7e923496.314c4c",\r
+        "type": "comment",\r
+        "name": "pnf-topology-operation-assign",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 535.5948638916016,\r
+        "y": 41.38888931274414,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2c8dd484.c334bc",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.request-information.request-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 627.2143096923828,\r
+        "y": 309.0287160873413,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "e97259d0.1af158",\r
+                "413f5d48.571fc4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e97259d0.1af158",\r
+        "type": "outcome",\r
+        "name": "CreatePnfInstance",\r
+        "xml": "<outcome value='CreatePnfInstance'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 880.9286041259766,\r
+        "y": 286.1715974807739,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "f6bc9eb4.5cc37"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "413f5d48.571fc4",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 842.9285697937012,\r
+        "y": 331.88592529296875,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "514d78e9.baa838"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f6bc9eb4.5cc37",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1065.785732269287,\r
+        "y": 286.17162704467773,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "514d78e9.baa838",\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=\"If svc-action is 'assign' then request-action must be 'CreatePnfInstance'\" />\n",\r
+        "comments": "",\r
+        "x": 1082.9285774230957,\r
+        "y": 331.8858833312988,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4388ff9d.ce7d6",\r
+        "type": "get-resource",\r
+        "name": "get-resource VF_MODEL",\r
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODEL WHERE customization_uuid = $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid'\n  pfx='db.vf-model'>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 639.5476150512695,\r
+        "y": 400.17158603668213,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "512ab575.220ccc",\r
+                "3a1614d2.3eacec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6dc29919.0f2208",\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=\"`'No model found for VF customization UUID ' + $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`\" />\n",\r
+        "comments": "",\r
+        "x": 1080.9760932922363,\r
+        "y": 423.60007190704346,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "512ab575.220ccc",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 840.3333129882812,\r
+        "y": 380.55242347717285,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "d5d2d14c.f67aa"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3a1614d2.3eacec",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 848.9047431945801,\r
+        "y": 424.83813667297363,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "6dc29919.0f2208"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d5d2d14c.f67aa",\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 reading VF_MODEL table\" />\n",\r
+        "comments": "",\r
+        "x": 1080.333293914795,\r
+        "y": 378.695330619812,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "95465986.653a28",\r
+        "type": "execute",\r
+        "name": "execute PropertiesNode",\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": 635.1190948486328,\r
+        "y": 182.314471244812,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ce6b8a58.b8d3e8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 353.41272735595703,\r
+        "y": 309.5079708099365,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "2c8dd484.c334bc",\r
+                "4388ff9d.ce7d6",\r
+                "95465986.653a28",\r
+                "6cdfcbff.124fe4",\r
+                "4f7127f2.481f58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6cdfcbff.124fe4",\r
+        "type": "switchNode",\r
+        "name": "switch input cloud-owner",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-request-input.cloud-owner`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 635.8333511352539,\r
+        "y": 237.55254077911377,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "fbe3ca5c.624b78",\r
+                "12f9e0f5.d15d1f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fbe3ca5c.624b78",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 819.1667251586914,\r
+        "y": 207.55252933502197,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "c50e0e6c.80923"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "12f9e0f5.d15d1f",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 818.9286308288574,\r
+        "y": 248.5050230026245,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "6843bdbc.1eb674"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c50e0e6c.80923",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 954.1666793823242,\r
+        "y": 205.88586902618408,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6843bdbc.1eb674",\r
+        "type": "set",\r
+        "name": "set prop.cloud-region.cloud-owner",\r
+        "xml": "<set>\n<parameter name='prop.cloud-region.cloud-owner' value='`$pnf-topology-operation-input.pnf-request-input.cloud-owner`' />\n",\r
+        "comments": "",\r
+        "x": 1035.8333358764648,\r
+        "y": 247.55255031585693,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "940a3bec.b79db8",\r
+        "type": "call",\r
+        "name": "call self-serve-pnf-assign",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='self-serve-pnf-assign' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 848.5553359985352,\r
+        "y": 596.4128832817078,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "ee11637d.64cc5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "22ef4f33.3ca9c",\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=\"`'Failed to create self-serve assignment for pnf with pnf-id=' + $pnf-topology-operation-input.pnf-details.pnf-id + ' with error: ' + $error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 1232.6267127990723,\r
+        "y": 596.4128336906433,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d7499e88.a3c54",\r
+        "type": "comment",\r
+        "name": "SELF-SERVE FORK",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 758.174690246582,\r
+        "y": 547.6151220798492,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ee11637d.64cc5",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1053.8529167175293,\r
+        "y": 595.9009146690369,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "22ef4f33.3ca9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8085154e.65e6a8",\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": 820.9642715454102,\r
+        "y": 750.5674510002136,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4326ce02.3a255",\r
+        "type": "set",\r
+        "name": "set pnf-level-oper-status to PendingCreate",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.order-status' value='PendingCreate' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.last-rpc-action' value='`$pnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.last-action' value='`$pnf-topology-operation-input.request-information.request-action`' />",\r
+        "comments": "",\r
+        "x": 959.0277328491211,\r
+        "y": 649.15491771698,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b05b3263.f3526",\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-pnf-assign.log' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 810.8689994812012,\r
+        "y": 698.3447003364563,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "4f7127f2.481f58",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 599.535530090332,\r
+        "y": 667.8531589508057,\r
+        "z": "6dfe2c1.a0003d4",\r
+        "wires": [\r
+            [\r
+                "940a3bec.b79db8",\r
+                "8085154e.65e6a8",\r
+                "b05b3263.f3526"\r
+            ]\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_pnf-topology-operation.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_pnf-topology-operation.json
new file mode 100644 (file)
index 0000000..9559965
--- /dev/null
@@ -0,0 +1,302 @@
+[\r
+    {\r
+        "id": "a75a636d.6f381",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 151.42859649658203,\r
+        "y": 90.00000190734863,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "bc77da8a.d3eb38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc77da8a.d3eb38",\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.7143020629883,\r
+        "y": 130.2381134033203,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "5d578276.4bfefc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5d578276.4bfefc",\r
+        "type": "method",\r
+        "name": "method pnf-topology-operation",\r
+        "xml": "<method rpc='pnf-topology-operation' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 217.8572235107422,\r
+        "y": 169.99999618530273,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "8685d57b.911a08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "24fd3171.4300ae",\r
+        "type": "comment",\r
+        "name": "pnf-topology-operation",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 545.7734527587891,\r
+        "y": 37.58634567260742,\r
+        "z": "304db441.66b4dc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8685d57b.911a08",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 234.02387237548828,\r
+        "y": 376.26495265960693,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "53481fdc.accfe",\r
+                "142ac2ac.46ecad",\r
+                "1bd90137.06db9f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "53481fdc.accfe",\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": 519.380973815918,\r
+        "y": 530.7146434783936,\r
+        "z": "304db441.66b4dc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "142ac2ac.46ecad",\r
+        "type": "switchNode",\r
+        "name": "switch svc-action",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.sdnc-request-header.svc-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 529.4285430908203,\r
+        "y": 374.4761962890625,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "19927cce.f2a7f3",\r
+                "9c8ad773.ef9d68",\r
+                "a0c10c00.06af18",\r
+                "4205ab8c.75bdf4",\r
+                "5cc63376.4006fc",\r
+                "bec05d4a.4c7b6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "19927cce.f2a7f3",\r
+        "type": "outcome",\r
+        "name": "assign",\r
+        "xml": "<outcome value='assign'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 726.8094863891602,\r
+        "y": 268.5239009857178,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "ff0b4bca.7ccaa8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c8ad773.ef9d68",\r
+        "type": "outcome",\r
+        "name": "unassign",\r
+        "xml": "<outcome value='unassign'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 730.8571090698242,\r
+        "y": 398.7146244049072,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "34401634.f821aa"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4205ab8c.75bdf4",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 724.142744064331,\r
+        "y": 484.3332748413086,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "fa0f4334.3fb5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa0f4334.3fb5",\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=\"`$pnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n",\r
+        "comments": "",\r
+        "x": 910.3331890106201,\r
+        "y": 484.3333396911621,\r
+        "z": "304db441.66b4dc",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1bd90137.06db9f",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:validate-pnf-input",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-pnf-input' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 633.8452301025391,\r
+        "y": 227.38104057312012,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ff0b4bca.7ccaa8",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:pnf-topology-operation-assign",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-assign' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1068.9523391723633,\r
+        "y": 268.0953617095947,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "90a49ca8.b5074",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:pnf-topology-operation-deactivate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-deactivate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1080.2856063842773,\r
+        "y": 352.4287099838257,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "34401634.f821aa",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:pnf-topology-operation-unassign",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-unassign' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1075.952205657959,\r
+        "y": 398.42875576019287,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a0c10c00.06af18",\r
+        "type": "outcome",\r
+        "name": "deactivate",\r
+        "xml": "<outcome value='deactivate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 735.9522476196289,\r
+        "y": 353.09538555145264,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "90a49ca8.b5074"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "38e4cbe2.ef1884",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:pnf-topology-operation-activate",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-activate' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1073.0951843261719,\r
+        "y": 309.9999933242798,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5cc63376.4006fc",\r
+        "type": "outcome",\r
+        "name": "activate",\r
+        "xml": "<outcome value='activate'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 729.7618255615234,\r
+        "y": 310.66666889190674,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "38e4cbe2.ef1884"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bec05d4a.4c7b6",\r
+        "type": "outcome",\r
+        "name": "changeassign",\r
+        "xml": "<outcome value='changeassign'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 745.7143363952637,\r
+        "y": 441.42855644226074,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            [\r
+                "27aa457b.765b8a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "27aa457b.765b8a",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:pnf-topology-operation-changeassign",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-changeassign' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1086.5237045288086,\r
+        "y": 441.1427230834961,\r
+        "z": "304db441.66b4dc",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-pnf-assign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-pnf-assign.json
new file mode 100644 (file)
index 0000000..2c57c17
--- /dev/null
@@ -0,0 +1,1375 @@
+[\r
+    {\r
+        "id": "ecff213c.e8aaa",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 137.5,\r
+        "y": 90,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "23b17adc.1c80e6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e6160663.8edf48",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 167.9761962890625,\r
+        "y": 212.2777862548828,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "f97d0f53.e9029",\r
+                "2d2db8c6.748ba8",\r
+                "ff2d06ee.623348",\r
+                "ca8257f6.464808",\r
+                "b9417a96.c89598",\r
+                "97cbe59f.102fe8",\r
+                "71acdeef.4b572",\r
+                "b26b3f10.8cd93",\r
+                "2c0f97dd.67d808",\r
+                "192a8a0a.311bd6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7bdd8af6.d4d404",\r
+        "type": "method",\r
+        "name": "method self-serve-pnf-assign",\r
+        "xml": "<method rpc='self-serve-pnf-assign' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 254.26190948486328,\r
+        "y": 144.70635509490967,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "e6160663.8edf48"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "23b17adc.1c80e6",\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": 412.73819732666016,\r
+        "y": 90.19049263000488,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "7bdd8af6.d4d404"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2d2db8c6.748ba8",\r
+        "type": "switchNode",\r
+        "name": "switch pnf-parameters-data.param_length",\r
+        "xml": "<switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 449.0357971191406,\r
+        "y": 1492.5120153427124,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "eb4e37ba.25e208"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "eb4e37ba.25e208",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 711.0358276367188,\r
+        "y": 1492.5120153427124,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "ed282b71.ede0f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "21ad94d1.be148c",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:self-serve-pnf-ra-assignment",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='self-serve-pnf-ra-assignment' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1226.3214874267578,\r
+        "y": 1542.0834465026855,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "ffcba76.e3a6658"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "afb8d713.9ea788",\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 get RA assignments: ' + $error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 1698.0357284545898,\r
+        "y": 1541.6548500061035,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6f90ee45.cde4f",\r
+        "type": "for",\r
+        "name": "foreach pnf-parameters-data.param[]",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 681.3574600219727,\r
+        "y": 1800.0120840072632,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "c123dce6.984a6",\r
+                "a008f4ce.816ac8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f97d0f53.e9029",\r
+        "type": "set",\r
+        "name": "set ss.capability.execution-order[]",\r
+        "xml": "<set>\n<parameter name='ss.capability.execution-order[0]' value='aai-get' />\n<parameter name='ss.capability.execution-order[1]' value='generate-name' />\n<parameter name='ss.capability.execution-order[2]' value='alts-entitlement-assign' />\n<parameter name='ss.capability.execution-order[3]' value='alts-license-assign' />\n<parameter name='ss.capability.execution-order[4]' value='vlan-tag-assign' />\n<parameter name='ss.capability.execution-order[5]' value='mS-vlan-tag-assign' />\n<parameter name='ss.capability.execution-order[6]' value='eipam-ip-assignment' />\n<parameter name='ss.capability.execution-order[7]' value='eipam-create-pool' />\n<parameter name='ss.capability.execution-order[8]' value='netbox-ip-assign' />\n<parameter name='ss.capability.execution-order[9]' value='mac-address-assign' />\n<parameter name='ss.capability.execution-order[10]' value='mS-mac-address-assign' />\n<parameter name='ss.capability.execution-order[11]' value='create-vpe-pool' />\n<parameter name='ss.capability.execution-order[12]' value='unresolved-composite-data' />\n<parameter name='ss.capability.execution-order[13]' value='aai-pnf-put' />\n<parameter name='ss.capability.execution-order_length' value='14' />\n",\r
+        "comments": "",\r
+        "x": 430.02384185791016,\r
+        "y": 1271.0001401901245,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ff2d06ee.623348",\r
+        "type": "for",\r
+        "name": "foreach capability[]",\r
+        "xml": "<for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 381.14300537109375,\r
+        "y": 1644.4049034118652,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "34d7033c.1d850c",\r
+                "bcdcac9e.1dcf8",\r
+                "6f90ee45.cde4f",\r
+                "7e8acf11.757ce"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a008f4ce.816ac8",\r
+        "type": "switchNode",\r
+        "name": "switch capability-name",\r
+        "xml": "<switch test='`$ss.capability-name == $tmp.param.capability-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 985.7502822875977,\r
+        "y": 1845.6548767089844,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "fbc7d0d6.d0f9a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fbc7d0d6.d0f9a",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1176.2502822875977,\r
+        "y": 1845.9048767089844,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "1d5ac87a.53fd58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ffcba76.e3a6658",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1543.8928337097168,\r
+        "y": 1541.5120401382446,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "afb8d713.9ea788"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "34d7033c.1d850c",\r
+        "type": "set",\r
+        "name": "set ss.capability-name",\r
+        "xml": "<set>\n<parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\n<!--\nss.capability.execution-order[]\n-->",\r
+        "comments": "",\r
+        "x": 637.5000610351562,\r
+        "y": 1644.3573551177979,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c123dce6.984a6",\r
+        "type": "set",\r
+        "name": "tmp.param.capability-name",\r
+        "xml": "<set>\n<parameter name='tmp.param.capability-name' \n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$pidx].resource-resolution-data.capability-name`' />",\r
+        "comments": "",\r
+        "x": 997.107307434082,\r
+        "y": 1800.2620868682861,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bcdcac9e.1dcf8",\r
+        "type": "set",\r
+        "name": "set ss.capability-action = assign",\r
+        "xml": "<set>\n<parameter name='ss.capability-action' value='assign' />\n",\r
+        "comments": "",\r
+        "x": 666.2142028808594,\r
+        "y": 1691.2739391326904,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7e8acf11.757ce",\r
+        "type": "set",\r
+        "name": "set capability-dg with 'self-serve-' + capability-name",\r
+        "xml": "<set>\n<parameter name='ss.capability-dg' value=\"`'self-serve-' + $ss.capability.execution-order[$cidx]`\" />\n",\r
+        "comments": "",\r
+        "x": 728.7262954711914,\r
+        "y": 1744.7501831054688,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ca8257f6.464808",\r
+        "type": "set",\r
+        "name": "set sdnc-generated-cloud-resources = true",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.sdnc-generated-cloud-resources' value='true' />\n",\r
+        "comments": "",\r
+        "x": 458.9881362915039,\r
+        "y": 1324.7501487731934,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9217be7a.bbdb1",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 715.428539276123,\r
+        "y": 605.4643030166626,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "3723f166.b9d03e",\r
+                "74858ef1.51481",\r
+                "a4d6abfb.adbf88",\r
+                "7c366e89.adcd7",\r
+                "16c17b92.58b8f4",\r
+                "2ef35e2.ce87ea2",\r
+                "25981633.c7dc4a",\r
+                "152546f0.c6dac9",\r
+                "6f7c97df.b99708"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3723f166.b9d03e",\r
+        "type": "set",\r
+        "name": "set pnf-topology data",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-topology-identifier-structure.pnf-id'\n value='`$pnf-topology-operation-input.pnf-details.pnf-id`' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-topology-identifier-structure.pnf-type'\n value='`$pnf-topology-operation-input.pnf-details.pnf-type`' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.tenant'\n value='`$pnf-topology-operation-input.pnf-request-input.tenant`' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.aic-cloud-region'\n value='`$pnf-topology-operation-input.pnf-request-input.aic-cloud-region`' />",\r
+        "comments": "",\r
+        "x": 930.9284820556641,\r
+        "y": 606.523811340332,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ca44a755.ad1c68",\r
+        "type": "set",\r
+        "name": "set pnf-parameters-data",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.'\n  value='pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.' />\n",\r
+        "comments": "",\r
+        "x": 1117.3217163085938,\r
+        "y": 1492.380844116211,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a4d6abfb.adbf88",\r
+        "type": "set",\r
+        "name": "set pnf-level-oper-status to PendingCreate",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.order-status' value='PendingCreate' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.last-rpc-action' value='`$pnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.last-action' value='`$pnf-topology-operation-input.request-information.request-action`' />\n",\r
+        "comments": "",\r
+        "x": 996.2184371948242,\r
+        "y": 1180.504020690918,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "74858ef1.51481",\r
+        "type": "set",\r
+        "name": "copy input data",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.sdnc-request-header.'\n        value='$pnf-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.request-information.'\n        value='$pnf-topology-operation-input.request-information.' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.'\n        value='$pnf-topology-operation-input.service-information.' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.'\n        value='$pnf-topology-operation-input.pnf-details.' />\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.'\n        value='$pnf-topology-operation-input.pnf-request-input.' />",\r
+        "comments": "",\r
+        "x": 913.5953521728516,\r
+        "y": 1130.3096599578857,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b0cbcbbb.b2c498",\r
+        "type": "set",\r
+        "name": "set from DB",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-invariant-uuid'\n  value='`$db.pnf-model.invariant-uuid`' />",\r
+        "comments": "",\r
+        "x": 1327.9286727905273,\r
+        "y": 718.8810405731201,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7c366e89.adcd7",\r
+        "type": "switchNode",\r
+        "name": "switch input model-invariant-uuid",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-invariant-uuid`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 968.7857475280762,\r
+        "y": 741.7054843902588,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "ae90c040.3cc39",\r
+                "5f2c6ed0.29635"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ae90c040.3cc39",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1177.4524192810059,\r
+        "y": 718.8484477996826,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "b0cbcbbb.b2c498"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5f2c6ed0.29635",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1178.881015777588,\r
+        "y": 763.1340389251709,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "f383b18b.bfab9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f383b18b.bfab9",\r
+        "type": "set",\r
+        "name": "set from input",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-invariant-uuid'\n  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-invariant-uuid`' />",\r
+        "comments": "",\r
+        "x": 1333.1667518615723,\r
+        "y": 762.5626111030579,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4d3a329b.f2f90c",\r
+        "type": "set",\r
+        "name": "set from DB",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-uuid'\n  value='`$db.pnf-model.uuid`' />",\r
+        "comments": "",\r
+        "x": 1328.8809432983398,\r
+        "y": 807.419716835022,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "16c17b92.58b8f4",\r
+        "type": "switchNode",\r
+        "name": "switch input model-uuid",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-uuid`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 938.4047660827637,\r
+        "y": 830.2442216873169,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "59c0725a.54805c",\r
+                "bfa95def.afc74"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "59c0725a.54805c",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1178.4047393798828,\r
+        "y": 807.3871536254883,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "4d3a329b.f2f90c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bfa95def.afc74",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1179.8333358764648,\r
+        "y": 851.6727447509766,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "f2189dfb.909da"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f2189dfb.909da",\r
+        "type": "set",\r
+        "name": "set from input",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-uuid'\n  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-uuid`' />",\r
+        "comments": "",\r
+        "x": 1334.1190719604492,\r
+        "y": 851.1013169288635,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "24e86468.e8cd5c",\r
+        "type": "set",\r
+        "name": "set from DB",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-version'\n  value='`$db.pnf-model.version`' />",\r
+        "comments": "",\r
+        "x": 1326.0238761901855,\r
+        "y": 896.2769241333008,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2ef35e2.ce87ea2",\r
+        "type": "switchNode",\r
+        "name": "switch input model-version",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-version`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 949.5476379394531,\r
+        "y": 919.1013689041138,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "9b0d0090.c86a6",\r
+                "43470848.9d99c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9b0d0090.c86a6",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1175.547622680664,\r
+        "y": 896.2443313598633,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "24e86468.e8cd5c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "43470848.9d99c8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1176.976219177246,\r
+        "y": 940.5299224853516,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "1db4f705.93ccc9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1db4f705.93ccc9",\r
+        "type": "set",\r
+        "name": "set from input",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-version'\n  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-version`' />\n",\r
+        "comments": "",\r
+        "x": 1331.2619552612305,\r
+        "y": 939.9584946632385,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1dc78c79.a450c4",\r
+        "type": "set",\r
+        "name": "set from DB",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-name'\n  value='`$db.pnf-model.name`' />\n",\r
+        "comments": "",\r
+        "x": 1326.0238761901855,\r
+        "y": 983.4197463989258,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "25981633.c7dc4a",\r
+        "type": "switchNode",\r
+        "name": "switch input model-name",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 944.5476379394531,\r
+        "y": 1006.2441911697388,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "443be686.54dde8",\r
+                "f6a73c6d.1c44a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "443be686.54dde8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1175.547622680664,\r
+        "y": 983.3871536254883,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "1dc78c79.a450c4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f6a73c6d.1c44a",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1176.976219177246,\r
+        "y": 1027.6727447509766,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "963f984e.4e1598"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "963f984e.4e1598",\r
+        "type": "set",\r
+        "name": "set from input",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-name'\n  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-name`' />\n",\r
+        "comments": "",\r
+        "x": 1331.2619552612305,\r
+        "y": 1027.1013169288635,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "152546f0.c6dac9",\r
+        "type": "set",\r
+        "name": "set pnf-id",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-id'\n   value='`$pnf-topology-operation-input.pnf-details.pnf-id`' />\n",\r
+        "comments": "",\r
+        "x": 894.9047088623047,\r
+        "y": 658.0388488769531,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6f7c97df.b99708",\r
+        "type": "set",\r
+        "name": "set model-customization-uuid",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-customization-uuid' \n  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`' />\n",\r
+        "comments": "",\r
+        "x": 957.3332252502441,\r
+        "y": 1079.0863952636719,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b26b3f10.8cd93",\r
+        "type": "switchNode",\r
+        "name": "switch service-data.pnfs.pnf_length",\r
+        "xml": "<switch test='`$service-data.pnfs.pnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 441.58329010009766,\r
+        "y": 292.4285001754761,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "548784a8.6fc1bc",\r
+                "97bdaa3b.0e9cb8",\r
+                "f611eac6.477cc8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "548784a8.6fc1bc",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 683.7976760864258,\r
+        "y": 230.98793125152588,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "d33ee57f.a3ecb8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1c98dcd.f3b3f23",\r
+        "type": "set",\r
+        "name": "set pnf-index=0",\r
+        "xml": "<set>\n<parameter name='pnf-index' value='0' />\n",\r
+        "comments": "",\r
+        "x": 1019.083381652832,\r
+        "y": 230.48800563812256,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "97bdaa3b.0e9cb8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 684.976203918457,\r
+        "y": 352.607120513916,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "231e0e98.80a622"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6ac25c2c.af1c14",\r
+        "type": "switchNode",\r
+        "name": "switch resource-resolution-data.status",\r
+        "xml": "<switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$pidx].resource-resolution-data.status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 843.3693580627441,\r
+        "y": 2105.3293199539185,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "3502dbdf.32a874",\r
+                "cc3acc09.1c768"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3502dbdf.32a874",\r
+        "type": "other",\r
+        "name": "PENDING",\r
+        "xml": "<outcome value='PENDING'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1112.7265739440918,\r
+        "y": 2105.3292760849,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "829e3fb9.d93a7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cc3acc09.1c768",\r
+        "type": "other",\r
+        "name": "FAILED",\r
+        "xml": "<outcome value='FAILED'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1106.2623901367188,\r
+        "y": 2156.2936067581177,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "829e3fb9.d93a7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "829e3fb9.d93a7",\r
+        "type": "call",\r
+        "name": "call ss.capability-dg",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1321.3811225891113,\r
+        "y": 2157.0554580688477,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "3962ddfe.4c5df2",\r
+                "3e772b22.e1c734"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bdafebf6.f2fbb8",\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 from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 1888.9286193847656,\r
+        "y": 2413.532018661499,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3962ddfe.4c5df2",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1506.2736320495605,\r
+        "y": 2157.055519104004,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "c929724.d0d769"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c929724.d0d769",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1669.5477485656738,\r
+        "y": 2156.3650598526,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "bdafebf6.f2fbb8",\r
+                "b6818d14.aad68",\r
+                "ae39be90.d76b7",\r
+                "60ef7bf2.fa7a14",\r
+                "e7c0edc.af4641"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ae39be90.d76b7",\r
+        "type": "execute",\r
+        "name": "generate ss-pnf url replace service-instance-id",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.ss-pnf-assignments`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-pnf-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.service-instance-id`\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1992.8808403015137,\r
+        "y": 2209.88161945343,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e7c0edc.af4641",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode - PUT pnf",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.ss.pnf.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-pnf-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ss-pnf\" />\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1962.3451347351074,\r
+        "y": 2312.7388410568237,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "2aae309b.44db4",\r
+                "6c63be99.6e9df"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2aae309b.44db4",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2236.9388008117676,\r
+        "y": 2366.736994743347,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "47b71a3e.97bf84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6c63be99.6e9df",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2229.3674354553223,\r
+        "y": 2313.237014770508,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "47b71a3e.97bf84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6818d14.aad68",\r
+        "type": "set",\r
+        "name": "set pf data for restapi-call-node",\r
+        "xml": "<set>\n<parameter name='pf.pnf-id'\n    value='`$service-data.pnfs.pnf[$pnf-index].pnf-id`' />\n<parameter name='pf.pnf-data.sdnc-request-header.'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.sdnc-request-header.`' />\n<parameter name='pf.pnf-data.request-information.'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.request-information.`' />\n<parameter name='pf.pnf-data.service-information.'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.`' />\n<parameter name='pf.pnf-data.pnf-details.'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.`' />\n<parameter name='pf.pnf-data.pnf-topology.'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.`' />\n<parameter name='pf.pnf-data.pnf-level-oper-status.'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.`' />\n<parameter name='pf.pnf-data.pnf-request-input.pnf-input-parameters.'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.pnf-input-parameters.`' />\n<parameter name='pf.pnf-data.pnf-request-input.request-version'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.request-version`' />\n<parameter name='pf.pnf-data.pnf-request-input.pnf-name'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.pnf-name`' />\n<parameter name='pf.pnf-data.pnf-request-input.tenant'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.tenant`' />\n<parameter name='pf.pnf-data.pnf-request-input.aic-cloud-region'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.aic-cloud-region`' />\n<parameter name='pf.pnf-data.pnf-request-input.aic-clli'\n  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.aic-clli`' />",\r
+        "comments": "",\r
+        "x": 1945.3331413269043,\r
+        "y": 2155.976131439209,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "60ef7bf2.fa7a14",\r
+        "type": "execute",\r
+        "name": "generate ss-pnf url - replace pnf-id",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss-pnf-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-pnf-url\"/>\n    <parameter name=\"target\" value=\"{pnf-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.pnfs.pnf[$pnf-index].pnf-id`\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1957.16654586792,\r
+        "y": 2260.69038772583,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "97cbe59f.102fe8",\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-pnf-assign.log' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 344.42456817626953,\r
+        "y": 2600.920820236206,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b9417a96.c89598",\r
+        "type": "set",\r
+        "name": "set ss.capability-type = pnf",\r
+        "xml": "<set>\n<parameter name='ss.capability-type' value='pnf' />\n",\r
+        "comments": "",\r
+        "x": 409.89292907714844,\r
+        "y": 1375.5357942581177,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ed282b71.ede0f8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 875.8927993774414,\r
+        "y": 1492.892912864685,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "ca44a755.ad1c68",\r
+                "21ad94d1.be148c",\r
+                "31272402.ad905c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b109eefc.1d872",\r
+        "type": "for",\r
+        "name": "for each existing PNF",\r
+        "xml": "<for index='idx' start='0' end='`$service-data.pnfs.pnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1032.0357284545898,\r
+        "y": 352.78579807281494,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "b986a80e.96c248"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b986a80e.96c248",\r
+        "type": "switchNode",\r
+        "name": "switch pnf-id: input vs service-data",\r
+        "xml": "<switch test='`$pf-topology-operation-input.pnf-details.pnf-id == $service-data.pnfs.pnf[$idx].pnf-id`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1309.321434020996,\r
+        "y": 352.85728549957275,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "cb09cf77.62df4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cb09cf77.62df4",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1532.1072006225586,\r
+        "y": 352.4287576675415,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "747e7c3c.174b44"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "747e7c3c.174b44",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1664.5714530944824,\r
+        "y": 352.46431827545166,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "2a95ccf.7794434",\r
+                "8c6ecdd5.9e28b",\r
+                "4b25e8bd.e53158"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2a95ccf.7794434",\r
+        "type": "break",\r
+        "name": "break",\r
+        "xml": "<break>\n",\r
+        "comments": "",\r
+        "x": 1832.464241027832,\r
+        "y": 438.4642963409424,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "923b1ffd.af18b",\r
+        "type": "set",\r
+        "name": "set new pnf_length = 1",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf_length' value='1' />\n",\r
+        "comments": "",\r
+        "x": 1042.642951965332,\r
+        "y": 275.82148838043213,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8c6ecdd5.9e28b",\r
+        "type": "set",\r
+        "name": "set pnf-index = idx",\r
+        "xml": "<set>\n<parameter name='pnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1863.0357971191406,\r
+        "y": 395.2499752044678,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "71acdeef.4b572",\r
+        "type": "set",\r
+        "name": "set is-new-pnf = true",\r
+        "xml": "<set>\n<parameter name='is-new-pnf' value='true' />\n",\r
+        "comments": "",\r
+        "x": 395.8929214477539,\r
+        "y": 212.32144355773926,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4b25e8bd.e53158",\r
+        "type": "set",\r
+        "name": "set is-new-pnf = false",\r
+        "xml": "<set>\n<parameter name='is-new-pnf' value='false' />\n",\r
+        "comments": "",\r
+        "x": 1871.0714836120605,\r
+        "y": 351.9643201828003,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "231e0e98.80a622",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 822.2500228881836,\r
+        "y": 352.2500162124634,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "b109eefc.1d872",\r
+                "12659093.1463bf"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "12659093.1463bf",\r
+        "type": "switchNode",\r
+        "name": "switch is-new-pnf",\r
+        "xml": "<switch test='`$is-new-pnf`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1019.7500152587891,\r
+        "y": 438.8214178085327,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "273b5e8f.735eb2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "273b5e8f.735eb2",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1199.6071701049805,\r
+        "y": 438.39286518096924,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "35d2b6f5.5b532a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d33ee57f.a3ecb8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 837.7499923706055,\r
+        "y": 230.99999713897705,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "1c98dcd.f3b3f23",\r
+                "923b1ffd.af18b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f611eac6.477cc8",\r
+        "type": "other",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 682.2499923706055,\r
+        "y": 290.7499990463257,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "d33ee57f.a3ecb8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2c0f97dd.67d808",\r
+        "type": "switchNode",\r
+        "name": "switch is-new-pnf",\r
+        "xml": "<switch test='`$is-new-pnf`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 383.75000381469727,\r
+        "y": 606.2500057220459,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "a0d4e067.649e6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a0d4e067.649e6",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 563.6071586608887,\r
+        "y": 605.8214530944824,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "9217be7a.bbdb1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "42f65de7.c91174",\r
+        "type": "set",\r
+        "name": "set new pnf_length++",\r
+        "xml": "<set>\n<parameter name='service-data.pnfs.pnf_length' value='`$service-data.pnfs.pnf_length + 1`' />\n",\r
+        "comments": "",\r
+        "x": 1547.5,\r
+        "y": 485,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "35d2b6f5.5b532a",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1345.4999771118164,\r
+        "y": 437.99996185302734,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "42f65de7.c91174",\r
+                "5e6b2c5e.23b7b4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5e6b2c5e.23b7b4",\r
+        "type": "set",\r
+        "name": "set pnf-index = pnf_length",\r
+        "xml": "<set>\n<parameter name='pnf-index' value='`$service-data.pnfs.pnf_length`' />\n",\r
+        "comments": "",\r
+        "x": 1556.9999809265137,\r
+        "y": 437.49996185302734,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "47b71a3e.97bf84",\r
+        "type": "set",\r
+        "name": "set error-message",\r
+        "xml": "<set>\n<parameter name=\"error-message\" value=\"Failed to persist self-serve pnf assignments during assign in MD-SAL\" />",\r
+        "comments": "",\r
+        "x": 2449.285758972168,\r
+        "y": 2312.107021331787,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1d5ac87a.53fd58",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 577.5000228881836,\r
+        "y": 2105.142770767212,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "6ac25c2c.af1c14",\r
+                "cb3f6813.5ca268"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cb3f6813.5ca268",\r
+        "type": "break",\r
+        "name": "break",\r
+        "xml": "<break>\n",\r
+        "comments": "",\r
+        "x": 741.7857627868652,\r
+        "y": 2481.4284267425537,\r
+        "z": "37882b3b.b21224",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3e772b22.e1c734",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1517.5000228881836,\r
+        "y": 2277.5000324249268,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "7440700b.da7e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7440700b.da7e",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'EXECUTION DONE: ' + $ss.capability-dg`\"/>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1661.2500228881836,\r
+        "y": 2276.2500324249268,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "31272402.ad905c",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"DONE with pnf-ra-assigment\"/>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1054.1071319580078,\r
+        "y": 1592.5000228881836,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "45a102ef.9c38fc",\r
+        "type": "execute",\r
+        "name": "execute PropertiesNode",\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": 817.5000381469727,\r
+        "y": 1432.4286422729492,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "192a8a0a.311bd6",\r
+        "type": "switchNode",\r
+        "name": "switch prop.controller.user",\r
+        "xml": "<switch test='`$prop.controller.user`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 406.21427372523704,\r
+        "y": 1432.8572630201065,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "98f24d4.445dfb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "98f24d4.445dfb",\r
+        "type": "failure",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 606.0713691711426,\r
+        "y": 1432.428677558899,\r
+        "z": "37882b3b.b21224",\r
+        "wires": [\r
+            [\r
+                "45a102ef.9c38fc"\r
+            ]\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-pnf-ra-assignment.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-pnf-ra-assignment.json
new file mode 100644 (file)
index 0000000..616ca73
--- /dev/null
@@ -0,0 +1,1074 @@
+[\r
+    {\r
+        "id": "81013586.72b878",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 152.5,\r
+        "y": 73.75,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "16d29a69.fd75d6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "16d29a69.fd75d6",\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": 428.5,\r
+        "y": 74.75,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "fb8a3acf.eacc88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fb8a3acf.eacc88",\r
+        "type": "method",\r
+        "name": "self-serve-pnf-ra-assignment",\r
+        "xml": "<method rpc='self-serve-pnf-ra-assignment' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 745.5,\r
+        "y": 74.75,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "11ad89b0.4aa4c6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "11ad89b0.4aa4c6",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 241.66664123535156,\r
+        "y": 155.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "6a8abb82.762c24",\r
+                "d5ddf680.bc1228",\r
+                "d7d846c4.3b1898",\r
+                "62bc77a8.9608f8",\r
+                "ef795e5f.2b62e",\r
+                "cd9ccb1d.ad27d8",\r
+                "e4653dfe.029a3",\r
+                "ed802b4f.e3de88",\r
+                "4ae0bbb3.7d20c4",\r
+                "3049bbb0.b6b734",\r
+                "9eebb178.0f2de",\r
+                "507cc1d.a43bf4",\r
+                "22187a30.f13be6",\r
+                "c7fb6ab.3a33598",\r
+                "7905fcc3.ff7874"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d5ddf680.bc1228",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n   <parameter name=\"request-id\" value=\"`$tmp.return.generate.pnf-se-serv-uuid`\"/>\n   <parameter name=\"resource-type\" value=\"`$pnf-topology-operation-input.pnf-details.pnf-type`\" />  \n   <parameter name=\"resource-id\" value=\"`$pnf-topology-operation-input.pnf-details.pnf-id`\" />   \n   <parameter name=\"action-name\" value=\"resource-assignment\"/> \n   <parameter name=\"responsePrefix\" value=\"raAssign\" />\n",\r
+        "comments": "",\r
+        "x": 427.4166603088379,\r
+        "y": 199.83333015441895,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1893855c.d16e5b",\r
+        "type": "get-resource",\r
+        "name": "get-resource VF_MODEL",\r
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODEL WHERE customization_uuid = $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid'\n  pfx='db1.vf-model'>\n  \n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 966.3094635009766,\r
+        "y": 591.3689861297607,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "a87dd4cc.178e18",\r
+                "ba66fea4.81fad",\r
+                "c6434f37.1962d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a87dd4cc.178e18",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1211.3095626831055,\r
+        "y": 540.654709815979,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "ab46b2b3.a771c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ab46b2b3.a771c",\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 reading VF_MODEL table\" />\n",\r
+        "comments": "",\r
+        "x": 1384.3095626831055,\r
+        "y": 539.654709815979,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "879b8f8b.c19ed",\r
+        "type": "set",\r
+        "name": "set tmp.sdnc-model-name, tmp.sdnc-model-version, tmp.sdnc-artifact-name",\r
+        "xml": "<set>\n<parameter name='tmp.sdnc-model-name' value='`$db1.vf-model.sdnc-model-name`' />\n<parameter name='tmp.sdnc-model-version' value='`$db1.vf-model.sdnc-model-version`' />\n<parameter name='tmp.sdnc-artifact-name' value='`$db1.vf-model.sdnc-artifact-name`' />\n\n\n\n\n",\r
+        "comments": "",\r
+        "x": 1586.7380638122559,\r
+        "y": 640.797513961792,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c7b5dfc8.8b235",\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=\"`'No VF_MODEL found where customization_uuid = ' + $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`\" />\n",\r
+        "comments": "",\r
+        "x": 1386.3095626831055,\r
+        "y": 588.654709815979,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ef795e5f.2b62e",\r
+        "type": "switchNode",\r
+        "name": "switch: model info == NULL",\r
+        "xml": "<switch test=\"`$tmp.sdnc-model-name == '' or $tmp.sdnc-model-version == '' or $tmp.sdnc-artifact-name == ''`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 487.30946350097656,\r
+        "y": 592.3689861297607,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "e98bb0b9.b2422"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba66fea4.81fad",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1217.3095626831055,\r
+        "y": 589.654709815979,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "c7b5dfc8.8b235"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e98bb0b9.b2422",\r
+        "type": "outcome",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 736.3094635009766,\r
+        "y": 592.3689861297607,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "1893855c.d16e5b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "62bc77a8.9608f8",\r
+        "type": "for",\r
+        "name": "for pnf-topology-operation-input",\r
+        "xml": "<for silentFailure='true' index='i' start='0' end='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 503.16664123535156,\r
+        "y": 392.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "72f58635.66b448"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "72f58635.66b448",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 725.1666412353516,\r
+        "y": 391.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "86d3f258.93e3b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d041de83.d9577",\r
+        "type": "set",\r
+        "name": "set tmp.sdnc-model-name",\r
+        "xml": "<set>\n<parameter name='tmp.sdnc-model-name' value='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].value`' />\n",\r
+        "comments": "",\r
+        "x": 1376.1666412353516,\r
+        "y": 324.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2a96bf97.393f3",\r
+        "type": "outcome",\r
+        "name": "sdnc_model_name",\r
+        "xml": "<outcome value='sdnc_model_name'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1122.1666412353516,\r
+        "y": 324.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "d041de83.d9577"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "86d3f258.93e3b",\r
+        "type": "switchNode",\r
+        "name": "switch",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].name`'>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 884.1666412353516,\r
+        "y": 391.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "2a96bf97.393f3",\r
+                "ff1ab59.1eb4148",\r
+                "733b67e2.c4f3c8",\r
+                "e6ecce71.c3cfb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ff1ab59.1eb4148",\r
+        "type": "outcome",\r
+        "name": "sdnc_model_version",\r
+        "xml": "<outcome value='sdnc_model_version'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1125.1666412353516,\r
+        "y": 370.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "9cc66f84.f4ee2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "733b67e2.c4f3c8",\r
+        "type": "outcome",\r
+        "name": "sdnc_artifact_name",\r
+        "xml": "<outcome value='sdnc_artifact_name'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1124.1666412353516,\r
+        "y": 419.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "f2663e84.97046"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9cc66f84.f4ee2",\r
+        "type": "set",\r
+        "name": "set tmp.sdnc-model-version",\r
+        "xml": "<set>\n<parameter name='tmp.sdnc-model-version' value='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].value`' />\n\n",\r
+        "comments": "",\r
+        "x": 1380.1666412353516,\r
+        "y": 370.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f2663e84.97046",\r
+        "type": "set",\r
+        "name": "set tmp.sdnc-artifact-name",\r
+        "xml": "<set>\n<parameter name='tmp.sdnc-artifact-name' value='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].value`' />\n\n",\r
+        "comments": "",\r
+        "x": 1376.1666412353516,\r
+        "y": 419.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ab5de2cd.b8552",\r
+        "type": "set",\r
+        "name": "set name-value other JsonString",\r
+        "xml": "<set>\n<parameter name=\"tmp.config-name-value-other-payload\" value=\"`$tmp.config-name-value-other-payload + '&quot;' + $pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].name + '&quot;:&quot;' + $pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].value + '&quot;,'`\"/>\n\n",\r
+        "comments": "",\r
+        "x": 1293.416648864746,\r
+        "y": 470.58335041999817,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e6ecce71.c3cfb",\r
+        "type": "outcome",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1084.166648864746,\r
+        "y": 468.6547546386719,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "ab5de2cd.b8552"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cd9ccb1d.ad27d8",\r
+        "type": "set",\r
+        "name": "set configAssignment JsonString",\r
+        "xml": "<set>\n<parameter name=\"tmp.config-name-value-payload4\" value=\"`$tmp.config-name-value-other-payload + '&quot;service-instance-id&quot;:&quot;' + $pnf-topology-operation-input.service-information.service-instance-id   + '&quot;,'`\"/>\n<parameter name=\"tmp.config-name-value-payload5\" value=\"`$tmp.config-name-value-payload4 + '&quot;pnf-model-customization-uuid&quot;:&quot;' + $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid + '&quot;,'`\"/>\n<parameter name=\"tmp.config-name-value-payload6\" value=\"`$tmp.config-name-value-payload5 + '&quot;pnf-id&quot;:&quot;' + $pnf-topology-operation-input.pnf-details.pnf-id + '&quot;,'`\"/>\n<parameter name=\"tmp.config-name-value-payload7\" value=\"`$tmp.config-name-value-payload6 + '&quot;aic-cloud-region&quot;:&quot;' + $pnf-topology-operation-input.pnf-request-input.aic-cloud-region + '&quot;'`\"/>\n<parameter name=\"tmp.json-payload\" value=\"`'{' + $tmp.config-name-value-payload7 + '}'`\" />",\r
+        "comments": "",\r
+        "x": 497.16664123535156,\r
+        "y": 711.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e4653dfe.029a3",\r
+        "type": "execute",\r
+        "name": "execute BlueprintProcessingClient",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.adaptors.grpc.cds.BlueprintProcessingClient' method='sendRequest'>\n <parameter name='blueprint_name' value='`$tmp.sdnc-model-name`' />\n <parameter name='blueprint_version' value='`$tmp.sdnc-model-version`' />\n <parameter name='action' value='`$action-name`' />\n <parameter name='mode' value='sync' />\n <parameter name='force' value='false' />\n <parameter name='ttl' value='0' />\n <parameter name='prefix' value='`$responsePrefix`' />\n <parameter name='payload' value=\"`'{\n  &quot;resource-assignment-request&quot;: {\n    &quot;template-prefix&quot;: [\n      &quot;' + $tmp.sdnc-artifact-name + '&quot;\n    ],\n    &quot;resource-assignment-properties&quot;: \n        ' + $tmp.json-payload + '\n  }\n}'`\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 504.83331298828125,\r
+        "y": 865.75,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "e9f0b05a.ea9a7",\r
+                "9906e0de.d8aa9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e9f0b05a.ea9a7",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 744.8333129882812,\r
+        "y": 839.75,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "f76d9cc.08daa6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f76d9cc.08daa6",\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 from BlueprintProcessingClient\" />\n",\r
+        "comments": "",\r
+        "x": 926.8333129882812,\r
+        "y": 860.75,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4ae0bbb3.7d20c4",\r
+        "type": "for",\r
+        "name": "for resource-accumulator-resolved-data loop",\r
+        "xml": "<for silentFailure='true'  index='i' start='0' end='`$jsonContextPrefix.resource-accumulator-resolved-data_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 529.1666412353516,\r
+        "y": 1083.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "f7dcae4c.80d6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a560f52e.73b478",\r
+        "type": "set",\r
+        "name": "set from resource-accumulator-resolved-data",\r
+        "xml": "<set>\n\t<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].name`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-name`'/>\n\t<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].value`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-value`'/>\n\t<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.capability-name`' value='RA Resolved'/>\n\t<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.status`' value='SUCCESS'/>\n",\r
+        "comments": "",\r
+        "x": 1759.1666412353516,\r
+        "y": 1135.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3049bbb0.b6b734",\r
+        "type": "for",\r
+        "name": "for capability-data",\r
+        "xml": "<for silentFailure='true' index='i' start='0' end='`$jsonContextPrefix.capability-data_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 454.16664123535156,\r
+        "y": 1425.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "c321b6db.f91618"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c321b6db.f91618",\r
+        "type": "for",\r
+        "name": "for key-mapping",\r
+        "xml": "<for silentFailure='true' index='j' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 663.1666412353516,\r
+        "y": 1425.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "4bdfbe92.58a07"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ed802b4f.e3de88",\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=\"`'raAssign.payload.resource-assignment-params.' + $tmp.sdnc-artifact-name`\" />\n\t<parameter name=\"outputPath\" value=\"jsonContextPrefix\" />\n\t<parameter name=\"isEscaped\" value=\"false\" />\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 473.16664123535156,\r
+        "y": 1004.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6a8abb82.762c24",\r
+        "type": "execute",\r
+        "name": "execute generateUUID",\r
+        "xml": " <execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" > \n <parameter name=\"ctx-destination\" value=\"tmp.return.generate.pnf-se-serv-uuid\" /> \n ",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 479.16664123535156,\r
+        "y": 155.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "da110978.037e18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "da110978.037e18",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 657.1666412353516,\r
+        "y": 153.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "25f8a570.76c1ea"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "25f8a570.76c1ea",\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=\"generateUUID is failed\" />\n",\r
+        "comments": "",\r
+        "x": 804.1666412353516,\r
+        "y": 154.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b8f9dea4.7ec9d",\r
+        "type": "for",\r
+        "name": "for pnf-parameters-data.param[]",\r
+        "xml": "<for silentFailure='true' index='cnt' start='0' end='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1502.1666412353516,\r
+        "y": 1084.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "9d5dafdb.8e745"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f7dcae4c.80d6",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 808.1666412353516,\r
+        "y": 1084.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "4b875a14.db0584",\r
+                "a6645a90.aff8b8",\r
+                "ac27262.137afd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d7d846c4.3b1898",\r
+        "type": "switchNode",\r
+        "name": "switch pnf-parameters-data.param_length",\r
+        "xml": "<switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 531.1666412353516,\r
+        "y": 253.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "270f1448.0f808c",\r
+                "df2ab314.6f53a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "270f1448.0f808c",\r
+        "type": "outcome",\r
+        "name": "null",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 769.1666412353516,\r
+        "y": 221.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "bc1bcfe4.47473"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "df2ab314.6f53a",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 768.1666412353516,\r
+        "y": 285.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "6ae0c2e2.e112ec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc1bcfe4.47473",\r
+        "type": "set",\r
+        "name": "set pre service param len as 0",\r
+        "xml": "<set>\n   <parameter name='highnum' value='0' />\n   <parameter name='prehighnum' value='0'/>\n",\r
+        "comments": "",\r
+        "x": 982.1666412353516,\r
+        "y": 221.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6ae0c2e2.e112ec",\r
+        "type": "set",\r
+        "name": "set pre service param len",\r
+        "xml": "<set>\n   <parameter name='highnum' value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' />\n   <parameter name='prehighnum' value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' />",\r
+        "comments": "",\r
+        "x": 967.1666412353516,\r
+        "y": 285.0833339691162,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9d5dafdb.8e745",\r
+        "type": "switchNode",\r
+        "name": "switch param[].name - input vs. jsonContextPrefix",\r
+        "xml": "<switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$cnt].name == $jsonContextPrefix.resource-accumulator-resolved-data[$i].param-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1881.1666412353516,\r
+        "y": 1084.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "d54adb3d.c51348"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d54adb3d.c51348",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2165.1666412353516,\r
+        "y": 1084.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "bf4269c.812a398"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bf4269c.812a398",\r
+        "type": "set",\r
+        "name": "set for existing param name",\r
+        "xml": "<set>\n<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$cnt].value`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-value`'/>\n<parameter name='tmp.mso.param.found' value='true' />\n",\r
+        "comments": "",\r
+        "x": 2375.1666412353516,\r
+        "y": 1084.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ac27262.137afd8",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.mso.param.found",\r
+        "xml": "<switch test='`$tmp.mso.param.found`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1050.1666412353516,\r
+        "y": 1136.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "80869ef9.b42b6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "80869ef9.b42b6",\r
+        "type": "not-found",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1284.1666412353516,\r
+        "y": 1135.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "aa6d15b3.b54808"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4b875a14.db0584",\r
+        "type": "set",\r
+        "name": "set for existing param name",\r
+        "xml": "<set>\n<parameter name='tmp.mso.param.found' value='false' />\n",\r
+        "comments": "",\r
+        "x": 1031.6666412353516,\r
+        "y": 1022.5833282470703,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a6645a90.aff8b8",\r
+        "type": "switchNode",\r
+        "name": "switch check length > 0",\r
+        "xml": "<switch test='`$prehighnum &gt; 0`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1026.6666412353516,\r
+        "y": 1084.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "3e9847d7.a9a428"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3e9847d7.a9a428",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1273.6666412353516,\r
+        "y": 1084.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "b8f9dea4.7ec9d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b72432c2.1cb81",\r
+        "type": "for",\r
+        "name": "for payload",\r
+        "xml": "<for silentFailure='true' index='k' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1845.1666412353516,\r
+        "y": 1443.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "8a6d87a5.167378"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "993132bf.1fc03",\r
+        "type": "set",\r
+        "name": "set resource-key",\r
+        "xml": "<set>\n<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.resource-key[$num].name`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload[$k].param-name`'/>\n<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.resource-key[$num].value`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload[$k].param-value`'/>\n\n",\r
+        "comments": "",\r
+        "x": 2194.1666412353516,\r
+        "y": 1379.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "92dd255a.846018",\r
+        "type": "set",\r
+        "name": "set output-data ",\r
+        "xml": "<set>\n<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].name`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping[$l].resource-name`'/>\n<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].value`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping[$l].resource-value`'/>\n<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.capability-name`' value='`$jsonContextPrefix.capability-data[$i].capability-name`'/>\n<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.status`' value='PENDING'/>\n<parameter name='num' value='0' />",\r
+        "comments": "",\r
+        "x": 1418.1666412353516,\r
+        "y": 1323.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4bdfbe92.58a07",\r
+        "type": "for",\r
+        "name": "for output-key-mapping",\r
+        "xml": "<for silentFailure='true' index='l' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 886.1666412353516,\r
+        "y": 1425.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "c7cc9512.4faa18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c7cc9512.4faa18",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1137.1666412353516,\r
+        "y": 1425.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "92dd255a.846018",\r
+                "17ff9631.56b25a",\r
+                "72c5b1f7.aa391",\r
+                "69144068.7c5f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "17ff9631.56b25a",\r
+        "type": "set",\r
+        "name": "set length",\r
+        "xml": "<set>\n\t<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' value='`$highnum + 1`'/>\n",\r
+        "comments": "",\r
+        "x": 1406.1666412353516,\r
+        "y": 1461.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9906e0de.d8aa9",\r
+        "type": "failure",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 749.8333129882812,\r
+        "y": 901.75,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "f76d9cc.08daa6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "72c5b1f7.aa391",\r
+        "type": "switchNode",\r
+        "name": "switch payload_length",\r
+        "xml": "<switch test=\"`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload_length == ''`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1442.1666412353516,\r
+        "y": 1394.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "4ffaaf1f.506fd",\r
+                "797447ba.d290d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4ffaaf1f.506fd",\r
+        "type": "outcome",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1663.1666412353516,\r
+        "y": 1325.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "797447ba.d290d8",\r
+        "type": "other",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1670.1666412353516,\r
+        "y": 1443.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "b72432c2.1cb81"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c6434f37.1962d",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1213.4523658752441,\r
+        "y": 640.6546821594238,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "879b8f8b.c19ed"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "831efa97.1c0588",\r
+        "type": "set",\r
+        "name": "set length",\r
+        "xml": "<set>\n\t<parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.resource-key_length`' value='`$num + 1`'/>\n",\r
+        "comments": "",\r
+        "x": 2183.1666412353516,\r
+        "y": 1443.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "da21f5c1.b6dc88",\r
+        "type": "set",\r
+        "name": "increment length",\r
+        "xml": "<set>\n\t<parameter name='num' value='`$num + 1`' />\n",\r
+        "comments": "",\r
+        "x": 2201.1666412353516,\r
+        "y": 1517.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "69144068.7c5f8",\r
+        "type": "set",\r
+        "name": "increment length",\r
+        "xml": "<set>\n\t<parameter name='highnum' value='`$highnum + 1`' />\n\n",\r
+        "comments": "",\r
+        "x": 1427.1666412353516,\r
+        "y": 1528.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "aa6d15b3.b54808",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1461.1666412353516,\r
+        "y": 1134.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "a560f52e.73b478",\r
+                "2dccbddc.c39b12"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2dccbddc.c39b12",\r
+        "type": "set",\r
+        "name": "increment length",\r
+        "xml": "<set>\n\t<parameter name='highnum' value='`$highnum + 1`' />\n",\r
+        "comments": "",\r
+        "x": 1676.1666412353516,\r
+        "y": 1194.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8a6d87a5.167378",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2001.1666412353516,\r
+        "y": 1444.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            [\r
+                "993132bf.1fc03",\r
+                "831efa97.1c0588",\r
+                "da21f5c1.b6dc88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9eebb178.0f2de",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"BEFORE BlueprintProcessingClient\"/>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 427.4999809265137,\r
+        "y": 787.083324432373,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "507cc1d.a43bf4",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"AFTER BlueprintProcessingClient\"/>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 424.1666488647461,\r
+        "y": 942.0833320617676,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c7fb6ab.3a33598",\r
+        "type": "execute",\r
+        "name": "printContext",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='`$pathname`' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 432.50000762939453,\r
+        "y": 1746.2500267028809,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "22187a30.f13be6",\r
+        "type": "set",\r
+        "name": "set pathname",\r
+        "xml": "<set>\n<parameter name='pathname' \n\tvalue=\"`'/var/tmp/ss-pnf-ra-assignment-' + \n\t$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.pnf-id + '.log'`\" />\n",\r
+        "comments": "",\r
+        "x": 438.75000762939453,\r
+        "y": 1693.7500247955322,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7905fcc3.ff7874",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"DONE: pnf-ra-assignment\"/>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 416.25000381469727,\r
+        "y": 1647.5000247955322,\r
+        "z": "2b4129e2.7e3f56",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
index 7511ed2..3b3cbb2 100644 (file)
-[
-  {
-    "id": "6215fee5.bddad",
-    "type": "dgstart",
-    "name": "DGSTART",
-    "outputs": 1,
-    "x": 136.66665649414062,
-    "y": 49.999996185302734,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "e0abbbb4.1691a8"
-      ]
-    ]
-  },
-  {
-    "id": "c0b04192.50c06",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic='true'>",
-    "atomic": "true",
-    "comments": "",
-    "outputs": 1,
-    "x": 180.39286041259766,
-    "y": 162.7777862548828,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "c39465f2.9d0ab8",
-        "9ba3908c.b3993",
-        "9c2ed3b1.7a9c5",
-        "21cbbc15.66ca44",
-        "65e92b38.4daee4"
-      ]
-    ]
-  },
-  {
-    "id": "7d5065be.a2599c",
-    "type": "method",
-    "name": "method self-serve-vf-module-unassign",
-    "xml": "<method rpc='self-serve-vf-module-unassign' mode='sync'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 253.4285659790039,
-    "y": 104.7063512802124,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "c0b04192.50c06"
-      ]
-    ]
-  },
-  {
-    "id": "e0abbbb4.1691a8",
-    "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": 411.9048538208008,
-    "y": 50.19048881530762,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "7d5065be.a2599c"
-      ]
-    ]
-  },
-  {
-    "id": "8fa17821.c8c998",
-    "type": "switchNode",
-    "name": "switch resource-resolution-data.status",
-    "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 505.2027587890625,
-    "y": 762.6786947250366,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "5b5326aa.c9a828",
-        "6d9494a.3f2206c",
-        "862297c.bf59968"
-      ]
-    ]
-  },
-  {
-    "id": "5b5326aa.c9a828",
-    "type": "other",
-    "name": "SUCCESS",
-    "xml": "<outcome value='SUCCESS'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 782.9053001403809,
-    "y": 763.0476579666138,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "9fffaa92.3e94f8"
-      ]
-    ]
-  },
-  {
-    "id": "c39465f2.9d0ab8",
-    "type": "for",
-    "name": "foreach capability-order[]",
-    "xml": "<for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 430.8452911376953,
-    "y": 250.03567695617676,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "f837bbd3.874678",
-        "b931e6cb.da94c8",
-        "d21e6f1d.1016c",
-        "89534d93.1f285"
-      ]
-    ]
-  },
-  {
-    "id": "9fffaa92.3e94f8",
-    "type": "call",
-    "name": "call ss.capability-dg",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 988.0240325927734,
-    "y": 762.8095092773438,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "fc60047e.9fb338"
-      ]
-    ]
-  },
-  {
-    "id": "f837bbd3.874678",
-    "type": "set",
-    "name": "ss.capability-name",
-    "xml": "<set>\n<parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\n\n<!--\nss.capability.execution-order\n-->",
-    "comments": "",
-    "x": 699.2023468017578,
-    "y": 249.98812866210938,
-    "z": "6680f8ca.ebffb8",
-    "wires": []
-  },
-  {
-    "id": "b931e6cb.da94c8",
-    "type": "set",
-    "name": "set ss.capability.action = unassign",
-    "xml": "<set>\n<parameter name='ss.capability-action' value='unassign' />\n",
-    "comments": "",
-    "x": 747.9164886474609,
-    "y": 296.90471267700195,
-    "z": "6680f8ca.ebffb8",
-    "wires": []
-  },
-  {
-    "id": "fc60047e.9fb338",
-    "type": "failure",
-    "name": "failure",
-    "xml": "<outcome value='failure'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1172.9165420532227,
-    "y": 762.8095703125,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "a1d1bb97.069c18"
-      ]
-    ]
-  },
-  {
-    "id": "89534d93.1f285",
-    "type": "set",
-    "name": "set capability-dg",
-    "xml": "<set>\n<parameter name='ss.capability-dg' value=\"`'self-serve-' + $ss.capability.execution-order[$cidx]`\" />\n",
-    "comments": "",
-    "x": 696.678596496582,
-    "y": 344.13096809387207,
-    "z": "6680f8ca.ebffb8",
-    "wires": []
-  },
-  {
-    "id": "21cbbc15.66ca44",
-    "type": "execute",
-    "name": "printContext",
-    "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss-vf-unassign.log' />\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 378.7739944458008,
-    "y": 1376.5357284545898,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      []
-    ]
-  },
-  {
-    "id": "9ba3908c.b3993",
-    "type": "set",
-    "name": "set ss.capability.execution-order[]",
-    "xml": "<set>\n<parameter name='ss.capability.execution-order[0]' value='mac-address-assign' />\n<parameter name='ss.capability.execution-order[1]' value='mS-mac-address-assign' />\n<parameter name='ss.capability.execution-order[2]' value='eipam-ip-assign' />\n<parameter
-name='ss.capability.execution-order[3]' value='netbox-ip-assign' />\n<parameter name='ss.capability.execution-order[4]' value='vlan-tag-assign' />\n<parameter name='ss.capability.execution-order[5]' value='mS-vlan-tag-assign' />\n<parameter name='ss.capability.execution-order[6]' value='alts-license-assign' />\n<parameter name='ss.capability.execution-order[7]' value='alts-entitlement-assign' />\n<parameter name='ss.capability.execution-order[8]' value='generate-name' />\n<parameter name='ss.capability.execution-order_length' value='9' />",
-    "comments": "",
-    "x": 455.9166946411133,
-    "y": 163,
-    "z": "6680f8ca.ebffb8",
-    "wires": []
-  },
-  {
-    "id": "9e65963.9a3dd68",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Encountered error from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`\" />\n",
-    "comments": "",
-    "x": 1555.4166564941406,
-    "y": 1117.9999961853027,
-    "z": "6680f8ca.ebffb8",
-    "wires": []
-  },
-  {
-    "id": "a1d1bb97.069c18",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic='true'>",
-    "atomic": "true",
-    "comments": "",
-    "outputs": 1,
-    "x": 1337.035789489746,
-    "y": 763.3329639434814,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "9e65963.9a3dd68",
-        "4247535f.a8b05c",
-        "fbdfcf9e.431bd",
-        "28c4a99d.6f10c6",
-        "b86c7b66.596838",
-        "ac551aca.87f3c8"
-      ]
-    ]
-  },
-  {
-    "id": "4247535f.a8b05c",
-    "type": "execute",
-    "name": "execute RestApiCallNode - PUT vf-module",
-    "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vfmodule.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vfmodule-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ss-vfmodule\" />\n\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1652.5832290649414,
-    "y": 1019.7069234848022,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "fa9ef1c0.afa1e",
-        "45457ce5.ba3554"
-      ]
-    ]
-  },
-  {
-    "id": "fa9ef1c0.afa1e",
-    "type": "not-found",
-    "name": "not-found",
-    "xml": "<outcome value='not-found'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1927.1768951416016,
-    "y": 1073.7050771713257,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "56d2d025.0c556"
-      ]
-    ]
-  },
-  {
-    "id": "45457ce5.ba3554",
-    "type": "failure",
-    "name": "failure",
-    "xml": "<outcome value='failure'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1919.6055297851562,
-    "y": 1020.2050971984863,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "56d2d025.0c556"
-      ]
-    ]
-  },
-  {
-    "id": "56d2d025.0c556",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 2121.7378540039062,
-    "y": 1019.8493518829346,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "726d654.997219c"
-      ]
-    ]
-  },
-  {
-    "id": "726d654.997219c",
-    "type": "configure",
-    "name": "set error-message",
-    "xml": "<set>\n<parameter name=\"error-message\" value=\"Failed to persist self-serve vf-module assignments during unassign in MD-SAL\" />\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2340.0236206054688,
-    "y": 1019.9922151565552,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      []
-    ]
-  },
-  {
-    "id": "fbdfcf9e.431bd",
-    "type": "set",
-    "name": "set vf data for restapi-call-node",
-    "xml": "<set>\n<parameter name='vf.vf-module-id'\n    value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />\n<parameter name='vf.vf-module-data.sdnc-request-header.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.`' />\n<parameter name='vf.vf-module-data.request-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.`' />\n<parameter name='vf.vf-module-data.service-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.`' />\n<parameter name='vf.vf-module-data.vnf-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.`' />\n<parameter name='vf.vf-module-data.vf-module-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.`' />\n<parameter name='vf.vf-module-data.vf-module-topology.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.`' />\n<parameter name='vf.vf-module-data.vf-module-level-oper-status.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.vf-module-input-parameters.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.vf-module-input-parameters.`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.request-version'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.request-version`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.vf-module-name'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.vf-module-name`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.tenant'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.tenant`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.aic-cloud-region'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-cloud-region`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.aic-clli'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-clli`' />",
-    "comments": "",
-    "x": 1614.0952529907227,
-    "y": 763.8249406814575,
-    "z": "6680f8ca.ebffb8",
-    "wires": []
-  },
-  {
-    "id": "28c4a99d.6f10c6",
-    "type": "execute",
-    "name": "generate ss-vfmodule url replace service-instance-id",
-    "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.ss-vfmodule-assignments`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vfmodule-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.service-instance-id`\"/>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1680.345199584961,
-    "y": 811.8249855041504,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      []
-    ]
-  },
-  {
-    "id": "b86c7b66.596838",
-    "type": "execute",
-    "name": "generate ss-vfmodule url - replace vnf-id",
-    "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss-vfmodule-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vfmodule-url\"/>\n    <parameter name=\"target\" value=\"{vnf-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.vnf-id`\"/>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1644.6308975219727,
-    "y": 859.8839025497437,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      []
-    ]
-  },
-  {
-    "id": "ac551aca.87f3c8",
-    "type": "execute",
-    "name": "generate ss-vfmodule url - replace vf-module-id",
-    "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss-vfmodule-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vfmodule-url\"/>\n    <parameter name=\"target\" value=\"{vf-module-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`\"/>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1666.5715713500977,
-    "y": 909.8004026412964,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      []
-    ]
-  },
-  {
-    "id": "9c2ed3b1.7a9c5",
-    "type": "set",
-    "name": "set ss.capability-type = vf-module",
-    "xml": "<set>\n<parameter name='ss.capability-type' value='vf-module' />\n",
-    "comments": "",
-    "x": 456.52378845214844,
-    "y": 206.00000667572021,
-    "z": "6680f8ca.ebffb8",
-    "wires": []
-  },
-  {
-    "id": "6d9494a.3f2206c",
-    "type": "other",
-    "name": "DELETED",
-    "xml": "<outcome value='DELETED'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 781.6666564941406,
-    "y": 859.642879486084,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "d7a7bd94.ef4ff"
-      ]
-    ]
-  },
-  {
-    "id": "c4930fe.fd50af",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to unassign self-serve vf-module assignments because the status for ' + $ss.capability-name + ' is '  + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`\"/>",
-    "comments": "",
-    "x": 1132.4047012329102,
-    "y": 1027.1905879974365,
-    "z": "6680f8ca.ebffb8",
-    "wires": []
-  },
-  {
-    "id": "d7a7bd94.ef4ff",
-    "type": "block",
-    "name": "block",
-    "xml": "<block>\n",
-    "atomic": "false",
-    "comments": "",
-    "outputs": 1,
-    "x": 938.1666488647461,
-    "y": 859.6428680419922,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      []
-    ]
-  },
-  {
-    "id": "862297c.bf59968",
-    "type": "other",
-    "name": "other",
-    "xml": "<outcome value='Other'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 771.7380523681641,
-    "y": 991.8571815490723,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "4834af54.75b2c"
-      ]
-    ]
-  },
-  {
-    "id": "ffba3e5c.b7c54",
-    "type": "record",
-    "name": "record",
-    "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: resource-resolution-data.status: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`\"/>\n<parameter name=\"field2\" value=\"`'SS: ss.capability-name: ' + $ss.capability-name`\"/>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1112.0239181518555,
-    "y": 951.1905632019043,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      []
-    ]
-  },
-  {
-    "id": "4834af54.75b2c",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic='true'>",
-    "atomic": "true",
-    "comments": "",
-    "outputs": 1,
-    "x": 939.4523468017578,
-    "y": 991.8572330474854,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "ffba3e5c.b7c54",
-        "c4930fe.fd50af"
-      ]
-    ]
-  },
-  {
-    "id": "d21e6f1d.1016c",
-    "type": "for",
-    "name": "foreach vf-module-parameters.param[]",
-    "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 765.6665954589844,
-    "y": 395.5952453613281,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "36153975.73d276",
-        "2926b6d0.39b40a"
-      ]
-    ]
-  },
-  {
-    "id": "36153975.73d276",
-    "type": "switchNode",
-    "name": "switch capability-name param vs. execution",
-    "xml": "<switch test='`$ss.capability-name == $tmp.param.capability-name`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1138.0594177246094,
-    "y": 441.2380380630493,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "b81d1a56.666918"
-      ]
-    ]
-  },
-  {
-    "id": "b81d1a56.666918",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1401.5594177246094,
-    "y": 441.4880380630493,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "8fa17821.c8c998"
-      ]
-    ]
-  },
-  {
-    "id": "2926b6d0.39b40a",
-    "type": "set",
-    "name": "tmp.param.capability-name",
-    "xml": "<set>\n<parameter name='tmp.param.capability-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\n",
-    "comments": "",
-    "x": 1087.4164428710938,
-    "y": 395.8452482223511,
-    "z": "6680f8ca.ebffb8",
-    "wires": []
-  },
-  {
-    "id": "4adf8877.8b7b48",
-    "type": "for",
-    "name": "for each vf module",
-    "xml": "<for index='idx' start='`$vf-module-index + 1`' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1000.8887634277344,
-    "y": 1207.142822265625,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "794c2919.51d0e8"
-      ]
-    ]
-  },
-  {
-    "id": "70cab900.ea1ee8",
-    "type": "comment",
-    "name": "Remove VF Module from service data",
-    "info": "",
-    "comments": "",
-    "x": 350.7142639160156,
-    "y": 1162.3812627792358,
-    "z": "6680f8ca.ebffb8",
-    "wires": []
-  },
-  {
-    "id": "794c2919.51d0e8",
-    "type": "set",
-    "name": "move vf module to remove one",
-    "xml": "<set>\n\t<parameter name=\"tmpidx\" value=\"`$idx - 1`\"/>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmpidx].\" value=\"$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].\" />\n\t\n",
-    "comments": "",
-    "x": 1244.4798965454102,
-    "y": 1207.1667881011963,
-    "z": "6680f8ca.ebffb8",
-    "wires": []
-  },
-  {
-    "id": "65e92b38.4daee4",
-    "type": "switchNode",
-    "name": "switch vf-module_length",
-    "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 418.1466827392578,
-    "y": 1218.4844932556152,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "586a0bd3.b18144",
-        "bc68084b.283918"
-      ]
-    ]
-  },
-  {
-    "id": "586a0bd3.b18144",
-    "type": "outcome",
-    "name": "1",
-    "xml": "<outcome value='1'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 613.4800491333008,
-    "y": 1169.389100074768,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "ed8959f0.36d8a8"
-      ]
-    ]
-  },
-  {
-    "id": "ed8959f0.36d8a8",
-    "type": "set",
-    "name": "Remove vf modules",
-    "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.\" value=\"\"/>\n\n",
-    "comments": "",
-    "x": 785.4798202514648,
-    "y": 1169.3892192840576,
-    "z": "6680f8ca.ebffb8",
-    "wires": []
-  },
-  {
-    "id": "bc68084b.283918",
-    "type": "other",
-    "name": "other",
-    "xml": "<outcome value='Other'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 612.1468048095703,
-    "y": 1263.1509094238281,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "caf3c8d0.bea748"
-      ]
-    ]
-  },
-  {
-    "id": "7578e2bc.143aac",
-    "type": "set",
-    "name": "set new vf module length",
-    "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length\" value=\"`$lastidx`\"/>\n\n\t\n",
-    "comments": "",
-    "x": 1019.7762985229492,
-    "y": 1334.8652992248535,
-    "z": "6680f8ca.ebffb8",
-    "wires": []
-  },
-  {
-    "id": "d8df61bf.20743",
-    "type": "set",
-    "name": "Remove the last vf module in the list",
-    "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lastidx].\" value=\"\"/>\n",
-    "comments": "",
-    "x": 1055.4799118041992,
-    "y": 1290.9764366149902,
-    "z": "6680f8ca.ebffb8",
-    "wires": []
-  },
-  {
-    "id": "caf3c8d0.bea748",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 769.3847351074219,
-    "y": 1263.3889112472534,
-    "z": "6680f8ca.ebffb8",
-    "wires": [
-      [
-        "4adf8877.8b7b48",
-        "d8df61bf.20743",
-        "7578e2bc.143aac",
-        "c6fed918.aacf78"
-      ]
-    ]
-  },
-  {
-    "id": "c6fed918.aacf78",
-    "type": "set",
-    "name": "set lastidx",
-    "xml": "<set>\n<parameter name='lastidx' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length - 1`' />\n",
-    "comments": "EIPAM plug-in needs this attribute set with this name",
-    "x": 973.6190795898438,
-    "y": 1247.3811359405518,
-    "z": "6680f8ca.ebffb8",
-    "wires": []
-  }
-]
+[\r
+    {\r
+        "id": "f4eaa017.b9ee4",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 178.57142639160156,\r
+        "y": 112.85714721679688,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "2d27338b.de495c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "afdc6297.d95d7",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 222.2976303100586,\r
+        "y": 225.63493728637695,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "63928540.2e035c",\r
+                "152fb44f.398a1c",\r
+                "7e8b2d63.3d0eb4",\r
+                "66438caf.b1a744",\r
+                "a9448525.0bfff8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9785e3bb.501df",\r
+        "type": "method",\r
+        "name": "method self-serve-vf-module-unassign",\r
+        "xml": "<method rpc='self-serve-vf-module-unassign' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 295.33333587646484,\r
+        "y": 167.56350231170654,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "afdc6297.d95d7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2d27338b.de495c",\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": 453.8096237182617,\r
+        "y": 113.04763984680176,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "9785e3bb.501df"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "63bc9da4.98ff04",\r
+        "type": "switchNode",\r
+        "name": "switch resource-resolution-data.status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1050.4407969883505,\r
+        "y": 728.8692181450979,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "28267bea.6aece4",\r
+                "9ea4d273.b523b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "28267bea.6aece4",\r
+        "type": "other",\r
+        "name": "SUCCESS",\r
+        "xml": "<outcome value='SUCCESS'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1328.1433383396688,\r
+        "y": 729.238181386675,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "403ed1e6.64a47"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "63928540.2e035c",\r
+        "type": "for",\r
+        "name": "foreach capability-order[]",\r
+        "xml": "<for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 472.32149505615234,\r
+        "y": 352.892822265625,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "9a52858d.de8a98",\r
+                "5dd7ca05.5c7154",\r
+                "49b42a30.241904",\r
+                "389a0c55.fb0c94"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "403ed1e6.64a47",\r
+        "type": "call",\r
+        "name": "call ss.capability-dg",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1533.2620707920614,\r
+        "y": 729.000032697405,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "6c757b17.2c3204",\r
+                "c9a54438.9d50a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9a52858d.de8a98",\r
+        "type": "set",\r
+        "name": "ss.capability-name",\r
+        "xml": "<set>\n<parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\n\n<!--\nss.capability.execution-order\n-->",\r
+        "comments": "",\r
+        "x": 740.6785507202148,\r
+        "y": 352.8452739715576,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5dd7ca05.5c7154",\r
+        "type": "set",\r
+        "name": "set ss.capability.action = unassign",\r
+        "xml": "<set>\n<parameter name='ss.capability-action' value='unassign' />\n",\r
+        "comments": "",\r
+        "x": 789.392692565918,\r
+        "y": 399.7618579864502,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6c757b17.2c3204",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1718.1545802525106,\r
+        "y": 729.0000937325613,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "1e50a1c0.ca957e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "389a0c55.fb0c94",\r
+        "type": "set",\r
+        "name": "set capability-dg",\r
+        "xml": "<set>\n<parameter name='ss.capability-dg' value=\"`'self-serve-' + $ss.capability.execution-order[$cidx]`\" />\n",\r
+        "comments": "",\r
+        "x": 738.1548004150391,\r
+        "y": 446.9881134033203,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "66438caf.b1a744",\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-vf-unassign.log' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 459.25020599365234,\r
+        "y": 1311.773832321167,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "152fb44f.398a1c",\r
+        "type": "set",\r
+        "name": "set ss.capability.execution-order[]",\r
+        "xml": "<set>\n<parameter name='ss.capability.execution-order[0]' value='mS-mac-address-assign' />\n<parameter name='ss.capability.execution-order[1]' value='mac-address-assign' />\n<parameter name='ss.capability.execution-order[2]' value='netbox-ip-assign' />\n<parameter name='ss.capability.execution-order[3]' value='eipam-ip-assignment' />\n<parameter name='ss.capability.execution-order[4]' value='mS-vlan-tag-assign' />\n<parameter name='ss.capability.execution-order[5]' value='vlan-tag-assign' />\n<parameter name='ss.capability.execution-order[6]' value='alts-license-assign' />\n<parameter name='ss.capability.execution-order[7]' value='alts-entitlement-assign' />\n<parameter name='ss.capability.execution-order[8]' value='generate-name' />\n<parameter name='ss.capability.execution-order_length' value='9' />",\r
+        "comments": "",\r
+        "x": 497.8214645385742,\r
+        "y": 225.85715103149414,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "57b30e91.cce25",\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 from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 2100.6546946934286,\r
+        "y": 1084.190519605364,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1e50a1c0.ca957e",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1882.273827689034,\r
+        "y": 729.5234873635427,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "57b30e91.cce25",\r
+                "42fe0aff.60ba94",\r
+                "17081e14.468d22",\r
+                "8dd9156e.18bf28",\r
+                "e4eb9ed4.4d1cf",\r
+                "9aa77744.b645d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "42fe0aff.60ba94",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode - PUT vf-module",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vfmodule.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vfmodule-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ss-vfmodule\" />\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2197.8212672642294,\r
+        "y": 985.8974469048635,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "3f7bc9ac.1f6ae6",\r
+                "b9b97982.05b048"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f7bc9ac.1f6ae6",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2472.4149333408895,\r
+        "y": 1039.895600591387,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "c10fe69a.3e62c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b9b97982.05b048",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2464.8435679844442,\r
+        "y": 986.3956206185476,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "c10fe69a.3e62c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c10fe69a.3e62c8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2666.9758922031942,\r
+        "y": 986.0398753029958,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "e1be1552.1aebd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e1be1552.1aebd8",\r
+        "type": "configure",\r
+        "name": "set error-message",\r
+        "xml": "<set>\n<parameter name=\"error-message\" value=\"Failed to persist self-serve vf-module assignments during unassign in MD-SAL\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2885.2616588047567,\r
+        "y": 986.1827385766164,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "17081e14.468d22",\r
+        "type": "set",\r
+        "name": "set vf data for restapi-call-node",\r
+        "xml": "<set>\n<parameter name='vf.vf-module-id'\n    value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />\n<parameter name='vf.vf-module-data.sdnc-request-header.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.`' />\n<parameter name='vf.vf-module-data.request-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.`' />\n<parameter name='vf.vf-module-data.service-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.`' />\n<parameter name='vf.vf-module-data.vnf-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.`' />\n<parameter name='vf.vf-module-data.vf-module-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.`' />\n<parameter name='vf.vf-module-data.vf-module-topology.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.`' />\n<parameter name='vf.vf-module-data.vf-module-level-oper-status.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.vf-module-input-parameters.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.vf-module-input-parameters.`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.request-version'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.request-version`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.vf-module-name'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.vf-module-name`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.tenant'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.tenant`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.aic-cloud-region'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-cloud-region`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.aic-clli'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-clli`' />",\r
+        "comments": "",\r
+        "x": 2159.3332911900106,\r
+        "y": 730.0154641015188,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8dd9156e.18bf28",\r
+        "type": "execute",\r
+        "name": "generate ss-vfmodule url replace service-instance-id",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.ss-vfmodule-assignments`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vfmodule-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.service-instance-id`\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2225.583237784249,\r
+        "y": 778.0155089242116,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e4eb9ed4.4d1cf",\r
+        "type": "execute",\r
+        "name": "generate ss-vfmodule url - replace vnf-id",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss-vfmodule-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vfmodule-url\"/>\n    <parameter name=\"target\" value=\"{vnf-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.vnf-id`\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2189.8689357212606,\r
+        "y": 826.0744259698049,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9aa77744.b645d8",\r
+        "type": "execute",\r
+        "name": "generate ss-vfmodule url - replace vf-module-id",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss-vfmodule-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vfmodule-url\"/>\n    <parameter name=\"target\" value=\"{vf-module-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2211.8096095493856,\r
+        "y": 875.9909260613576,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7e8b2d63.3d0eb4",\r
+        "type": "set",\r
+        "name": "set ss.capability-type = vf-module",\r
+        "xml": "<set>\n<parameter name='ss.capability-type' value='vf-module' />\n",\r
+        "comments": "",\r
+        "x": 498.4285583496094,\r
+        "y": 268.85715770721436,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9ea4d273.b523b",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1315.7261159739319,\r
+        "y": 781.7977116448537,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "fd5a91b8.f7a29"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fd5a91b8.f7a29",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: resource-resolution-data.status: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`\"/>\n<parameter name=\"field2\" value=\"`'SS: ss.capability-name: ' + $ss.capability-name`\"/>\n<parameter name=\"field3\" value=\"`'SS: tmp.param.capability-name: ' + $tmp.param.capability-name`\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1464.7619741282288,\r
+        "y": 782.1310923440114,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "49b42a30.241904",\r
+        "type": "for",\r
+        "name": "foreach vf-module-parameters.param[]",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 807.1427993774414,\r
+        "y": 498.45239067077637,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "ff16d805.d2f948",\r
+                "d94d2835.4b35b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ff16d805.d2f948",\r
+        "type": "switchNode",\r
+        "name": "switch capability-name param vs. execution",\r
+        "xml": "<switch test='`$ss.capability-name == $tmp.param.capability-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1179.5356216430664,\r
+        "y": 544.0951833724976,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "f1afd266.1d837"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f1afd266.1d837",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1443.0356216430664,\r
+        "y": 544.3451833724976,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "14a0144f.03fb3c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d94d2835.4b35b8",\r
+        "type": "set",\r
+        "name": "tmp.param.capability-name",\r
+        "xml": "<set>\n<parameter name='tmp.param.capability-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\n",\r
+        "comments": "",\r
+        "x": 1128.8926467895508,\r
+        "y": 498.7023935317993,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "14a0144f.03fb3c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 748.0951625279017,\r
+        "y": 728.0952647072927,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "f49db851.8e73b8",\r
+                "63bc9da4.98ff04"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f49db851.8e73b8",\r
+        "type": "break",\r
+        "name": "break",\r
+        "xml": "<break>\n",\r
+        "comments": "",\r
+        "x": 943.428539276123,\r
+        "y": 1162.047595024109,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c9a54438.9d50a8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1738.5714530944824,\r
+        "y": 934.1071586608887,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "ec71a1e5.73bd2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ec71a1e5.73bd2",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'DONE: ' + $ss.capability-dg`\"/>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1882.3214530944824,\r
+        "y": 932.8571586608887,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "fd2f49e7.d02308",\r
+        "type": "execute",\r
+        "name": "execute PropertiesNode",\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": 887.7143456595286,\r
+        "y": 309.99998337881925,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a9448525.0bfff8",\r
+        "type": "switchNode",\r
+        "name": "switch prop.controller.user",\r
+        "xml": "<switch test='`$prop.controller.user`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 476.42858123779297,\r
+        "y": 310.42860412597656,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "b256cdf4.5509e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b256cdf4.5509e",\r
+        "type": "failure",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 676.2856766836985,\r
+        "y": 310.00001866476896,\r
+        "z": "f6d2fe28.17718",\r
+        "wires": [\r
+            [\r
+                "fd2f49e7.d02308"\r
+            ]\r
+        ]\r
+    }\r
+]
\ No newline at end of file
index 68b6350..a5fe752 100644 (file)
-[
-  {
-    "id": "a6385a9d.53bbd8",
-    "type": "dgstart",
-    "name": "DGSTART",
-    "outputs": 1,
-    "x": 210,
-    "y": 41.42857360839844,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "68771f71.1c988"
-      ]
-    ]
-  },
-  {
-    "id": "c2830c02.352ca",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic='true'>",
-    "atomic": "true",
-    "comments": "",
-    "outputs": 1,
-    "x": 253.72620391845703,
-    "y": 160.20636367797852,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "7a7eb5ea.d9c27c",
-        "cadde72f.768658",
-        "61da759.184e28c",
-        "8603e753.202d08",
-        "ee44abff.0a52c8"
-      ]
-    ]
-  },
-  {
-    "id": "df83a576.0a03c8",
-    "type": "method",
-    "name": "method self-serve-vnf-unassign",
-    "xml": "<method rpc='self-serve-vnf-unassign' mode='sync'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 326.7619094848633,
-    "y": 96.1349287033081,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "c2830c02.352ca"
-      ]
-    ]
-  },
-  {
-    "id": "68771f71.1c988",
-    "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": 485.23819732666016,
-    "y": 41.61906623840332,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "df83a576.0a03c8"
-      ]
-    ]
-  },
-  {
-    "id": "d04042ce.4a948",
-    "type": "for",
-    "name": "foreach vnf-parameters-data.param[]",
-    "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 842.4645538330078,
-    "y": 386.1309928894043,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "bcabf14.e18d21",
-        "5506226b.04018c"
-      ]
-    ]
-  },
-  {
-    "id": "20db9a83.47e506",
-    "type": "switchNode",
-    "name": "switch resource-resolution-data.status",
-    "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 579.1789703369141,
-    "y": 782.9287061691284,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "af96cd32.20d99",
-        "8025d892.0ac388",
-        "acbf2cb7.1041"
-      ]
-    ]
-  },
-  {
-    "id": "af96cd32.20d99",
-    "type": "other",
-    "name": "SUCCESS",
-    "xml": "<outcome value='SUCCESS'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 854.5719718933105,
-    "y": 783.6429615020752,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "cd65f121.8b137"
-      ]
-    ]
-  },
-  {
-    "id": "7a7eb5ea.d9c27c",
-    "type": "for",
-    "name": "foreach capability-order[]",
-    "xml": "<for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 508.0357894897461,
-    "y": 241.32139778137207,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "697d23ef.8a2fbc",
-        "5b9beee2.2b424",
-        "d04042ce.4a948",
-        "9b2708ec.431508"
-      ]
-    ]
-  },
-  {
-    "id": "bcabf14.e18d21",
-    "type": "switchNode",
-    "name": "switch param capability-name == execution",
-    "xml": "<switch test='`$ss.capability-name == $tmp.param.capability-name`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1198.3574676513672,
-    "y": 429.85712242126465,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "4c332048.14e83"
-      ]
-    ]
-  },
-  {
-    "id": "4c332048.14e83",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1461.8574676513672,
-    "y": 430.10712242126465,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "20db9a83.47e506"
-      ]
-    ]
-  },
-  {
-    "id": "cd65f121.8b137",
-    "type": "call",
-    "name": "call ss.capability-dg",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1059.6907043457031,
-    "y": 783.4048128128052,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "7c9a62de.b663cc"
-      ]
-    ]
-  },
-  {
-    "id": "697d23ef.8a2fbc",
-    "type": "set",
-    "name": "ss.capability-name",
-    "xml": "<set>\n<parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\n\n<!--\nss.capability.execution-order[]\n-->\n",
-    "comments": "",
-    "x": 788.3928451538086,
-    "y": 241.2738494873047,
-    "z": "50509cff.314024",
-    "wires": []
-  },
-  {
-    "id": "5506226b.04018c",
-    "type": "set",
-    "name": "tmp.param.capability-name",
-    "xml": "<set>\n<parameter name='tmp.param.capability-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.capability-name`' />\n",
-    "comments": "",
-    "x": 1147.7144927978516,
-    "y": 384.4643325805664,
-    "z": "50509cff.314024",
-    "wires": []
-  },
-  {
-    "id": "5b9beee2.2b424",
-    "type": "set",
-    "name": "set ss.capability.action = unassign",
-    "xml": "<set>\n<parameter name='ss.capability-action' value='unassign' />\n",
-    "comments": "",
-    "x": 835.1069869995117,
-    "y": 288.19043350219727,
-    "z": "50509cff.314024",
-    "wires": []
-  },
-  {
-    "id": "7c9a62de.b663cc",
-    "type": "failure",
-    "name": "failure",
-    "xml": "<outcome value='failure'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1244.5832138061523,
-    "y": 783.4048738479614,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "5ae85112.18d99"
-      ]
-    ]
-  },
-  {
-    "id": "9b2708ec.431508",
-    "type": "set",
-    "name": "set capability-dg",
-    "xml": "<set>\n<parameter name='ss.capability-dg' value=\"`'self-serve-' + $ss.capability.execution-order[$cidx]`\" />\n",
-    "comments": "",
-    "x": 779.5356750488281,
-    "y": 337.08334732055664,
-    "z": "50509cff.314024",
-    "wires": []
-  },
-  {
-    "id": "bad23ec5.376d3",
-    "type": "execute",
-    "name": "generate ss-vnf url replace service-instance-id",
-    "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.ss-vnf-assignments`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vnf-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.service-instance-id`\"/>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1727.4405975341797,
-    "y": 837.2865991592407,
-    "z": "50509cff.314024",
-    "wires": [
-      []
-    ]
-  },
-  {
-    "id": "fbec284e.585d38",
-    "type": "execute",
-    "name": "execute RestApiCallNode - PUT vnf",
-    "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vnf.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vnf-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ss-vnf\" />\n\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1696.9048919677734,
-    "y": 940.1438207626343,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "c47e36eb.d05728",
-        "b96d7225.bf08f"
-      ]
-    ]
-  },
-  {
-    "id": "c47e36eb.d05728",
-    "type": "not-found",
-    "name": "not-found",
-    "xml": "<outcome value='not-found'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1971.4985580444336,
-    "y": 994.1419744491577,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "e88954ca.906d58"
-      ]
-    ]
-  },
-  {
-    "id": "b96d7225.bf08f",
-    "type": "failure",
-    "name": "failure",
-    "xml": "<outcome value='failure'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1963.9271926879883,
-    "y": 940.6419944763184,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "e88954ca.906d58"
-      ]
-    ]
-  },
-  {
-    "id": "e88954ca.906d58",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 2166.0595169067383,
-    "y": 940.2862491607666,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "80bd3596.06daa8"
-      ]
-    ]
-  },
-  {
-    "id": "80bd3596.06daa8",
-    "type": "configure",
-    "name": "set error-message",
-    "xml": "<set>\n<parameter name=\"error-message\" value=\"Error persisting self-serve vnf assignments in MD-SAL during unassign\" />\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2384.345283508301,
-    "y": 940.4291124343872,
-    "z": "50509cff.314024",
-    "wires": [
-      []
-    ]
-  },
-  {
-    "id": "5acff27f.210b1c",
-    "type": "set",
-    "name": "set vf data for restapi-call-node",
-    "xml": "<set>\n<parameter name='vf.vnf-id'\n    value='`$service-data.vnfs.vnf[$vnf-index].vnf-id`' />\n<parameter name='vf.vnf-data.sdnc-request-header.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.`' />\n<parameter name='vf.vnf-data.request-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.`' />\n<parameter name='vf.vnf-data.service-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.`' />\n<parameter name='vf.vnf-data.vnf-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.`' />\n<parameter name='vf.vnf-data.vnf-request-input.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.`' />\n<parameter name='vf.vnf-data.vnf-request-input.vnf-input-parameters.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.vnf-input-parameters.`' />\n<parameter name='vf.vnf-data.vnf-topology.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.`' />\n<parameter name='vf.vnf-data.vnf-level-oper-status.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.`' />",
-    "comments": "",
-    "x": 1679.8928985595703,
-    "y": 783.3811111450195,
-    "z": "50509cff.314024",
-    "wires": []
-  },
-  {
-    "id": "3ed081d1.8cc08e",
-    "type": "execute",
-    "name": "generate ss-vnf url - replace vnf-id",
-    "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss-vnf-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vnf-url\"/>\n    <parameter name=\"target\" value=\"{vnf-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-id`\"/>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1691.726303100586,
-    "y": 888.0953674316406,
-    "z": "50509cff.314024",
-    "wires": [
-      []
-    ]
-  },
-  {
-    "id": "5ae85112.18d99",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic='true'>",
-    "atomic": "true",
-    "comments": "",
-    "outputs": 1,
-    "x": 1405.535888671875,
-    "y": 783.1429853439331,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "bad23ec5.376d3",
-        "fbec284e.585d38",
-        "5acff27f.210b1c",
-        "3ed081d1.8cc08e",
-        "4e5f969d.6392c8"
-      ]
-    ]
-  },
-  {
-    "id": "4e5f969d.6392c8",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to unassign self-serve vnf assignments for ' + $ss.capability-dg + ' with error: ' + $error-message`\" />\n",
-    "comments": "",
-    "x": 1626.4408569335938,
-    "y": 1067.9167687892914,
-    "z": "50509cff.314024",
-    "wires": []
-  },
-  {
-    "id": "8603e753.202d08",
-    "type": "execute",
-    "name": "printContext",
-    "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss-vnf-assign.log' />\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 469.1193313598633,
-    "y": 1437.488163948059,
-    "z": "50509cff.314024",
-    "wires": [
-      []
-    ]
-  },
-  {
-    "id": "cadde72f.768658",
-    "type": "set",
-    "name": "set ss.capability.execution-order[]",
-    "xml": "<set>\n<parameter name='ss.capability.execution-order[0]' value='mac-address-assign' />\n<parameter name='ss.capability.execution-order[1]' value='mS-mac-address-assign' />\n<parameter name='ss.capability.execution-order[2]' value='eipam-ip-assign' />\n<parameter
-name='ss.capability.execution-order[3]' value='netbox-ip-assign' />\n<parameter name='ss.capability.execution-order[4]' value='vlan-tag-assign' />\n<parameter name='ss.capability.execution-order[5]' value='mS-vlan-tag-assign' />\n<parameter name='ss.capability.execution-order[6]' value='alts-license-assign' />\n<parameter name='ss.capability.execution-order[7]' value='alts-entitlement-assign' />\n<parameter name='ss.capability.execution-order[8]' value='generate-name' />\n<parameter name='ss.capability.execution-order_length' value='9' />",
-    "comments": "",
-    "x": 533.2500381469727,
-    "y": 160.4285774230957,
-    "z": "50509cff.314024",
-    "wires": []
-  },
-  {
-    "id": "8025d892.0ac388",
-    "type": "other",
-    "name": "DELETED",
-    "xml": "<outcome value='DELETED'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 855.0714416503906,
-    "y": 850.1785583496094,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "3057289e.008328"
-      ]
-    ]
-  },
-  {
-    "id": "61da759.184e28c",
-    "type": "set",
-    "name": "set ss.capability-type = vnf",
-    "xml": "<set>\n<parameter name='ss.capability-type' value='vnf' />\n",
-    "comments": "",
-    "x": 512.8571395874023,
-    "y": 200.00000762939453,
-    "z": "50509cff.314024",
-    "wires": []
-  },
-  {
-    "id": "6b6d2942.d47c48",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to unassign self-serve vnf assignments because the status for ' + $ss.capability-name + ' is '  + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`\"/>",
-    "comments": "",
-    "x": 1237.1428833007812,
-    "y": 960.3929593222483,
-    "z": "50509cff.314024",
-    "wires": []
-  },
-  {
-    "id": "3057289e.008328",
-    "type": "block",
-    "name": "block",
-    "xml": "<block>\n",
-    "atomic": "false",
-    "comments": "",
-    "outputs": 1,
-    "x": 1011.5714340209961,
-    "y": 850.1785469055176,
-    "z": "50509cff.314024",
-    "wires": [
-      []
-    ]
-  },
-  {
-    "id": "acbf2cb7.1041",
-    "type": "other",
-    "name": "other",
-    "xml": "<outcome value='Other'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 846.1428375244141,
-    "y": 908.3928604125977,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "c1c0b7f6.69a4e8"
-      ]
-    ]
-  },
-  {
-    "id": "70287cdc.85b194",
-    "type": "record",
-    "name": "record",
-    "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: resource-resolution-data.status: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`\"/>\n<parameter name=\"field2\" value=\"`'SS: ss.capability-name: ' + $ss.capability-name`\"/>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1216.4285888671875,
-    "y": 908.3929659979685,
-    "z": "50509cff.314024",
-    "wires": [
-      []
-    ]
-  },
-  {
-    "id": "c1c0b7f6.69a4e8",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic='true'>",
-    "atomic": "true",
-    "comments": "",
-    "outputs": 1,
-    "x": 1032.8571319580078,
-    "y": 908.3929119110107,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "70287cdc.85b194",
-        "6b6d2942.d47c48"
-      ]
-    ]
-  },
-  {
-    "id": "1c8c4c56.6f0bc4",
-    "type": "for",
-    "name": "for each vnf",
-    "xml": "<for index='idx' start='`$vnf-index + 1`' end='`$service-data.vnfs.vnf_length`' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1036.6666145324707,
-    "y": 1267.381091117859,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "39ffbb9b.5384c4"
-      ]
-    ]
-  },
-  {
-    "id": "48bdb965.fbf268",
-    "type": "comment",
-    "name": "Remove VNF from service data",
-    "info": "",
-    "comments": "",
-    "x": 448.825382232666,
-    "y": 1225.9527435302734,
-    "z": "50509cff.314024",
-    "wires": []
-  },
-  {
-    "id": "39ffbb9b.5384c4",
-    "type": "set",
-    "name": "move vnf to remove one",
-    "xml": "<set>\n\t<parameter name=\"$tmpidx\" value=\"`$idx - 1`\"/>\n\t<parameter name=\"service-data.vnfs.vnf[$tmpidx].\" value=\"$service-data.vnfs.vnf[$idx].\" />\n\t\n",
-    "comments": "",
-    "x": 1270.2577476501465,
-    "y": 1266.4050426483154,
-    "z": "50509cff.314024",
-    "wires": []
-  },
-  {
-    "id": "ee44abff.0a52c8",
-    "type": "switchNode",
-    "name": "switch vnf_length",
-    "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 492.92447662353516,
-    "y": 1268.9607200622559,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "3c166715.7796b8",
-        "62f98baa.f6f574"
-      ]
-    ]
-  },
-  {
-    "id": "3c166715.7796b8",
-    "type": "outcome",
-    "name": "1",
-    "xml": "<outcome value='1'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 669.9245185852051,
-    "y": 1229.6273069381714,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "8af99073.0156"
-      ]
-    ]
-  },
-  {
-    "id": "8af99073.0156",
-    "type": "set",
-    "name": "Remove vnfs",
-    "xml": "<set>\n\t<parameter name=\"service-data.vnfs.\" value=\"\"/>\n\n",
-    "comments": "",
-    "x": 833.5910148620605,
-    "y": 1229.6274061203003,
-    "z": "50509cff.314024",
-    "wires": []
-  },
-  {
-    "id": "62f98baa.f6f574",
-    "type": "other",
-    "name": "other",
-    "xml": "<outcome value='Other'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 671.4484100341797,
-    "y": 1313.103446006775,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "b4f726ae.38e868"
-      ]
-    ]
-  },
-  {
-    "id": "c1ef091a.99d9e8",
-    "type": "set",
-    "name": "set new vnf length",
-    "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf_length\" value=\"`$service-data.vnfs.vnf_length - 1`\"/>\n\n\t\n",
-    "comments": "",
-    "x": 1056.220703125,
-    "y": 1357.9606647491455,
-    "z": "50509cff.314024",
-    "wires": []
-  },
-  {
-    "id": "2c024236.55d4ae",
-    "type": "set",
-    "name": "Remove the last vnf in the list",
-    "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$service-data.vnfs.vnf_length-1].\" value=\"\"/>\n\n",
-    "comments": "",
-    "x": 1091.92435836792,
-    "y": 1313.0716857910156,
-    "z": "50509cff.314024",
-    "wires": []
-  },
-  {
-    "id": "b4f726ae.38e868",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 837.2577514648438,
-    "y": 1313.6272268295288,
-    "z": "50509cff.314024",
-    "wires": [
-      [
-        "1c8c4c56.6f0bc4",
-        "2c024236.55d4ae",
-        "c1ef091a.99d9e8"
-      ]
-    ]
-  }
-]
+[\r
+    {\r
+        "id": "76165194.b6c96",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 165.71429443359375,\r
+        "y": 75.71428680419922,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "236f2975.7a6d96"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5e292d5b.0c61b4",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 209.44049835205078,\r
+        "y": 194.4920768737793,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "8e6fd286.da7e4",\r
+                "9cf90cf3.4244d",\r
+                "c41a4b38.3c8b38",\r
+                "f9a09d54.7ab46",\r
+                "59a68f10.20a5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c3f3aa48.2e3088",\r
+        "type": "method",\r
+        "name": "method self-serve-vnf-unassign",\r
+        "xml": "<method rpc='self-serve-vnf-unassign' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 282.47620391845703,\r
+        "y": 130.4206418991089,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "5e292d5b.0c61b4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "236f2975.7a6d96",\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": 440.9524917602539,\r
+        "y": 75.9047794342041,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "c3f3aa48.2e3088"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aed7b0d8.edb31",\r
+        "type": "for",\r
+        "name": "foreach vnf-parameters-data.param[]",\r
+        "xml": "<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 792.4646072387695,\r
+        "y": 473.2738456726074,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "4c583cb3.a2e9b4",\r
+                "d15480d3.12273"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "13c9ccf0.5ce9c3",\r
+        "type": "switchNode",\r
+        "name": "switch resource-resolution-data.status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1091.5598983764648,\r
+        "y": 695.5477423667908,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "e71d8f06.04b4e",\r
+                "f1d7b373.953da"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e71d8f06.04b4e",\r
+        "type": "other",\r
+        "name": "SUCCESS",\r
+        "xml": "<outcome value='SUCCESS'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1366.9528999328613,\r
+        "y": 696.2619976997375,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "17e4f190.77d57e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8e6fd286.da7e4",\r
+        "type": "for",\r
+        "name": "foreach capability-order[]",\r
+        "xml": "<for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 458.0358428955078,\r
+        "y": 328.4642505645752,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "53aeb795.8d7128",\r
+                "fc9f38f4.0c2118",\r
+                "aed7b0d8.edb31",\r
+                "88725cd7.d671f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4c583cb3.a2e9b4",\r
+        "type": "switchNode",\r
+        "name": "switch param capability-name == execution",\r
+        "xml": "<switch test='`$ss.capability-name == $tmp.param.capability-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1148.357521057129,\r
+        "y": 516.9999752044678,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "b2f5ce63.5ec31"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b2f5ce63.5ec31",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1411.857521057129,\r
+        "y": 517.2499752044678,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "6eaca446.a10d9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "17e4f190.77d57e",\r
+        "type": "call",\r
+        "name": "call ss.capability-dg",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1572.071632385254,\r
+        "y": 696.0238490104675,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "d6448b55.e69ab8",\r
+                "87e5a636.7bc3f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "53aeb795.8d7128",\r
+        "type": "set",\r
+        "name": "ss.capability-name",\r
+        "xml": "<set>\n<parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\n\n<!--\nss.capability.execution-order[]\n-->\n",\r
+        "comments": "",\r
+        "x": 738.3928985595703,\r
+        "y": 328.4167022705078,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d15480d3.12273",\r
+        "type": "set",\r
+        "name": "tmp.param.capability-name",\r
+        "xml": "<set>\n<parameter name='tmp.param.capability-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.capability-name`' />\n",\r
+        "comments": "",\r
+        "x": 1097.7145462036133,\r
+        "y": 471.60718536376953,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fc9f38f4.0c2118",\r
+        "type": "set",\r
+        "name": "set ss.capability.action = unassign",\r
+        "xml": "<set>\n<parameter name='ss.capability-action' value='unassign' />\n",\r
+        "comments": "",\r
+        "x": 785.1070404052734,\r
+        "y": 375.3332862854004,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d6448b55.e69ab8",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1756.9641418457031,\r
+        "y": 696.0239100456238,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "2977dc30.549ee4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "88725cd7.d671f",\r
+        "type": "set",\r
+        "name": "set capability-dg",\r
+        "xml": "<set>\n<parameter name='ss.capability-dg' value=\"`'self-serve-' + $ss.capability.execution-order[$cidx]`\" />\n",\r
+        "comments": "",\r
+        "x": 729.5357284545898,\r
+        "y": 424.22620010375977,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cd466606.4c16b8",\r
+        "type": "execute",\r
+        "name": "generate ss-vnf url replace service-instance-id",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.ss-vnf-assignments`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vnf-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.service-instance-id`\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2239.8215255737305,\r
+        "y": 749.9056353569031,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "facf39f.6d396c8",\r
+        "type": "execute",\r
+        "name": "execute RestApiCallNode - PUT vnf",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vnf.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vnf-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ss-vnf\" />\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2209.285820007324,\r
+        "y": 852.7628569602966,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "d6b3aa2.7030758",\r
+                "4ad4756c.b7b35c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d6b3aa2.7030758",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2483.8794860839844,\r
+        "y": 906.7610106468201,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "f21e0168.83df2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4ad4756c.b7b35c",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2476.308120727539,\r
+        "y": 853.2610306739807,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "f21e0168.83df2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f21e0168.83df2",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2678.440444946289,\r
+        "y": 852.905285358429,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "3798eb1e.07c1a4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3798eb1e.07c1a4",\r
+        "type": "configure",\r
+        "name": "set error-message",\r
+        "xml": "<set>\n<parameter name=\"error-message\" value=\"Error persisting self-serve vnf assignments in MD-SAL during unassign\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2896.7262115478516,\r
+        "y": 853.0481486320496,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d4697d10.10b26",\r
+        "type": "set",\r
+        "name": "set vf data for restapi-call-node",\r
+        "xml": "<set>\n<parameter name='vf.vnf-id'\n    value='`$service-data.vnfs.vnf[$vnf-index].vnf-id`' />\n<parameter name='vf.vnf-data.sdnc-request-header.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.`' />\n<parameter name='vf.vnf-data.request-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.`' />\n<parameter name='vf.vnf-data.service-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.`' />\n<parameter name='vf.vnf-data.vnf-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.`' />\n<parameter name='vf.vnf-data.vnf-request-input.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.`' />\n<parameter name='vf.vnf-data.vnf-request-input.vnf-input-parameters.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.vnf-input-parameters.`' />\n<parameter name='vf.vnf-data.vnf-topology.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.`' />\n<parameter name='vf.vnf-data.vnf-level-oper-status.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.`' />",\r
+        "comments": "",\r
+        "x": 2192.273826599121,\r
+        "y": 696.0001473426819,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f5cfb551.80d6c8",\r
+        "type": "execute",\r
+        "name": "generate ss-vnf url - replace vnf-id",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss-vnf-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vnf-url\"/>\n    <parameter name=\"target\" value=\"{vnf-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-id`\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2204.1072311401367,\r
+        "y": 800.714403629303,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "2977dc30.549ee4",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1917.9168167114258,\r
+        "y": 695.7620215415955,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "cd466606.4c16b8",\r
+                "facf39f.6d396c8",\r
+                "d4697d10.10b26",\r
+                "f5cfb551.80d6c8",\r
+                "d61e4f37.d59c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d61e4f37.d59c8",\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 unassign self-serve vnf assignments for ' + $ss.capability-dg + ' with error: ' + $error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 2138.8217849731445,\r
+        "y": 980.5358049869537,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f9a09d54.7ab46",\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-vnf-assign.log' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 406.26222229003906,\r
+        "y": 1234.6311283111572,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9cf90cf3.4244d",\r
+        "type": "set",\r
+        "name": "set ss.capability.execution-order[]",\r
+        "xml": "<set>\n<parameter name='ss.capability.execution-order[0]' value='mS-mac-address-assign' />\n<parameter name='ss.capability.execution-order[1]' value='mac-address-assign' />\n<parameter name='ss.capability.execution-order[2]' value='netbox-ip-assign' />\n<parameter name='ss.capability.execution-order[3]' value='eipam-ip-assignment' />\n<parameter name='ss.capability.execution-order[4]' value='mS-vlan-tag-assign' />\n<parameter name='ss.capability.execution-order[5]' value='vlan-tag-assign' />\n<parameter name='ss.capability.execution-order[6]' value='alts-license-assign' />\n<parameter name='ss.capability.execution-order[7]' value='alts-entitlement-assign' />\n<parameter name='ss.capability.execution-order[8]' value='generate-name' />\n<parameter name='ss.capability.execution-order_length' value='9' />",\r
+        "comments": "",\r
+        "x": 488.9643325805664,\r
+        "y": 194.71429061889648,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c41a4b38.3c8b38",\r
+        "type": "set",\r
+        "name": "set ss.capability-type = vnf",\r
+        "xml": "<set>\n<parameter name='ss.capability-type' value='vnf' />\n",\r
+        "comments": "",\r
+        "x": 468.5714340209961,\r
+        "y": 234.2857208251953,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f1d7b373.953da",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1357.2737617492676,\r
+        "y": 763.511917591095,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "770743b2.c0595c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "770743b2.c0595c",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: resource-resolution-data.status: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`\"/>\n<parameter name=\"field2\" value=\"`'SS: ss.capability-name: ' + $ss.capability-name`\"/>\n<parameter name=\"field3\" value=\"`'SS: tmp.param.capability-name: ' + $tmp.param.capability-name`\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1505.3809432983398,\r
+        "y": 763.5476231575012,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6eaca446.a10d9c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 807.1428298950195,\r
+        "y": 695.6666359901428,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "ae3d848d.b63f78",\r
+                "13c9ccf0.5ce9c3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ae3d848d.b63f78",\r
+        "type": "break",\r
+        "name": "break",\r
+        "xml": "<break>\n",\r
+        "comments": "",\r
+        "x": 985.5714721679688,\r
+        "y": 1128.2381744384766,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "87e5a636.7bc3f8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1784.4643249511719,\r
+        "y": 881.964298248291,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "c5b341ce.afbb1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c5b341ce.afbb1",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'DONE: ' + $ss.capability-dg`\"/>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1928.2143249511719,\r
+        "y": 880.714298248291,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a4639d29.fba05",\r
+        "type": "execute",\r
+        "name": "execute PropertiesNode",\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": 877.7143685477122,\r
+        "y": 281.0000043596541,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "59a68f10.20a5",\r
+        "type": "switchNode",\r
+        "name": "switch prop.controller.user",\r
+        "xml": "<switch test='`$prop.controller.user`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 466.42860412597656,\r
+        "y": 281.4286251068115,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "e826631e.9bcf2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e826631e.9bcf2",\r
+        "type": "failure",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 666.2856995718821,\r
+        "y": 281.0000396456038,\r
+        "z": "303dc9e1.28f7b6",\r
+        "wires": [\r
+            [\r
+                "a4639d29.fba05"\r
+            ]\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-pnf-input.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-pnf-input.json
new file mode 100644 (file)
index 0000000..1305467
--- /dev/null
@@ -0,0 +1,573 @@
+[\r
+    {\r
+        "id": "94367b34.4993c8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 244.44442749023438,\r
+        "y": 363.3055624961853,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "e96f0aba.6a2158",\r
+                "145655c7.5c421a",\r
+                "740fde80.5f9e8",\r
+                "a75da30.d5ab06",\r
+                "6154264e.c73678",\r
+                "4710ed3d.659744"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e96f0aba.6a2158",\r
+        "type": "switchNode",\r
+        "name": "switch svc-request-id",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.sdnc-request-header.svc-request-id`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 502.20633697509766,\r
+        "y": 321.13589811325073,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "b12a28ac.b7b9b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b12a28ac.b7b9b8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 727.9206314086914,\r
+        "y": 321.135901927948,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "8cc94a69.eb44f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8cc94a69.eb44f8",\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": 879.3491973876953,\r
+        "y": 321.13590002059937,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "145655c7.5c421a",\r
+        "type": "switchNode",\r
+        "name": "switch svc-action",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.sdnc-request-header.svc-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 490.7777001517161,\r
+        "y": 279.7073296819415,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "35e01edd.5783a2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "35e01edd.5783a2",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 726.4920518057688,\r
+        "y": 278.27872746331354,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "6beabba6.32f4f4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6beabba6.32f4f4",\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-action is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 876.492025102888,\r
+        "y": 278.2787370000567,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "740fde80.5f9e8",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.request-information.request-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 500.7777535574778,\r
+        "y": 363.9930447850909,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "ef526c4a.39c59"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ef526c4a.39c59",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 727.9206270490376,\r
+        "y": 363.99305568422596,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "c2c067b2.6d5ab8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c2c067b2.6d5ab8",\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 a required input\" />\n",\r
+        "comments": "",\r
+        "x": 879.3491930280416,\r
+        "y": 363.99305377687733,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "79e4afb1.99cc8",\r
+        "type": "switchNode",\r
+        "name": "switch model-customization-id",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1119.242275238037,\r
+        "y": 511.4218182563782,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "e37ed67.814bf28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e37ed67.814bf28",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1324.242275238037,\r
+        "y": 511.4218010902405,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "d757cb77.2c7958"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d757cb77.2c7958",\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=\"pnf-details.onap-model-information.model-customization-uuid is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 1475.670841217041,\r
+        "y": 511.42179918289185,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a14b5bac.e97828",\r
+        "type": "switchNode",\r
+        "name": "switch tenant",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-request-input.tenant`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1065.0993537902832,\r
+        "y": 552.8503289222717,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "9f4a40d4.27fdf"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9f4a40d4.27fdf",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1322.8136711120605,\r
+        "y": 552.8503632545471,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "21e1ea3d.d3d876"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "21e1ea3d.d3d876",\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=\"pnf-request-input.tenant is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 1474.2422370910645,\r
+        "y": 552.8503613471985,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c290417a.999bd",\r
+        "type": "comment",\r
+        "name": "Validation of required fields",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 650.7777099609375,\r
+        "y": 235.42161226272583,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a75da30.d5ab06",\r
+        "type": "switchNode",\r
+        "name": "switch svc-action",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.sdnc-request-header.svc-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 484.7658462524414,\r
+        "y": 553.1003041267395,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "ade91738.c2dee8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ade91738.c2dee8",\r
+        "type": "outcome",\r
+        "name": "assign",\r
+        "xml": "<outcome value='assign'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 661.8491668701172,\r
+        "y": 552.6836438179016,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "9de99c30.2439d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9de99c30.2439d",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 858.5157775878906,\r
+        "y": 552.6836438179016,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "79e4afb1.99cc8",\r
+                "a14b5bac.e97828",\r
+                "5a47ef2e.17f48"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "621027e3.a05c68",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 163.19443729945579,\r
+        "y": 107.9692120552063,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "fd592892.32a8c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fd592892.32a8c8",\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": 276.48014286586204,\r
+        "y": 148.20732355117798,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "80133c43.3b152"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "80133c43.3b152",\r
+        "type": "method",\r
+        "name": "method validate-pnf-input",\r
+        "xml": "<method rpc='validate-pnf-input' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 211.87306431361594,\r
+        "y": 189.21920824050903,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "94367b34.4993c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f8dbb90e.a422b8",\r
+        "type": "comment",\r
+        "name": "validate-pnf-input",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 557.5392935616628,\r
+        "y": 55.55555582046509,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6154264e.c73678",\r
+        "type": "switchNode",\r
+        "name": "switch service-instance-id",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.service-information.service-instance-id`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 513.8015845162527,\r
+        "y": 408.05557107925415,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "2ce54a7d.5835b6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2ce54a7d.5835b6",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 726.2301657540456,\r
+        "y": 408.0555672645569,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "53191b49.840e74"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "53191b49.840e74",\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-information.service-instance-id is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 877.6587317330495,\r
+        "y": 408.05556535720825,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4710ed3d.659744",\r
+        "type": "switchNode",\r
+        "name": "switch pnf-id",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-details.pnf-id`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 471.3015937805176,\r
+        "y": 451.555561542511,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "a413f663.792248"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a413f663.792248",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 726.5873031616211,\r
+        "y": 450.12699365615845,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "9bbe7c79.3b76c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9bbe7c79.3b76c",\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=\"pnf-details.pnf-id is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 878.015869140625,\r
+        "y": 450.1269917488098,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5a47ef2e.17f48",\r
+        "type": "switchNode",\r
+        "name": "switch aic-cloud-region",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-request-input.aic-cloud-region`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1094.444435119629,\r
+        "y": 595.1269860267639,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "38bfd2ff.c329ae"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "38bfd2ff.c329ae",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1321.1587524414062,\r
+        "y": 595.1270203590393,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "be8a7d3e.b1956"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "be8a7d3e.b1956",\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=\"pnf-request-input.aic-cloud-region is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 1472.5873184204102,\r
+        "y": 595.1270184516907,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cbe7b870.eb2778",\r
+        "type": "switchNode",\r
+        "name": "switch model-customization-id",\r
+        "xml": "<switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1089.9205780029297,\r
+        "y": 710.317467212677,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "a468752f.474808"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a468752f.474808",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1294.9205780029297,\r
+        "y": 710.3174500465393,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "b9bc06be.f3a6e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b9bc06be.f3a6e8",\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=\"pnf-details.onap-model-information.model-customization-uuid is a required input\" />\n",\r
+        "comments": "",\r
+        "x": 1446.3491439819336,\r
+        "y": 710.3174481391907,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "23854a15.854736",\r
+        "type": "outcome",\r
+        "name": "changeassign",\r
+        "xml": "<outcome value='changeassign'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 679.8607978820801,\r
+        "y": 710.2460265159607,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "9784e04d.64388"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9784e04d.64388",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 859.8607864379883,\r
+        "y": 710.2459931373596,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": [\r
+            [\r
+                "cbe7b870.eb2778"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cc3011b2.e59d9",\r
+        "type": "comment",\r
+        "name": "model-customization-uuid validation moved to changeassign DG",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 739.4444274902344,\r
+        "y": 675.5555663108826,\r
+        "z": "8b598434.ddbeb8",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
index 091aa69..6a50796 100755 (executable)
@@ -1 +1,2262 @@
-[{"id":"e2e49656.8ebb48","type":"dgstart","name":"DGSTART","outputs":1,"x":131.42857360839844,"y":110.98508548736572,"z":"18647007.5f06e","wires":[["c454fe16.3ed8a"]]},{"id":"c454fe16.3ed8a","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":246.7142791748047,"y":150.55653285980225,"z":"18647007.5f06e","wires":[["be96a73d.265e28"]]},{"id":"be96a73d.265e28","type":"method","name":"method vf-module-topology-operation-unassign","xml":"<method rpc='vf-module-topology-operation-unassign' mode='sync'>\n","comments":"","outputs":1,"x":253.52387237548828,"y":190.98508167266846,"z":"18647007.5f06e","wires":[["81c49a47.fca5c8"]]},{"id":"9d3efd4.31149","type":"comment","name":"vf-module-topology-operation-unassign","info":"","comments":"","x":525.7734298706055,"y":58.57142925262451,"z":"18647007.5f06e","wires":[]},{"id":"c861a71.bf35958","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":536.6190338134766,"y":408.1755590438843,"z":"18647007.5f06e","wires":[["6b156d65.ae2c94","48863ddd.c15a14"]]},{"id":"6b156d65.ae2c94","type":"outcome","name":"DeleteVfModuleInstance","xml":"<outcome value='DeleteVfModuleInstance'>\n","comments":"","outputs":1,"x":798.6666488647461,"y":385.3184452056885,"z":"18647007.5f06e","wires":[["6429f10d.9c11b"]]},{"id":"48863ddd.c15a14","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":742.3332939147949,"y":430.6994342803955,"z":"18647007.5f06e","wires":[["3ad1862d.4098ea"]]},{"id":"6429f10d.9c11b","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":988.5238132476807,"y":385.3184766769409,"z":"18647007.5f06e","wires":[[]]},{"id":"3ad1862d.4098ea","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=\"If svc-action is 'deactivate' then request-action must be 'DeleteVfModuleInstance'\" />\n","comments":"","x":1007.3333015441895,"y":431.0327467918396,"z":"18647007.5f06e","wires":[]},{"id":"218fe261.ee2e0e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":159.04767608642578,"y":1502.8897886276245,"z":"18647007.5f06e","wires":[["863442bb.c35bd","23bca180.487f5e","e49fcf2c.dc6dd","f2229878.1d7b18","fc31741.0ef9088","165bb54c.1c4a5b","ab2d7b3e.268578","35514a27.0c3786","eec63ebd.14593","e0000fd9.cea29"]]},{"id":"13f7711f.d4863f","type":"switchNode","name":"switch service-data.vnfs.vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":583.0952072143555,"y":552.6517343521118,"z":"18647007.5f06e","wires":[["431af51d.d60c3c","2f013004.d53e4"]]},{"id":"431af51d.d60c3c","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":823.8094787597656,"y":529.7944746017456,"z":"18647007.5f06e","wires":[["5ca2ab6d.26e0f4"]]},{"id":"2f013004.d53e4","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":823.5713195800781,"y":570.7469930648804,"z":"18647007.5f06e","wires":[["936aceca.3de96"]]},{"id":"5ca2ab6d.26e0f4","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=\"There are no VNFs defined in MD-SAL\" />\n","comments":"","x":990.4760932922363,"y":529.0802297592163,"z":"18647007.5f06e","wires":[]},{"id":"936aceca.3de96","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":985.8094635009766,"y":570.4136114120483,"z":"18647007.5f06e","wires":[["14ab3d7f.68c0e3"]]},{"id":"14ab3d7f.68c0e3","type":"switchNode","name":"switch service data vnf == input vnf","xml":"<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":1237.1426811218262,"y":570.0802984237671,"z":"18647007.5f06e","wires":[["64ab69be.8fcc48"]]},{"id":"64ab69be.8fcc48","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1467.1427726745605,"y":569.413652420044,"z":"18647007.5f06e","wires":[["b3bf1d7.e779de"]]},{"id":"1f2343f9.c1656c","type":"set","name":"set vnf-index to -1","xml":"<set>\n<parameter name='vnf-index' value='-1' />\n","comments":"","x":532.1428298950195,"y":484.0802335739136,"z":"18647007.5f06e","wires":[]},{"id":"2904a72b.2ba948","type":"set","name":"set vnf-index to idx","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1788.8094100952148,"y":540.413610458374,"z":"18647007.5f06e","wires":[]},{"id":"6dfcbf43.c96e3","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":522.1428375244141,"y":620.7469301223755,"z":"18647007.5f06e","wires":[["52af09ac.eaca28"]]},{"id":"52af09ac.eaca28","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":700.4762229919434,"y":620.0803060531616,"z":"18647007.5f06e","wires":[["c4d376c3.571488"]]},{"id":"c4d376c3.571488","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=\"`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`\" />\n","comments":"","x":860.476131439209,"y":619.4136095046997,"z":"18647007.5f06e","wires":[]},{"id":"b3bf1d7.e779de","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1615.4762344360352,"y":568.3333511352539,"z":"18647007.5f06e","wires":[["2904a72b.2ba948","63b441b0.29b2"]]},{"id":"63b441b0.29b2","type":"break","name":"break","xml":"<break>\n","comments":"","x":1750.4762001037598,"y":589.9999370574951,"z":"18647007.5f06e","wires":[]},{"id":"3d580cb8.2983e4","type":"switchNode","name":"switch vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":546.4285202026367,"y":742.6517381668091,"z":"18647007.5f06e","wires":[["59c54cf2.fb7004","28df31c9.48452e"]]},{"id":"59c54cf2.fb7004","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":730.4761581420898,"y":721.461142539978,"z":"18647007.5f06e","wires":[["4541f6e8.947688"]]},{"id":"28df31c9.48452e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":730.2379989624023,"y":762.4136610031128,"z":"18647007.5f06e","wires":[["78b66442.fbfd7c"]]},{"id":"4541f6e8.947688","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=\"`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`\" />\n","comments":"","x":897.1427726745605,"y":720.7468976974487,"z":"18647007.5f06e","wires":[]},{"id":"78b66442.fbfd7c","type":"for","name":"for each vf-module","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":892.4761428833008,"y":762.0802793502808,"z":"18647007.5f06e","wires":[["70b1df72.cfb8d"]]},{"id":"70b1df72.cfb8d","type":"switchNode","name":"switch service data vf-module == input vf-module","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","comments":"","outputs":1,"x":1198.8093032836914,"y":761.7470149993896,"z":"18647007.5f06e","wires":[["bc3ab08b.f7f65"]]},{"id":"bc3ab08b.f7f65","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1468.8093566894531,"y":759.4136199951172,"z":"18647007.5f06e","wires":[["7ed3c4ad.1b318c"]]},{"id":"b33a0450.724278","type":"set","name":"set vf-module-index to -1","xml":"<set>\n<parameter name='vf-module-index' value='-1' />\n","comments":"","x":552.1428146362305,"y":677.4135961532593,"z":"18647007.5f06e","wires":[]},{"id":"c88bc5a0.0aa9d8","type":"set","name":"set vf-module-index to idx","xml":"<set>\n<parameter name='vf-module-index' value='`$idx`' />\n","comments":"","x":1798.8094482421875,"y":730.4135990142822,"z":"18647007.5f06e","wires":[]},{"id":"f25bb144.7f7c8","type":"switchNode","name":"switch vf-module-index","xml":"<switch test='`$vf-module-index`'>\n","comments":"","outputs":1,"x":543.809497833252,"y":814.0803089141846,"z":"18647007.5f06e","wires":[["ea2e1080.af206"]]},{"id":"ea2e1080.af206","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":722.1428833007812,"y":813.4136848449707,"z":"18647007.5f06e","wires":[["c0ea9272.92129"]]},{"id":"c0ea9272.92129","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=\"`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`\" />\n","comments":"","x":882.1427917480469,"y":812.7469882965088,"z":"18647007.5f06e","wires":[]},{"id":"7ed3c4ad.1b318c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1602.1428985595703,"y":758.3333597183228,"z":"18647007.5f06e","wires":[["c88bc5a0.0aa9d8","b5fd65f0.dd1658"]]},{"id":"b5fd65f0.dd1658","type":"break","name":"break","xml":"<break>\n","comments":"","x":1737.142864227295,"y":779.999945640564,"z":"18647007.5f06e","wires":[]},{"id":"459ba9fe.95a3b8","type":"switchNode","name":"switch order-status","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":535.7143173217773,"y":1306.223168373108,"z":"18647007.5f06e","wires":[["dff3e662.ab0f08","5d3cf475.3a3f0c"]]},{"id":"dff3e662.ab0f08","type":"outcome","name":"Created","xml":"<outcome value='Created'>\n","comments":"","outputs":1,"x":711.5476875305176,"y":1268.7232003211975,"z":"18647007.5f06e","wires":[["17b63642.fdbe0a"]]},{"id":"5d3cf475.3a3f0c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":710.7143058776855,"y":1326.2231512069702,"z":"18647007.5f06e","wires":[["fdf39a89.b626b8"]]},{"id":"17b63642.fdbe0a","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=\"Order status must not be Created\" />\n","comments":"","x":879.8809280395508,"y":1268.723129749298,"z":"18647007.5f06e","wires":[]},{"id":"fdf39a89.b626b8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":885.7143173217773,"y":1325.8898267745972,"z":"18647007.5f06e","wires":[[]]},{"id":"23bca180.487f5e","type":"update","name":"update EIPAM_IP_ASSIGNMENTS to PENDING_DELETE...","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id\" >","comments":"","outputs":1,"x":662.3810424804688,"y":1422.8898191452026,"z":"18647007.5f06e","wires":[["e0899af7.954688"]]},{"id":"863442bb.c35bd","type":"set","name":"set status variable","xml":"<set>\n<parameter name='tmp.status' value=\"`'PENDING_DELETE_' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`\" />\n","comments":"","x":532.3810119628906,"y":1376.2231512069702,"z":"18647007.5f06e","wires":[]},{"id":"e0899af7.954688","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":967.3809509277344,"y":1421.2231187820435,"z":"18647007.5f06e","wires":[["e02614ec.c27ce8"]]},{"id":"e02614ec.c27ce8","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=\"Error updating EIPAM_IP_ASSIGNMENTS table\" />\n","comments":"","x":1157.3809776306152,"y":1421.0328540802002,"z":"18647007.5f06e","wires":[]},{"id":"165bb54c.1c4a5b","type":"execute","name":"execute EIPAM unassign IP addresses","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"unassignIPAddress\">\n<parameter name=\"deleteEIPAM_status\" value=\"`$tmp.status`\" />\n","comments":"","outputs":1,"x":595.7143402099609,"y":1517.8898401260376,"z":"18647007.5f06e","wires":[["1ec6a5cd.de1d1a"]]},{"id":"1ec6a5cd.de1d1a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":832.3809661865234,"y":1517.8897829055786,"z":"18647007.5f06e","wires":[["ea2d8dc1.6c576"]]},{"id":"ea2d8dc1.6c576","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=\"Error in EIPAM unassign IP address\" />\n","comments":"","x":1022.3809928894043,"y":1517.6995182037354,"z":"18647007.5f06e","wires":[]},{"id":"e49fcf2c.dc6dd","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":527.3809967041016,"y":1562.8898010253906,"z":"18647007.5f06e","wires":[["633220ab.96e4c"]]},{"id":"633220ab.96e4c","type":"for","name":"for each vm","xml":"<for silentFailure='true' index='vm-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\n","comments":"","outputs":1,"x":722.3810272216797,"y":1562.2228088378906,"z":"18647007.5f06e","wires":[["f69b3abe.d94218"]]},{"id":"50fe8de0.64f3a4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1429.048095703125,"y":1560.5554113388062,"z":"18647007.5f06e","wires":[["ef7ad1cb.324"]]},{"id":"5ad8acf2.2bc374","type":"comment","name":"Not a failure","info":"","comments":"","x":1707.3810920715332,"y":1558.8892135620117,"z":"18647007.5f06e","wires":[]},{"id":"ef7ad1cb.324","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID\"/>\n<parameter name=\"field3\" value=\"`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to insert VIPR_CONFIGURATION record\"/>\n","comments":"","outputs":1,"x":1575.0480308532715,"y":1560.5560445785522,"z":"18647007.5f06e","wires":[[]]},{"id":"f69b3abe.d94218","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":890.7144203186035,"y":1561.222653388977,"z":"18647007.5f06e","wires":[["f06c39d0.0e3498"]]},{"id":"f06c39d0.0e3498","type":"delete","name":"delete any records in VIPR_CONFIGURATION","xml":"<delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='DELETE from VIPR_CONFIGURATION WHERE vnf_id = $service-data.vnfs.vnf[$vnf-index].vnf-id\n     AND ecomp_service_instance_id = $service-data.service-information.service-instance-id\n     AND vm_name = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' >","comments":"","outputs":1,"x":1177.3811340332031,"y":1560.8900833129883,"z":"18647007.5f06e","wires":[["50fe8de0.64f3a4"]]},{"id":"e8c6edd8.95256","type":"for","name":"for each vf module","xml":"<for index='idx' start='`$vf-module-index + 1`' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":1102.8888092041016,"y":2668.2228231430054,"z":"18647007.5f06e","wires":[["fb0fd2dc.832a4"]]},{"id":"cfa852b0.966f1","type":"comment","name":"Remove VF Module from service data","info":"","comments":"","x":481.7143096923828,"y":2623.461263656616,"z":"18647007.5f06e","wires":[]},{"id":"fb0fd2dc.832a4","type":"set","name":"move vf module to remove one","xml":"<set>\n\t<parameter name=\"tmpidx\" value=\"`$idx - 1`\"/>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmpidx].\" value=\"$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].\" />\n\t\n","comments":"","x":1346.4799423217773,"y":2667.2467889785767,"z":"18647007.5f06e","wires":[]},{"id":"f2229878.1d7b18","type":"switchNode","name":"switch vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":549.146728515625,"y":2679.5644941329956,"z":"18647007.5f06e","wires":[["a6cda6a3.e5d988","5accced2.4e3d3"]]},{"id":"a6cda6a3.e5d988","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":744.480094909668,"y":2630.4691009521484,"z":"18647007.5f06e","wires":[["7a4f4b98.b84d24"]]},{"id":"7a4f4b98.b84d24","type":"set","name":"Remove vf modules","xml":"<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.\" value=\"\"/>\n\n","comments":"","x":916.479866027832,"y":2630.469220161438,"z":"18647007.5f06e","wires":[]},{"id":"5accced2.4e3d3","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":743.1468505859375,"y":2725.2309103012085,"z":"18647007.5f06e","wires":[["7e34b293.efbcdc"]]},{"id":"86f76706.4026a8","type":"set","name":"set new vf module length","xml":"<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length\" value=\"`$lastidx`\"/>\n\n\t\n","comments":"","x":1121.7763442993164,"y":2795.945300102234,"z":"18647007.5f06e","wires":[]},{"id":"cae448bb.baecd8","type":"set","name":"Remove the last vf module in the list","xml":"<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lastidx].\" value=\"\"/>\n","comments":"","x":1157.4799575805664,"y":2752.0564374923706,"z":"18647007.5f06e","wires":[]},{"id":"7e34b293.efbcdc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":900.3847808837891,"y":2724.468912124634,"z":"18647007.5f06e","wires":[["e8c6edd8.95256","cae448bb.baecd8","86f76706.4026a8","2a268ef.d194272"]]},{"id":"fc31741.0ef9088","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":521.7143402099609,"y":2856.080117225647,"z":"18647007.5f06e","wires":[]},{"id":"ab2d7b3e.268578","type":"set","name":"set service-type","xml":"<set>\n<parameter name='service-data.service-information.service-type' value='`$service-data.service-information.subscription-service-type`' />\n","comments":"EIPAM plug-in needs this attribute set with this name","x":524.0476531982422,"y":1468.8094816207886,"z":"18647007.5f06e","wires":[]},{"id":"2a268ef.d194272","type":"set","name":"set lastidx","xml":"<set>\n<parameter name='lastidx' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length - 1`' />\n","comments":"EIPAM plug-in needs this attribute set with this name","x":1075.619125366211,"y":2708.461136817932,"z":"18647007.5f06e","wires":[]},{"id":"dab4d76.c597428","type":"switchNode","name":"switch vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":1546.2142639160156,"y":1879.9762592315674,"z":"18647007.5f06e","wires":[["6aafaac4.4c5d74"]]},{"id":"6aafaac4.4c5d74","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1730.4999694824219,"y":1879.976245880127,"z":"18647007.5f06e","wires":[["ad3965bc.016e98"]]},{"id":"67ee289.747f3d8","type":"update","name":"update EIPAM_IP_ASSIGNMENTS to PENDING_DELETE...","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $aai.instance-group.instance-group[$ig-index].id\" >","comments":"","outputs":1,"x":2160.4999237060547,"y":1879.785903930664,"z":"18647007.5f06e","wires":[[]]},{"id":"b93947b5.bad4b8","type":"set","name":"set status variable","xml":"<set>\n<parameter name='tmp.status' value=\"`'PENDING_DELETE_' + $aai.instance-group.instance-group[$ig-index].id`\" />\n","comments":"","x":2030.499885559082,"y":1833.119276046753,"z":"18647007.5f06e","wires":[]},{"id":"c86e21dc.9ba1","type":"execute","name":"execute EIPAM unassign IP addresses","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"unassignIPAddress\">\n<parameter name=\"deleteEIPAM_status\" value=\"`$tmp.status`\" />\n","comments":"","outputs":1,"x":2095.4998931884766,"y":1924.7859477996826,"z":"18647007.5f06e","wires":[[]]},{"id":"63fda02a.fa7dd","type":"comment","name":"roll back EIPAM floating addresses","info":"","comments":"","x":2139.785614013672,"y":1786.9291022618609,"z":"18647007.5f06e","wires":[]},{"id":"35514a27.0c3786","type":"switchNode","name":"switch network-instance-group-function","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function`'>\n","comments":"","outputs":1,"x":594.0476760864258,"y":1695.4761924743652,"z":"18647007.5f06e","wires":[["33381eac.5736d2","b7a26972.4da738"]]},{"id":"33381eac.5736d2","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":819.0476455688477,"y":1663.8095254898071,"z":"18647007.5f06e","wires":[["b38032a0.2b527"]]},{"id":"b7a26972.4da738","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":818.8095092773438,"y":1734.761920928955,"z":"18647007.5f06e","wires":[["3e53c2b5.286bae"]]},{"id":"b38032a0.2b527","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":945.7143821716309,"y":1662.1428575515747,"z":"18647007.5f06e","wires":[[]]},{"id":"3e53c2b5.286bae","type":"get-resource","name":"get-resource instance group","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n  resource=\"instance-groups\" \n  key=\"instance-group.instance-group-function = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function\n    AND instance-group.instance-group-type = 'L3-NETWORK'\"\n  pfx='aai.instance-group' local-only='false' >\n\n","comments":"","outputs":1,"x":1014.8810653686523,"y":1733.809497833252,"z":"18647007.5f06e","wires":[["e9603d51.250ee"]]},{"id":"e9603d51.250ee","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1216.547695159912,"y":1734.6428718566895,"z":"18647007.5f06e","wires":[["2155541e.a7566c"]]},{"id":"b70af40a.ab7308","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1366.5476837158203,"y":1932.9764051437378,"z":"18647007.5f06e","wires":[["dab4d76.c597428","3f561058.c6b7c"]]},{"id":"ad3965bc.016e98","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1856.5476036071777,"y":1879.6429595947266,"z":"18647007.5f06e","wires":[["b93947b5.bad4b8","67ee289.747f3d8","c86e21dc.9ba1"]]},{"id":"3f561058.c6b7c","type":"for","name":"for each network-instance-group","xml":"<for index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\n","comments":"","outputs":1,"x":1566.5476150512695,"y":1987.976294517517,"z":"18647007.5f06e","wires":[["530e6588.dec85c"]]},{"id":"530e6588.dec85c","type":"switchNode","name":"network-instance-group-ids match?","xml":"<switch test='`$aai.instance-group.instance-group[$ig-index].id\n  == $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>\n","comments":"","outputs":1,"x":1871.5474548339844,"y":1987.9763402938843,"z":"18647007.5f06e","wires":[["da168f97.f5302"]]},{"id":"da168f97.f5302","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2093.214225769043,"y":1986.6431188583374,"z":"18647007.5f06e","wires":[["c4aa2e87.97edb"]]},{"id":"c4aa2e87.97edb","type":"for","name":"for each network","xml":"<for index='network-index' start='0' end='`$service-data.network-instance-groups.network-instance-group[$nig-index].networks.network_length`' >\n","comments":"","outputs":1,"x":2248.9285621643066,"y":1985.3572444915771,"z":"18647007.5f06e","wires":[["d3c4d017.cbabf"]]},{"id":"d3c4d017.cbabf","type":"set","name":"clear vlan-tag-id and set network-status to unassigned","xml":"<set>\n<parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].vlan-tag-id'\n  value='' />\n<parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].network-status'\n  value='unassigned' />\n","comments":"","x":2560.3569946289062,"y":1983.9287071228027,"z":"18647007.5f06e","wires":[]},{"id":"2155541e.a7566c","type":"for","name":"for each returned instance-group","xml":"<for index='ig-index' start='0' end='`$aai.instance-group.instance-group_length`' >\n","comments":"","outputs":1,"x":1440.0476989746094,"y":1731.6428756713867,"z":"18647007.5f06e","wires":[["a61da9.e6305258"]]},{"id":"a61da9.e6305258","type":"for","name":"for each relationship","xml":"<for index='rel-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship_length`' >\n","comments":"","outputs":1,"x":1691.714340209961,"y":1730.6428747177124,"z":"18647007.5f06e","wires":[["997d3e95.fc12d"]]},{"id":"997d3e95.fc12d","type":"for","name":"for each relationship-data","xml":"<for index='reldata-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data_length`' >\n","comments":"","outputs":1,"x":1918.3810119628906,"y":1729.97624874115,"z":"18647007.5f06e","wires":[["b7d0eb3a.e77808"]]},{"id":"b7d0eb3a.e77808","type":"switchNode","name":"switch relationship-key == service-instance.service-instance-id","xml":"<switch test=\"`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-key\n  == 'service-instance.service-instance-id'`\">\n","comments":"","outputs":1,"x":2276.714599609375,"y":1729.976167678833,"z":"18647007.5f06e","wires":[["ffbd0f3e.1275f"]]},{"id":"ffbd0f3e.1275f","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2573.381057739258,"y":1729.9762001037598,"z":"18647007.5f06e","wires":[["cc3c2af6.11c288"]]},{"id":"cc3c2af6.11c288","type":"switchNode","name":"switch relationship-value == this service-instance-id","xml":"<switch test='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-value\n  == $service-data.service-information.service-instance-id`'>\n","comments":"","outputs":1,"x":2838.3808822631836,"y":1729.9761695861816,"z":"18647007.5f06e","wires":[["dff626a0.dc1248"]]},{"id":"dff626a0.dc1248","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3098.3808517456055,"y":1729.9761600494385,"z":"18647007.5f06e","wires":[["b70af40a.ab7308"]]},{"id":"eec63ebd.14593","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0'\n  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":534.8810119628906,"y":2298.723051071167,"z":"18647007.5f06e","wires":[["ce9b06f.5de4df8"]]},{"id":"cb730a7e.b5f668","type":"for","name":"for each vnfc","xml":"<for silentFailure='true' index='vnfc-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\n","comments":"","outputs":1,"x":886.547779083252,"y":2393.104296684265,"z":"18647007.5f06e","wires":[["8409f6e0.cb49a8"]]},{"id":"9f0c497f.5452f8","type":"save","name":"delete vnfc in A&AI","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vnfc\"\n   key=\"vnfc.vnfc-name = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\">\n","comments":"","outputs":1,"x":1197.9762840270996,"y":2435.627844810486,"z":"18647007.5f06e","wires":[[]]},{"id":"bf694419.fb3e48","type":"comment","name":"check removed with US622450","info":"","comments":"","x":1090.0000305175781,"y":1296.1904892921448,"z":"18647007.5f06e","wires":[]},{"id":"52d01c9a.ee4734","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1494.0472831726074,"y":2382.889633178711,"z":"18647007.5f06e","wires":[["23e52a62.8371d6","e6b04d9f.26218"]]},{"id":"e6b04d9f.26218","type":"call","name":"call GENERIC-RESOURCE-API:naming-policy-generate-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":1806.3330192565918,"y":2407.461151123047,"z":"18647007.5f06e","wires":[[]]},{"id":"23e52a62.8371d6","type":"set","name":"set variables for deleting VNFC name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`' />\n<parameter name='naming-policy-generate-name-input.vm-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vnfc-index]`' />\n<parameter name='naming-policy-generate-name-input.action' value='DELETE' />\n","comments":"","x":1726.0949745178223,"y":2360.318221092224,"z":"18647007.5f06e","wires":[]},{"id":"151cdfd1.7da61","type":"switchNode","name":"switch vnfc-name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\n","comments":"","outputs":1,"x":1194.3809547424316,"y":2356.2228899002075,"z":"18647007.5f06e","wires":[["255c801a.7bb73","64e49e9a.0907e"]]},{"id":"255c801a.7bb73","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1364.380931854248,"y":2326.2229232788086,"z":"18647007.5f06e","wires":[["cfe202e2.fbb5c"]]},{"id":"64e49e9a.0907e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1364.3808898925781,"y":2382.4134368896484,"z":"18647007.5f06e","wires":[["52d01c9a.ee4734"]]},{"id":"cfe202e2.fbb5c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1494.3807754516602,"y":2324.556275367737,"z":"18647007.5f06e","wires":[[]]},{"id":"1fe6d9a7.834656","type":"comment","name":"Rollback any generated VM and VNFC names","info":"","comments":"","x":582.7140884399414,"y":2251.2230615615845,"z":"18647007.5f06e","wires":[]},{"id":"ce9b06f.5de4df8","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":698.7852401733398,"y":2299.1283378601074,"z":"18647007.5f06e","wires":[["8b6eeaed.c4c0f8","cb730a7e.b5f668","d0342dc.d3eafd"]]},{"id":"8b6eeaed.c4c0f8","type":"for","name":"for each vm-name","xml":"<for silentFailure='true' index='vm-name-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length`' >\n","comments":"","outputs":1,"x":907.1184768676758,"y":2219.128580093384,"z":"18647007.5f06e","wires":[["1116a6ec.270f29"]]},{"id":"1116a6ec.270f29","type":"switchNode","name":"switch vm-name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-name-index]`'>\n","comments":"","outputs":1,"x":1102.118522644043,"y":2220.7952194213867,"z":"18647007.5f06e","wires":[["1df4fe9b.77f821","a4c9f40b.62e7e8"]]},{"id":"1df4fe9b.77f821","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1255.4518356323242,"y":2192.4618854522705,"z":"18647007.5f06e","wires":[["2232a7dc.efa278"]]},{"id":"2232a7dc.efa278","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1385.4516792297363,"y":2190.7952375411987,"z":"18647007.5f06e","wires":[[]]},{"id":"af279118.39d22","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1387.1185836791992,"y":2250.7951984405518,"z":"18647007.5f06e","wires":[["bb500d32.bedec","a9ef9323.9a9ed"]]},{"id":"a4c9f40b.62e7e8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1257.45219039917,"y":2250.3190021514893,"z":"18647007.5f06e","wires":[["af279118.39d22"]]},{"id":"a9ef9323.9a9ed","type":"call","name":"call GENERIC-RESOURCE-API:naming-policy-generate-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":1687.1184616088867,"y":2275.7951984405518,"z":"18647007.5f06e","wires":[[]]},{"id":"bb500d32.bedec","type":"set","name":"set variables for deleting VM name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.naming-type' value='VM' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`' />\n<parameter name='naming-policy-generate-name-input.action' value='DELETE' />\n","comments":"","x":1601.880355834961,"y":2228.6522302627563,"z":"18647007.5f06e","wires":[]},{"id":"8409f6e0.cb49a8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1034.0476875305176,"y":2391.889678001404,"z":"18647007.5f06e","wires":[["151cdfd1.7da61","9f0c497f.5452f8"]]},{"id":"e0000fd9.cea29","type":"switchNode","name":"switch vf-module-name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-name`'>\n","comments":"","outputs":1,"x":547.380973815918,"y":2089.5565156936646,"z":"18647007.5f06e","wires":[["d4acdb9a.079a18","af3adb74.311b58"]]},{"id":"d4acdb9a.079a18","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":724.0475997924805,"y":2115.389748573303,"z":"18647007.5f06e","wires":[["a15536e0.beaed8"]]},{"id":"af3adb74.311b58","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":726.1428604125977,"y":2064.1756534576416,"z":"18647007.5f06e","wires":[["be7df5b1.c8d688"]]},{"id":"be7df5b1.c8d688","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":848.7142791748047,"y":2062.556513786316,"z":"18647007.5f06e","wires":[[]]},{"id":"a15536e0.beaed8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":871.0475654602051,"y":2115.8897886276245,"z":"18647007.5f06e","wires":[["7ffb79a3.b3e2f8","10ec941b.acc1bc"]]},{"id":"10ec941b.acc1bc","type":"call","name":"call GENERIC-RESOURCE-API:naming-policy-generate-unique-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-unique-name' mode='sync' >\n","comments":"","outputs":1,"x":1220.714256286621,"y":2136.2231225967407,"z":"18647007.5f06e","wires":[[]]},{"id":"7ffb79a3.b3e2f8","type":"set","name":"set variables for deleting VF module name","xml":"<set>\n<parameter name='generate-unique-name-input.name-table-type' value='VF_MODULE_INSTANCE' />\n<parameter name='generate-unique-name-input.context-id' value='`$vf-module-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name='generate-unique-name-input.action' value='DELETE' />\n","comments":"","x":1133.8091888427734,"y":2091.937413215637,"z":"18647007.5f06e","wires":[]},{"id":"d0342dc.d3eafd","type":"for","name":"for each vm-network","xml":"<for silentFailure='true' index='network-role-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\n","comments":"","outputs":1,"x":910.7143020629883,"y":2531.223017692566,"z":"18647007.5f06e","wires":[["b8830261.bd521"]]},{"id":"b8830261.bd521","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1100.547622680664,"y":2530.722456932068,"z":"18647007.5f06e","wires":[["496f47a6.204b08"]]},{"id":"496f47a6.204b08","type":"for","name":"for each vnfc","xml":"<for silentFailure='true' index='vnfc-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\n","comments":"","outputs":1,"x":1254.5476837158203,"y":2529.3892822265625,"z":"18647007.5f06e","wires":[["e0961315.d37bc"]]},{"id":"e0961315.d37bc","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1412.8810691833496,"y":2529.3892755508423,"z":"18647007.5f06e","wires":[["4448c71a.47c118","71117bd.9df1b84"]]},{"id":"4448c71a.47c118","type":"for","name":"for each floating ipv4 address","xml":"<for silentFailure='true' index='ipv4-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4_length`' >\n","comments":"","outputs":1,"x":1617.7140884399414,"y":2498.555899620056,"z":"18647007.5f06e","wires":[["10d9315f.192e3f"]]},{"id":"71117bd.9df1b84","type":"for","name":"for each floating ipv6 address","xml":"<for silentFailure='true' index='ipv6-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6_length`' >\n","comments":"","outputs":1,"x":1618.3806838989258,"y":2555.5556592941284,"z":"18647007.5f06e","wires":[["b3e81b2f.f62be8"]]},{"id":"10d9315f.192e3f","type":"delete","name":"delete vip-ipv4-address-list from A&AI","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n   resource=\"vip-ipv4-address-list\" \n   key=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\n\t  AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\n\t  AND vip-ipv4-address-list.vip-ipv4-address = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]\" >","comments":"","outputs":1,"x":1921.7140884399414,"y":2498.555899620056,"z":"18647007.5f06e","wires":[[]]},{"id":"b3e81b2f.f62be8","type":"delete","name":"delete vip-ipv6-address-list from A&AI","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n   resource=\"vip-ipv6-address-list\" \n   key=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\n\t  AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\n\t  AND vip-ipv6-address-list.vip-ipv6-address = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]\" >","comments":"","outputs":1,"x":1920.3806838989258,"y":2554.222529411316,"z":"18647007.5f06e","wires":[[]]},{"id":"81c49a47.fca5c8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":197.38094329833984,"y":554.5238332748413,"z":"18647007.5f06e","wires":[["c861a71.bf35958","1f2343f9.c1656c","13f7711f.d4863f","6dfcbf43.c96e3","b33a0450.724278","3d580cb8.2983e4","f25bb144.7f7c8","2f3dab55.c79cc4","8494a6ce.b4d008","69ffa572.57fcfc","ae821284.ea3c7"]]},{"id":"cd77f2b1.29536","type":"call","name":"call self-serve-vf-module-unassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-vf-module-unassign' mode='sync' >\n","comments":"","outputs":1,"x":1006.6427383422852,"y":946.6547780036926,"z":"18647007.5f06e","wires":[["3c485d89.f7e462","44c95324.f14cdc"]]},{"id":"3c485d89.f7e462","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1251.392723083496,"y":946.9047665596008,"z":"18647007.5f06e","wires":[["b3dabebc.3fe24"]]},{"id":"b3dabebc.3fe24","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Encountered error while unassigning self-serve vf-moldule esources with error: '+ $error-message`\" />\n","comments":"","x":1416.9641494750977,"y":946.5476613044739,"z":"18647007.5f06e","wires":[]},{"id":"44c95324.f14cdc","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1255.9998970031738,"y":997.4603009223938,"z":"18647007.5f06e","wires":[["c76910e9.f2862"]]},{"id":"c76910e9.f2862","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":1424.5713119506836,"y":997.0317425727844,"z":"18647007.5f06e","wires":[]},{"id":"2f3dab55.c79cc4","type":"execute","name":"execute PropertiesNode","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","comments":"","outputs":1,"x":547.6190185546875,"y":256.93744468688965,"z":"18647007.5f06e","wires":[[]]},{"id":"8494a6ce.b4d008","type":"switchNode","name":"switch input cloud-owner","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-request-input.cloud-owner`'>\n","comments":"","outputs":1,"x":549.2855911254883,"y":327.29407024383545,"z":"18647007.5f06e","wires":[["2c057656.bd036a","f6d09aaa.bbe858"]]},{"id":"2c057656.bd036a","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":732.6189651489258,"y":297.29405879974365,"z":"18647007.5f06e","wires":[["105a5789.51e418"]]},{"id":"f6d09aaa.bbe858","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":732.3808708190918,"y":338.2465524673462,"z":"18647007.5f06e","wires":[["78541ec2.14876"]]},{"id":"105a5789.51e418","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":867.6189193725586,"y":295.62739849090576,"z":"18647007.5f06e","wires":[[]]},{"id":"78541ec2.14876","type":"set","name":"set prop.cloud-region.cloud-owner","xml":"<set>\n<parameter name='prop.cloud-region.cloud-owner' value='`$vf-module-topology-operation-input.vf-module-request-input.cloud-owner`' />\n","comments":"","x":949.2855758666992,"y":337.2940797805786,"z":"18647007.5f06e","wires":[]},{"id":"8adaff9d.ffe82","type":"comment","name":"SELF-SERVE FORK","info":"","comments":"","x":929.9998931884766,"y":908.3334360122681,"z":"18647007.5f06e","wires":[]},{"id":"ae821284.ea3c7","type":"call","name":"call self-serve-vf-module-forking-logic","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-vf-module-forking-logic' mode='sync' >\n","comments":"","outputs":1,"x":587.3490371704102,"y":881.4886159896851,"z":"18647007.5f06e","wires":[[]]},{"id":"69ffa572.57fcfc","type":"switchNode","name":"switch ss.self-serve-flag","xml":"<switch test=\"`$ss.self-serve-flag`\">\n","comments":"","outputs":1,"x":545.7298965454102,"y":1009.2029423713684,"z":"18647007.5f06e","wires":[["c1005f53.215cb","9ffad06c.1ae2d"]]},{"id":"c1005f53.215cb","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":770.3963737487793,"y":1070.0596961975098,"z":"18647007.5f06e","wires":[["218fe261.ee2e0e"]]},{"id":"9ffad06c.1ae2d","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":768.444091796875,"y":947.2505326271057,"z":"18647007.5f06e","wires":[["cd77f2b1.29536"]]}]
\ No newline at end of file
+[\r
+    {\r
+        "id": "b1376276.19b7a",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 153.75,\r
+        "y": 73.75,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "7de7be4b.3d07e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7de7be4b.3d07e",\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": 269.03570556640625,\r
+        "y": 113.32144737243652,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "95fa486d.37e488"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "95fa486d.37e488",\r
+        "type": "method",\r
+        "name": "method vf-module-topology-operation-unassign",\r
+        "xml": "<method rpc='vf-module-topology-operation-unassign' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 275.84529876708984,\r
+        "y": 153.74999618530273,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "899e894a.a15b88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c7f5605f.01389",\r
+        "type": "comment",\r
+        "name": "vf-module-topology-operation-unassign",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 548.094856262207,\r
+        "y": 21.33634376525879,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b8d19f16.02d9",\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": 558.9404602050781,\r
+        "y": 370.94047355651855,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "a16d41de.fdf37",\r
+                "3b724a86.e852d6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a16d41de.fdf37",\r
+        "type": "outcome",\r
+        "name": "DeleteVfModuleInstance",\r
+        "xml": "<outcome value='DeleteVfModuleInstance'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 820.9880752563477,\r
+        "y": 348.08335971832275,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "f4130065.1b2d6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b724a86.e852d6",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 764.6547203063965,\r
+        "y": 393.4643487930298,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "86c9269e.57f0e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f4130065.1b2d6",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1010.8452396392822,\r
+        "y": 348.0833911895752,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "86c9269e.57f0e8",\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=\"If svc-action is 'deactivate' then request-action must be 'DeleteVfModuleInstance'\" />\n",\r
+        "comments": "",\r
+        "x": 1029.654727935791,\r
+        "y": 393.7976613044739,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "99d54dd7.bac17",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 181.36910247802734,\r
+        "y": 1465.6547031402588,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "be7c08d6.b7fa78",\r
+                "33647515.ff88ea",\r
+                "c0e122eb.07451",\r
+                "7c7a95cf.960aec",\r
+                "dfd06feb.ff6ed",\r
+                "739034c9.2b1aac",\r
+                "5878a219.db4e8c",\r
+                "59360709.c66608",\r
+                "858b4f7.87351b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ed32804a.e1a1f",\r
+        "type": "set",\r
+        "name": "set vnf-index to -1",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='-1' />\n",\r
+        "comments": "",\r
+        "x": 554.4642562866211,\r
+        "y": 446.84514808654785,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2837eda.666b812",\r
+        "type": "switchNode",\r
+        "name": "switch order-status",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 558.0357437133789,\r
+        "y": 1268.9880828857422,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "8a2f7c28.f48a4",\r
+                "cc7bf29.51df51"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8a2f7c28.f48a4",\r
+        "type": "outcome",\r
+        "name": "Created",\r
+        "xml": "<outcome value='Created'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 733.8691139221191,\r
+        "y": 1231.4881148338318,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "dbdbf33c.f14c2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cc7bf29.51df51",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 733.0357322692871,\r
+        "y": 1288.9880657196045,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "e72b13ca.99788"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dbdbf33c.f14c2",\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=\"Order status must not be Created\" />\n",\r
+        "comments": "",\r
+        "x": 902.2023544311523,\r
+        "y": 1231.4880442619324,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e72b13ca.99788",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 908.0357437133789,\r
+        "y": 1288.6547412872314,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "33647515.ff88ea",\r
+        "type": "update",\r
+        "name": "update EIPAM_IP_ASSIGNMENTS to PENDING_DELETE...",\r
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id\" >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 684.7024688720703,\r
+        "y": 1385.654733657837,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "8e4f49fb.bc44b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "be7c08d6.b7fa78",\r
+        "type": "set",\r
+        "name": "set status variable",\r
+        "xml": "<set>\n<parameter name='tmp.status' value=\"`'PENDING_DELETE_' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`\" />\n",\r
+        "comments": "",\r
+        "x": 554.7024383544922,\r
+        "y": 1338.9880657196045,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8e4f49fb.bc44b8",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 989.7023773193359,\r
+        "y": 1383.9880332946777,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "13abc175.87ad4f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "13abc175.87ad4f",\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 updating EIPAM_IP_ASSIGNMENTS table\" />\n",\r
+        "comments": "",\r
+        "x": 1179.7024040222168,\r
+        "y": 1383.7977685928345,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7c7a95cf.960aec",\r
+        "type": "execute",\r
+        "name": "execute EIPAM unassign IP addresses",\r
+        "xml": "<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"unassignIPAddress\">\n<parameter name=\"deleteEIPAM_status\" value=\"`$tmp.status`\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 618.0357666015625,\r
+        "y": 1480.6547546386719,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "3527442c.98799c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3527442c.98799c",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 854.702392578125,\r
+        "y": 1480.654697418213,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "6bf2e362.4819cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6bf2e362.4819cc",\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 in EIPAM unassign IP address\" />\n",\r
+        "comments": "",\r
+        "x": 1044.7024192810059,\r
+        "y": 1480.4644327163696,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c0e122eb.07451",\r
+        "type": "for",\r
+        "name": "for each vm-type",\r
+        "xml": "<for silentFailure='true' index='vm-type-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 549.7024230957031,\r
+        "y": 1525.654715538025,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "2a98414e.b2fd6e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2a98414e.b2fd6e",\r
+        "type": "for",\r
+        "name": "for each vm",\r
+        "xml": "<for silentFailure='true' index='vm-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 744.7024536132812,\r
+        "y": 1524.987723350525,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "b1136fdc.257c9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "37c4231.32254dc",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1451.3695220947266,\r
+        "y": 1523.3203258514404,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "8584cb05.406b38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "85031a7.a928fe8",\r
+        "type": "comment",\r
+        "name": "Not a failure",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1729.7025184631348,\r
+        "y": 1521.654128074646,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8584cb05.406b38",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID\"/>\n<parameter name=\"field3\" value=\"`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to insert VIPR_CONFIGURATION record\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1597.369457244873,\r
+        "y": 1523.3209590911865,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b1136fdc.257c9",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 913.0358467102051,\r
+        "y": 1523.9875679016113,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "a0575bd.48cada8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a0575bd.48cada8",\r
+        "type": "delete",\r
+        "name": "delete any records in VIPR_CONFIGURATION",\r
+        "xml": "<delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='DELETE from VIPR_CONFIGURATION WHERE vnf_id = $service-data.vnfs.vnf[$vnf-index].vnf-id\n     AND ecomp_service_instance_id = $service-data.service-information.service-instance-id\n     AND vm_name = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1199.7025604248047,\r
+        "y": 1523.6549978256226,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "37c4231.32254dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2f60d84c.fb5928",\r
+        "type": "comment",\r
+        "name": "Remove VF Module from service data",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 654.0357360839844,\r
+        "y": 2706.2263040542603,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3813429f.be706e",\r
+        "type": "switchNode",\r
+        "name": "switch 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": 721.4681549072266,\r
+        "y": 2762.3295345306396,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "7c4378ea.a15b28",\r
+                "532c6a72.d9fff4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7c4378ea.a15b28",\r
+        "type": "outcome",\r
+        "name": "1",\r
+        "xml": "<outcome value='1'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 935.1349182128906,\r
+        "y": 2666.5673971176147,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "494887d.7d6dc78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "494887d.7d6dc78",\r
+        "type": "set",\r
+        "name": "Remove vf modules",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.\" value=\"\"/>\n\n",\r
+        "comments": "",\r
+        "x": 1107.1346893310547,\r
+        "y": 2666.5675163269043,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "532c6a72.d9fff4",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 935.4682159423828,\r
+        "y": 2856.662570953369,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "eef5a74e.f28dd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dd2d4dd2.91285",\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": 694.0357666015625,\r
+        "y": 2938.845157623291,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "dfd06feb.ff6ed",\r
+        "type": "set",\r
+        "name": "set service-type",\r
+        "xml": "<set>\n<parameter name='service-data.service-information.service-type' value='`$service-data.service-information.subscription-service-type`' />\n",\r
+        "comments": "EIPAM plug-in needs this attribute set with this name",\r
+        "x": 546.3690795898438,\r
+        "y": 1431.5743961334229,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "370b0e3d.3ff8b2",\r
+        "type": "switchNode",\r
+        "name": "switch 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": 1568.5356903076172,\r
+        "y": 1842.7411737442017,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "5ba8b449.8e391c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5ba8b449.8e391c",\r
+        "type": "outcome",\r
+        "name": "1",\r
+        "xml": "<outcome value='1'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1752.8213958740234,\r
+        "y": 1842.7411603927612,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "aa8c9f37.4bce"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e11fc780.b18798",\r
+        "type": "update",\r
+        "name": "update EIPAM_IP_ASSIGNMENTS to PENDING_DELETE...",\r
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $aai.instance-group.instance-group[$ig-index].id\" >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2182.8213500976562,\r
+        "y": 1842.5508184432983,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f93d876b.e7d198",\r
+        "type": "set",\r
+        "name": "set status variable",\r
+        "xml": "<set>\n<parameter name='tmp.status' value=\"`'PENDING_DELETE_' + $aai.instance-group.instance-group[$ig-index].id`\" />\n",\r
+        "comments": "",\r
+        "x": 2052.8213119506836,\r
+        "y": 1795.8841905593872,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4ad69f8c.fd9c",\r
+        "type": "execute",\r
+        "name": "execute EIPAM unassign IP addresses",\r
+        "xml": "<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"unassignIPAddress\">\n<parameter name=\"deleteEIPAM_status\" value=\"`$tmp.status`\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2117.821319580078,\r
+        "y": 1887.550862312317,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "dd83f99f.5833e8",\r
+        "type": "comment",\r
+        "name": "roll back EIPAM floating addresses",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 2162.1070404052734,\r
+        "y": 1749.6940167744951,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "739034c9.2b1aac",\r
+        "type": "switchNode",\r
+        "name": "switch network-instance-group-function",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 616.3691024780273,\r
+        "y": 1658.2411069869995,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "a7739829.bdaca8",\r
+                "e35d14ad.4989f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a7739829.bdaca8",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 841.3690719604492,\r
+        "y": 1626.5744400024414,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "4ed1de62.95a2a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e35d14ad.4989f8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 841.1309356689453,\r
+        "y": 1697.5268354415894,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "4c983dc2.77aa64"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4ed1de62.95a2a",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 968.0358085632324,\r
+        "y": 1624.907772064209,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "4c983dc2.77aa64",\r
+        "type": "get-resource",\r
+        "name": "get-resource instance group",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n  resource=\"instance-groups\" \n  key=\"instance-group.instance-group-function = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function\n    AND instance-group.instance-group-type = 'L3-NETWORK'\"\n  pfx='aai.instance-group' local-only='false' >\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1037.202491760254,\r
+        "y": 1696.5744123458862,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "ddac01f.3923f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ddac01f.3923f",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1238.8691215515137,\r
+        "y": 1697.4077863693237,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "7a32823c.a674bc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7107e45f.25e14c",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1388.8691101074219,\r
+        "y": 1895.741319656372,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "370b0e3d.3ff8b2",\r
+                "d7a2d2c6.caa96"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aa8c9f37.4bce",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1878.8690299987793,\r
+        "y": 1842.4078741073608,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "f93d876b.e7d198",\r
+                "e11fc780.b18798",\r
+                "4ad69f8c.fd9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d7a2d2c6.caa96",\r
+        "type": "for",\r
+        "name": "for each network-instance-group",\r
+        "xml": "<for index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1588.869041442871,\r
+        "y": 1950.7412090301514,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "612f4ca4.68c134"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "612f4ca4.68c134",\r
+        "type": "switchNode",\r
+        "name": "network-instance-group-ids match?",\r
+        "xml": "<switch test='`$aai.instance-group.instance-group[$ig-index].id\n  == $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1893.868881225586,\r
+        "y": 1950.7412548065186,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "829c6209.93b3d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "829c6209.93b3d",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2115.5356521606445,\r
+        "y": 1949.4080333709717,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "d2319297.5eefb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d2319297.5eefb",\r
+        "type": "for",\r
+        "name": "for each network",\r
+        "xml": "<for index='network-index' start='0' end='`$service-data.network-instance-groups.network-instance-group[$nig-index].networks.network_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2271.249988555908,\r
+        "y": 1948.1221590042114,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "adc6d40c.0d2aa8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "adc6d40c.0d2aa8",\r
+        "type": "set",\r
+        "name": "clear vlan-tag-id and set network-status to unassigned",\r
+        "xml": "<set>\n<parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].vlan-tag-id'\n  value='' />\n<parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].network-status'\n  value='unassigned' />\n",\r
+        "comments": "",\r
+        "x": 2582.678421020508,\r
+        "y": 1946.693621635437,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7a32823c.a674bc",\r
+        "type": "for",\r
+        "name": "for each returned instance-group",\r
+        "xml": "<for index='ig-index' start='0' end='`$aai.instance-group.instance-group_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1462.369125366211,\r
+        "y": 1694.407790184021,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "7f3d0cd9.9335a4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7f3d0cd9.9335a4",\r
+        "type": "for",\r
+        "name": "for each relationship",\r
+        "xml": "<for index='rel-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1714.0357666015625,\r
+        "y": 1693.4077892303467,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "e7616a37.994598"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e7616a37.994598",\r
+        "type": "for",\r
+        "name": "for each relationship-data",\r
+        "xml": "<for index='reldata-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1940.7024383544922,\r
+        "y": 1692.7411632537842,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "5e1c0be4.f2c024"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5e1c0be4.f2c024",\r
+        "type": "switchNode",\r
+        "name": "switch relationship-key == service-instance.service-instance-id",\r
+        "xml": "<switch test=\"`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-key\n  == 'service-instance.service-instance-id'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2299.0360260009766,\r
+        "y": 1692.7410821914673,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "8aa0de51.9fee1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8aa0de51.9fee1",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2595.7024841308594,\r
+        "y": 1692.741114616394,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "5d06f26a.4726bc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5d06f26a.4726bc",\r
+        "type": "switchNode",\r
+        "name": "switch relationship-value == this service-instance-id",\r
+        "xml": "<switch test='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-value\n  == $service-data.service-information.service-instance-id`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2860.702308654785,\r
+        "y": 1692.741084098816,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "acfd65c3.377028"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "acfd65c3.377028",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3120.702278137207,\r
+        "y": 1692.7410745620728,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "7107e45f.25e14c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5878a219.db4e8c",\r
+        "type": "for",\r
+        "name": "for each vm-type",\r
+        "xml": "<for silentFailure='true' index='vm-type-index' start='0'\n  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 557.2024383544922,\r
+        "y": 2261.4879655838013,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "5c388a57.8451f4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "74f3496a.11f5e8",\r
+        "type": "for",\r
+        "name": "for each vnfc",\r
+        "xml": "<for silentFailure='true' index='vnfc-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 908.8692054748535,\r
+        "y": 2355.8692111968994,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "6e31430a.e7046c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "db59b482.778a68",\r
+        "type": "save",\r
+        "name": "delete vnfc in A&AI",\r
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vnfc\"\n   key=\"vnfc.vnfc-name = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1220.2977104187012,\r
+        "y": 2398.39275932312,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a3b5957.afe4668",\r
+        "type": "comment",\r
+        "name": "check removed with US622450",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1112.3214569091797,\r
+        "y": 1258.955403804779,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ba151b16.c9aed8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1516.368709564209,\r
+        "y": 2345.654547691345,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "65b58039.7e2b7",\r
+                "f646ff88.473e7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f646ff88.473e7",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:naming-policy-generate-name",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1828.6544456481934,\r
+        "y": 2370.226065635681,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "65b58039.7e2b7",\r
+        "type": "set",\r
+        "name": "set variables for deleting VNFC name",\r
+        "xml": "<set>\n<parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`' />\n<parameter name='naming-policy-generate-name-input.vm-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vnfc-index]`' />\n<parameter name='naming-policy-generate-name-input.action' value='DELETE' />\n",\r
+        "comments": "",\r
+        "x": 1748.4164009094238,\r
+        "y": 2323.0831356048584,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5760ffaf.f2c0b",\r
+        "type": "switchNode",\r
+        "name": "switch vnfc-name",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1216.7023811340332,\r
+        "y": 2318.987804412842,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "e34267dd.8616f8",\r
+                "c505b4ad.08ec78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e34267dd.8616f8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1386.7023582458496,\r
+        "y": 2288.987837791443,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "a953cb8a.ae16d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c505b4ad.08ec78",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1386.7023162841797,\r
+        "y": 2345.1783514022827,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "ba151b16.c9aed8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a953cb8a.ae16d8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1516.7022018432617,\r
+        "y": 2287.321189880371,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d1fd43a0.c5972",\r
+        "type": "comment",\r
+        "name": "Rollback any generated VM and VNFC names",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 605.035514831543,\r
+        "y": 2213.9879760742188,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5c388a57.8451f4",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 721.1066665649414,\r
+        "y": 2261.8932523727417,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "658e7b54.c4ae14",\r
+                "74f3496a.11f5e8",\r
+                "80a95d2.4a1e6a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "658e7b54.c4ae14",\r
+        "type": "for",\r
+        "name": "for each vm-name",\r
+        "xml": "<for silentFailure='true' index='vm-name-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 929.4399032592773,\r
+        "y": 2181.893494606018,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "715a9489.5a448c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "715a9489.5a448c",\r
+        "type": "switchNode",\r
+        "name": "switch vm-name",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-name-index]`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1124.4399490356445,\r
+        "y": 2183.560133934021,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "e42ca586.c51bb8",\r
+                "1036f257.67822e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e42ca586.c51bb8",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1277.7732620239258,\r
+        "y": 2155.226799964905,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "d2cff0c6.47fcb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d2cff0c6.47fcb",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1407.773105621338,\r
+        "y": 2153.560152053833,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f381303a.a670f",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1409.4400100708008,\r
+        "y": 2213.560112953186,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "b0dc6051.1f8f1",\r
+                "df5d3e87.b20c4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1036f257.67822e",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1279.7736167907715,\r
+        "y": 2213.0839166641235,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "f381303a.a670f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "df5d3e87.b20c4",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:naming-policy-generate-name",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1709.4398880004883,\r
+        "y": 2238.560112953186,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b0dc6051.1f8f1",\r
+        "type": "set",\r
+        "name": "set variables for deleting VM name",\r
+        "xml": "<set>\n<parameter name='naming-policy-generate-name-input.naming-type' value='VM' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`' />\n<parameter name='naming-policy-generate-name-input.action' value='DELETE' />\n",\r
+        "comments": "",\r
+        "x": 1624.2017822265625,\r
+        "y": 2191.4171447753906,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6e31430a.e7046c",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1056.3691139221191,\r
+        "y": 2354.654592514038,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "5760ffaf.f2c0b",\r
+                "db59b482.778a68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "59360709.c66608",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-name",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 569.7024002075195,\r
+        "y": 2052.321430206299,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "d70ace55.0e268",\r
+                "7a1e6069.0b283"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d70ace55.0e268",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 746.369026184082,\r
+        "y": 2078.1546630859375,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "6ae7c451.d31f5c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a1e6069.0b283",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 748.4642868041992,\r
+        "y": 2026.9405679702759,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "bec41233.959f6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bec41233.959f6",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 871.0357055664062,\r
+        "y": 2025.3214282989502,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6ae7c451.d31f5c",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 893.3689918518066,\r
+        "y": 2078.654703140259,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "11d19708.2605d9",\r
+                "1c96b59.8b9804a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1c96b59.8b9804a",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:naming-policy-generate-unique-name",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-unique-name' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1243.0356826782227,\r
+        "y": 2098.988037109375,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "11d19708.2605d9",\r
+        "type": "set",\r
+        "name": "set variables for deleting VF module name",\r
+        "xml": "<set>\n<parameter name='generate-unique-name-input.name-table-type' value='VF_MODULE_INSTANCE' />\n<parameter name='generate-unique-name-input.context-id' value='`$vf-module-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name='generate-unique-name-input.action' value='DELETE' />\n",\r
+        "comments": "",\r
+        "x": 1156.130615234375,\r
+        "y": 2054.7023277282715,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "80a95d2.4a1e6a",\r
+        "type": "for",\r
+        "name": "for each vm-network",\r
+        "xml": "<for silentFailure='true' index='network-role-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 933.0357284545898,\r
+        "y": 2493.9879322052,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "980c72c7.494c9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "980c72c7.494c9",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1122.8690490722656,\r
+        "y": 2493.487371444702,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "cf69a581.5413f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cf69a581.5413f8",\r
+        "type": "for",\r
+        "name": "for each vnfc",\r
+        "xml": "<for silentFailure='true' index='vnfc-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1276.8691101074219,\r
+        "y": 2492.154196739197,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "1fbaedb2.ea9ee2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1fbaedb2.ea9ee2",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1435.2024955749512,\r
+        "y": 2492.1541900634766,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "17e1ea1a.d384e6",\r
+                "909f2090.db662"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "17e1ea1a.d384e6",\r
+        "type": "for",\r
+        "name": "for each floating ipv4 address",\r
+        "xml": "<for silentFailure='true' index='ipv4-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1640.035514831543,\r
+        "y": 2461.3208141326904,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "6394face.442c04"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "909f2090.db662",\r
+        "type": "for",\r
+        "name": "for each floating ipv6 address",\r
+        "xml": "<for silentFailure='true' index='ipv6-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1640.7021102905273,\r
+        "y": 2518.3205738067627,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "84f82fa2.f216d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6394face.442c04",\r
+        "type": "delete",\r
+        "name": "delete vip-ipv4-address-list from A&AI",\r
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n   resource=\"vip-ipv4-address-list\" \n   key=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\n\t  AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\n\t  AND vip-ipv4-address-list.vip-ipv4-address = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]\" >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1944.035514831543,\r
+        "y": 2461.3208141326904,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "84f82fa2.f216d",\r
+        "type": "delete",\r
+        "name": "delete vip-ipv6-address-list from A&AI",\r
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n   resource=\"vip-ipv6-address-list\" \n   key=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\n\t  AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\n\t  AND vip-ipv6-address-list.vip-ipv6-address = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]\" >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1942.7021102905273,\r
+        "y": 2516.98744392395,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "899e894a.a15b88",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 219.7023696899414,\r
+        "y": 514.2887477874756,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "b8d19f16.02d9",\r
+                "ed32804a.e1a1f",\r
+                "89b50ae8.304b48",\r
+                "efe19694.cf14a8",\r
+                "dbf21792.0d5298",\r
+                "e4ce59e9.5f1898",\r
+                "abfb427b.7db89",\r
+                "a8421811.799508",\r
+                "49d11446.002fcc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "89b50ae8.304b48",\r
+        "type": "execute",\r
+        "name": "execute PropertiesNode",\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": 569.9404449462891,\r
+        "y": 219.70235919952393,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "efe19694.cf14a8",\r
+        "type": "switchNode",\r
+        "name": "switch input cloud-owner",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.vf-module-request-input.cloud-owner`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 571.6070175170898,\r
+        "y": 290.0589847564697,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "2032739b.f3a73c",\r
+                "ff58ea7d.ed47d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2032739b.f3a73c",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 754.9403915405273,\r
+        "y": 260.05897331237793,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "3b19e144.46d70e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ff58ea7d.ed47d8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 754.7022972106934,\r
+        "y": 301.01146697998047,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "a2e4951.0f1b868"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b19e144.46d70e",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 889.9403457641602,\r
+        "y": 258.39231300354004,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a2e4951.0f1b868",\r
+        "type": "set",\r
+        "name": "set prop.cloud-region.cloud-owner",\r
+        "xml": "<set>\n<parameter name='prop.cloud-region.cloud-owner' value='`$vf-module-topology-operation-input.vf-module-request-input.cloud-owner`' />\n",\r
+        "comments": "",\r
+        "x": 971.6070022583008,\r
+        "y": 300.0589942932129,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "dbf21792.0d5298",\r
+        "type": "switchNode",\r
+        "name": "switch service-data.vnfs.vnf_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 611.25,\r
+        "y": 516.25,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "e305ef89.1e18e",\r
+                "29032343.b8eb2c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e305ef89.1e18e",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 851.9642715454102,\r
+        "y": 493.3927402496338,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "ac34ef76.dbb8b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "29032343.b8eb2c",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 851.7261123657227,\r
+        "y": 534.3452587127686,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "4d389e13.b5d61"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4d389e13.b5d61",\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": 1013.9642562866211,\r
+        "y": 534.0118770599365,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "3cfeeac7.22cf66"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3cfeeac7.22cf66",\r
+        "type": "switchNode",\r
+        "name": "switch service data vnf == input vnf",\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": 1265.2974739074707,\r
+        "y": 533.6785640716553,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "8a49adca.71697"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8a49adca.71697",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1495.297565460205,\r
+        "y": 533.0119180679321,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "6824cd21.d641d4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6afedd28.dd1d04",\r
+        "type": "set",\r
+        "name": "set vnf-index to idx",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1816.9642028808594,\r
+        "y": 504.0118761062622,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e4ce59e9.5f1898",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-index",\r
+        "xml": "<switch test='`$vnf-index`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 550.2976303100586,\r
+        "y": 584.3451957702637,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "dbce9105.cee94"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dbce9105.cee94",\r
+        "type": "outcome",\r
+        "name": "-1",\r
+        "xml": "<outcome value='-1'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 728.6310157775879,\r
+        "y": 583.6785717010498,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "2c771b68.925e04"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6824cd21.d641d4",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1643.6310272216797,\r
+        "y": 531.9316167831421,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "6afedd28.dd1d04",\r
+                "cde0307.04f64d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cde0307.04f64d",\r
+        "type": "break",\r
+        "name": "break",\r
+        "xml": "<break>\n",\r
+        "comments": "",\r
+        "x": 1778.6309928894043,\r
+        "y": 553.5982027053833,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a8421811.799508",\r
+        "type": "for",\r
+        "name": "for each vf-module",\r
+        "xml": "<for silentFailure='true' index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 562.297607421875,\r
+        "y": 692.3452224731445,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "297d0391.8efebc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "297d0391.8efebc",\r
+        "type": "switchNode",\r
+        "name": "switch service data vf-module == input vf-module",\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": 868.6307678222656,\r
+        "y": 692.0119581222534,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "b0f6d863.2828c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b0f6d863.2828c8",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1138.6308212280273,\r
+        "y": 689.678563117981,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "6f6e1b3e.330ad4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "abfb427b.7db89",\r
+        "type": "set",\r
+        "name": "set vf-module-index to -1",\r
+        "xml": "<set>\n<parameter name='vf-module-index' value='-1' />\n",\r
+        "comments": "",\r
+        "x": 575.2975997924805,\r
+        "y": 636.0118446350098,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "dbc23243.91781",\r
+        "type": "set",\r
+        "name": "set vf-module-index to idx",\r
+        "xml": "<set>\n<parameter name='vf-module-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1468.6309127807617,\r
+        "y": 660.678542137146,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "49d11446.002fcc",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-index",\r
+        "xml": "<switch test='`$vf-module-index`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 571.9643173217773,\r
+        "y": 774.3452033996582,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "94c2cc90.d7c67",\r
+                "2b442f49.22e12"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "94c2cc90.d7c67",\r
+        "type": "outcome",\r
+        "name": "-1",\r
+        "xml": "<outcome value='-1'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 746.96435546875,\r
+        "y": 752.0119342803955,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "4fb6a202.51b5ec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6f6e1b3e.330ad4",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1271.9643630981445,\r
+        "y": 688.5983028411865,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "dbc23243.91781",\r
+                "e2ba61fd.88025"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e2ba61fd.88025",\r
+        "type": "break",\r
+        "name": "break",\r
+        "xml": "<break>\n",\r
+        "comments": "",\r
+        "x": 1406.9643287658691,\r
+        "y": 710.2648887634277,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "603196d.f2e4768",\r
+        "type": "call",\r
+        "name": "call self-serve-vf-module-unassign",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='self-serve-vf-module-unassign' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1539.7975006103516,\r
+        "y": 898.5864009857178,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "df597e81.6e9d5",\r
+                "c5575003.8a646"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "df597e81.6e9d5",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1784.5474853515625,\r
+        "y": 898.836389541626,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "a1670d6c.ed7bf"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a1670d6c.ed7bf",\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 while unassigning self-serve vf-moldule esources with error: '+ $error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 1950.118911743164,\r
+        "y": 898.479284286499,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c5575003.8a646",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1789.1546592712402,\r
+        "y": 949.391923904419,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "858b4f7.87351b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "74ee7664.954418",\r
+        "type": "comment",\r
+        "name": "SELF-SERVE FORK",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1559.154670715332,\r
+        "y": 860.2650318145752,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9ecd70ab.5a23b",\r
+        "type": "call",\r
+        "name": "call self-serve-vf-module-forking-logic",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='self-serve-vf-module-forking-logic' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1120.5037994384766,\r
+        "y": 833.4202389717102,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "4e852bb2.f601e4",\r
+        "type": "switchNode",\r
+        "name": "switch ss.self-serve-flag",\r
+        "xml": "<switch test=\"`$ss.self-serve-flag`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1078.8846588134766,\r
+        "y": 961.1345653533936,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "b3e2a3f2.f065e",\r
+                "fdb1470f.907b58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b3e2a3f2.f065e",\r
+        "type": "outcomeFalse",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1303.5511360168457,\r
+        "y": 1021.9913191795349,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "99d54dd7.bac17"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fdb1470f.907b58",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1301.5988540649414,\r
+        "y": 899.1821556091309,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "603196d.f2e4768"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4fb6a202.51b5ec",\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",\r
+        "comments": "",\r
+        "x": 897.9166984558105,\r
+        "y": 750.5029640197754,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2b442f49.22e12",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 746.2500495910645,\r
+        "y": 798.8363151550293,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "2f3217af.e4bc58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2f3217af.e4bc58",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 859.5833129882812,\r
+        "y": 900.5030097961426,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "9ecd70ab.5a23b",\r
+                "4e852bb2.f601e4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ac34ef76.dbb8b",\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",\r
+        "comments": "",\r
+        "x": 1006.0118713378906,\r
+        "y": 493.3601493835449,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2c771b68.925e04",\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",\r
+        "comments": "",\r
+        "x": 882.6785583496094,\r
+        "y": 583.3601493835449,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "858b4f7.87351b",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 501.6666717529297,\r
+        "y": 2761.6668910980225,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "3813429f.be706e",\r
+                "dd2d4dd2.91285"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "28df9967.9df256",\r
+        "type": "for",\r
+        "name": "for each vf module",\r
+        "xml": "<for index='idx' start='`$vf-module-index + 1`' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1346.6665649414062,\r
+        "y": 2799.9999980926514,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "6f3d3130.57afd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "50c34629.2df598",\r
+        "type": "set",\r
+        "name": "set tmpidx",\r
+        "xml": "<set>\n<parameter name=\"tmpidx\" value=\"`$idx - 1`\"/>\n",\r
+        "comments": "",\r
+        "x": 1706.5909271240234,\r
+        "y": 2760.6906309127808,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d58ca164.6a90c",\r
+        "type": "set",\r
+        "name": "set new vf module length",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length\" value=\"`$lastidx`\"/>\n\n\t\n",\r
+        "comments": "",\r
+        "x": 1365.554100036621,\r
+        "y": 2927.72247505188,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "78c411a4.44c59",\r
+        "type": "set",\r
+        "name": "Remove the last vf module in the list",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lastidx].\" value=\"\"/>\n",\r
+        "comments": "",\r
+        "x": 1401.257713317871,\r
+        "y": 2883.8336124420166,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "eef5a74e.f28dd8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1114.1625366210938,\r
+        "y": 2856.24608707428,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "28df9967.9df256",\r
+                "78c411a4.44c59",\r
+                "d58ca164.6a90c",\r
+                "fe410b04.6fd318"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fe410b04.6fd318",\r
+        "type": "set",\r
+        "name": "set lastidx",\r
+        "xml": "<set>\n<parameter name='lastidx' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length - 1`' />\n",\r
+        "comments": "EIPAM plug-in needs this attribute set with this name",\r
+        "x": 1319.3968811035156,\r
+        "y": 2840.238311767578,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6f3d3130.57afd",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1532.3016510009766,\r
+        "y": 2799.872272491455,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": [\r
+            [\r
+                "50c34629.2df598",\r
+                "c39ae3a3.509e4",\r
+                "d83d8b04.2f5018"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c39ae3a3.509e4",\r
+        "type": "set",\r
+        "name": "copy vf module down",\r
+        "xml": "<set>\n<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmpidx].\" value=\"$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].\" />\n\t\n",\r
+        "comments": "",\r
+        "x": 1737.9681205749512,\r
+        "y": 2846.5390224456787,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d83d8b04.2f5018",\r
+        "type": "set",\r
+        "name": "erase entry at tmpidx",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmpidx].' value='' />\n",\r
+        "comments": "",\r
+        "x": 1739.6349906921387,\r
+        "y": 2803.205931663513,\r
+        "z": "2b0e89c2.6d8016",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
index 7476b03..72f6681 100644 (file)
-[
-    {
-        "id": "8760ee4d.bacba",
-        "type": "dgstart",
-        "name": "DGSTART",
-        "outputs": 1,
-        "x": 121.25,
-        "y": 101.16365623474121,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "a9ae8cec.2004d"
-            ]
-        ]
-    },
-    {
-        "id": "a9ae8cec.2004d",
-        "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": 235.53570556640625,
-        "y": 141.4017677307129,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "3dac1de6.47703a"
-            ]
-        ]
-    },
-    {
-        "id": "3dac1de6.47703a",
-        "type": "method",
-        "name": "method vnf-topology-operation-unassign",
-        "xml": "<method rpc='vnf-topology-operation-unassign' mode='sync'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 217.67862701416016,
-        "y": 181.1636562347412,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "8aa731f2.f78648"
-            ]
-        ]
-    },
-    {
-        "id": "287c593d.cb7aa6",
-        "type": "comment",
-        "name": "vnf-topology-operation-unassign",
-        "info": "",
-        "comments": "",
-        "x": 515.594856262207,
-        "y": 48.75,
-        "z": "b679ce73.4725c",
-        "wires": []
-    },
-    {
-        "id": "da8ed21c.290538",
-        "type": "switchNode",
-        "name": "switch request-action",
-        "xml": "<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 524.773811340332,
-        "y": 280.0207939147949,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "50a65b42.041c0c",
-                "85a5b069.51ff2"
-            ]
-        ]
-    },
-    {
-        "id": "50a65b42.041c0c",
-        "type": "outcome",
-        "name": "DeleteVnfInstance",
-        "xml": "<outcome value='DeleteVnfInstance'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 778.4881057739258,
-        "y": 257.16367530822754,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "93688742.285b9"
-            ]
-        ]
-    },
-    {
-        "id": "85a5b069.51ff2",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 740.4880714416504,
-        "y": 302.87800312042236,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "bfa2ad9d.0bdb1"
-            ]
-        ]
-    },
-    {
-        "id": "93688742.285b9",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 963.3452339172363,
-        "y": 257.16370487213135,
-        "z": "b679ce73.4725c",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "bfa2ad9d.0bdb1",
-        "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=\"If svc-action is 'deactivate' then request-action must be 'DeleteVnfInstance'\" />\n",
-        "comments": "",
-        "x": 980.4880790710449,
-        "y": 302.87796115875244,
-        "z": "b679ce73.4725c",
-        "wires": []
-    },
-    {
-        "id": "8aa731f2.f78648",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 199.58333587646484,
-        "y": 574.4969902038574,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "da8ed21c.290538",
-                "9b073e31.2b9548",
-                "d811a825.e4506",
-                "230a1984.7eb2de",
-                "1570abd0.28319c",
-                "91a3386a.faef3",
-                "12606f3f.12bf41",
-                "a2ededb3.20eb68"
-            ]
-        ]
-    },
-    {
-        "id": "9b073e31.2b9548",
-        "type": "switchNode",
-        "name": "switch vnf_length",
-        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 511.24998474121094,
-        "y": 349.49701976776123,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "835264a.de01c98"
-            ]
-        ]
-    },
-    {
-        "id": "835264a.de01c98",
-        "type": "other",
-        "name": "NULL",
-        "xml": "<outcome value=''>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 697.9166641235352,
-        "y": 348.8303174972534,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "43688a60.e15ccc"
-            ]
-        ]
-    },
-    {
-        "id": "43688a60.e15ccc",
-        "type": "returnFailure",
-        "name": "return failure",
-        "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",
-        "comments": "",
-        "x": 879.5832901000977,
-        "y": 348.8303174972534,
-        "z": "b679ce73.4725c",
-        "wires": []
-    },
-    {
-        "id": "230a1984.7eb2de",
-        "type": "for",
-        "name": "for each vnf",
-        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 492.91666412353516,
-        "y": 397.83033752441406,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "11f49056.b848d"
-            ]
-        ]
-    },
-    {
-        "id": "11f49056.b848d",
-        "type": "switchNode",
-        "name": "switch this vnf-id == input vnf-id",
-        "xml": "<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 747.9167518615723,
-        "y": 396.4970054626465,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "2be53867.ef76e8"
-            ]
-        ]
-    },
-    {
-        "id": "2be53867.ef76e8",
-        "type": "outcomeTrue",
-        "name": "true",
-        "xml": "<outcome value='true'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 986.2500381469727,
-        "y": 395.4969835281372,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "e4f701ed.1bfb3"
-            ]
-        ]
-    },
-    {
-        "id": "e4f701ed.1bfb3",
-        "type": "set",
-        "name": "set vnf-index",
-        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",
-        "comments": "",
-        "x": 1154.5832328796387,
-        "y": 395.4970054626465,
-        "z": "b679ce73.4725c",
-        "wires": []
-    },
-    {
-        "id": "1570abd0.28319c",
-        "type": "switchNode",
-        "name": "switch vnf-index",
-        "xml": "<switch test='`$vnf-index`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 504.5833282470703,
-        "y": 444.4970073699951,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "29a81e7f.f25dfa"
-            ]
-        ]
-    },
-    {
-        "id": "29a81e7f.f25dfa",
-        "type": "other",
-        "name": "NULL",
-        "xml": "<outcome value=''>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 686.2499465942383,
-        "y": 443.83033752441406,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "f6710847.bb5d"
-            ]
-        ]
-    },
-    {
-        "id": "f6710847.bb5d",
-        "type": "returnFailure",
-        "name": "return failure",
-        "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=\"'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'\" />\n",
-        "comments": "",
-        "x": 852.916633605957,
-        "y": 443.49696350097656,
-        "z": "b679ce73.4725c",
-        "wires": []
-    },
-    {
-        "id": "8ffa54f2.b78158",
-        "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": 1154.3770751953125,
-        "y": 1079.0205762386322,
-        "z": "b679ce73.4725c",
-        "wires": []
-    },
-    {
-        "id": "54c41547.567a8c",
-        "type": "for",
-        "name": "for each vnf",
-        "xml": "<for index='idx' start='`$vnf-index + 1`' end='`$service-data.vnfs.vnf_length`' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1674.8546524047852,
-        "y": 824.576345205307,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "c8a587bb.5748d8"
-            ]
-        ]
-    },
-    {
-        "id": "3f28287f.120ca",
-        "type": "comment",
-        "name": "Remove VNF from service data",
-        "info": "",
-        "comments": "",
-        "x": 1117.0134201049805,
-        "y": 783.1479976177216,
-        "z": "b679ce73.4725c",
-        "wires": []
-    },
-    {
-        "id": "c8a587bb.5748d8",
-        "type": "set",
-        "name": "move vnf to remove one",
-        "xml": "<set>\n\t<parameter name=\"$tmpidx\" value=\"`$idx - 1`\"/>\n\t<parameter name=\"service-data.vnfs.vnf[$tmpidx].\" value=\"$service-data.vnfs.vnf[$idx].\" />\n\t\n",
-        "comments": "",
-        "x": 1908.445785522461,
-        "y": 823.6002967357635,
-        "z": "b679ce73.4725c",
-        "wires": []
-    },
-    {
-        "id": "c879ce9c.9d72a",
-        "type": "switchNode",
-        "name": "switch vnf_length",
-        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1161.1125144958496,
-        "y": 826.155974149704,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "9f8acc10.c48f28",
-                "901a2ab8.48409"
-            ]
-        ]
-    },
-    {
-        "id": "9f8acc10.c48f28",
-        "type": "outcome",
-        "name": "1",
-        "xml": "<outcome value='1'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1338.1125564575195,
-        "y": 786.8225610256195,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "4a1274f6.357d5c"
-            ]
-        ]
-    },
-    {
-        "id": "4a1274f6.357d5c",
-        "type": "set",
-        "name": "Remove vnfs",
-        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.\" value=\"\"/>\n\n",
-        "comments": "",
-        "x": 1501.779052734375,
-        "y": 786.8226602077484,
-        "z": "b679ce73.4725c",
-        "wires": []
-    },
-    {
-        "id": "901a2ab8.48409",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1339.6364479064941,
-        "y": 867.298700094223,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "209c0646.4c650a"
-            ]
-        ]
-    },
-    {
-        "id": "cd8767d7.87479",
-        "type": "set",
-        "name": "set new vnf length",
-        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf_length\" value=\"`$service-data.vnfs.vnf_length - 1`\"/>\n\n\t\n",
-        "comments": "",
-        "x": 1694.4087409973145,
-        "y": 915.1559188365936,
-        "z": "b679ce73.4725c",
-        "wires": []
-    },
-    {
-        "id": "e2f2c18b.32612",
-        "type": "set",
-        "name": "Remove the last vnf in the list",
-        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$service-data.vnfs.vnf_length-1].\" value=\"\"/>\n\n",
-        "comments": "",
-        "x": 1730.1123962402344,
-        "y": 870.2669398784637,
-        "z": "b679ce73.4725c",
-        "wires": []
-    },
-    {
-        "id": "209c0646.4c650a",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 1505.4457893371582,
-        "y": 870.8224809169769,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "54c41547.567a8c",
-                "e2f2c18b.32612",
-                "cd8767d7.87479"
-            ]
-        ]
-    },
-    {
-        "id": "793a50a1.0d6658",
-        "type": "switchNode",
-        "name": "switch current vnf-level-oper-status == Created",
-        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status == 'Created'`\">\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 603.9166412353516,
-        "y": 490.1636772155762,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "33d47343.98cc6c"
-            ]
-        ]
-    },
-    {
-        "id": "33d47343.98cc6c",
-        "type": "outcomeFalse",
-        "name": "true",
-        "xml": "<outcome value='true'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 908.5833587646484,
-        "y": 489.8303165435791,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "6c7a81eb.1c4e68"
-            ]
-        ]
-    },
-    {
-        "id": "6c7a81eb.1c4e68",
-        "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=\"Cannot delete a VNF in a Created state\" />\n",
-        "comments": "",
-        "x": 1066.916633605957,
-        "y": 489.16364097595215,
-        "z": "b679ce73.4725c",
-        "wires": []
-    },
-    {
-        "id": "d811a825.e4506",
-        "type": "switchNode",
-        "name": "switch current vf-module_length",
-        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`\">\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 554.2499847412109,
-        "y": 576.1636428833008,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "973bc91a.8f52e8",
-                "d0ced9dc.3f8238",
-                "2b82476d.deb568"
-            ]
-        ]
-    },
-    {
-        "id": "973bc91a.8f52e8",
-        "type": "outcome",
-        "name": "0",
-        "xml": "<outcome value='0'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 782.9166259765625,
-        "y": 532.8302841186523,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "cb334531.9a038"
-            ]
-        ]
-    },
-    {
-        "id": "d0ced9dc.3f8238",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 781.488037109375,
-        "y": 574.2589416503906,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "cb334531.9a038"
-            ]
-        ]
-    },
-    {
-        "id": "cb334531.9a038",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 930.0595512390137,
-        "y": 554.2589426040649,
-        "z": "b679ce73.4725c",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "2b82476d.deb568",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 781.4880867004395,
-        "y": 615.6875295639038,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "7cec3149.76d4d"
-            ]
-        ]
-    },
-    {
-        "id": "7cec3149.76d4d",
-        "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=\"Cannot delete the VNF because there are VFs defined\" />\n",
-        "comments": "",
-        "x": 948.6309814453125,
-        "y": 615.2589178085327,
-        "z": "b679ce73.4725c",
-        "wires": []
-    },
-    {
-        "id": "88d07f29.c5dc6",
-        "type": "call",
-        "name": "call GENERIC-RESOURCE-API:naming-policy-generate-name",
-        "xml": "<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1302.5197067260742,
-        "y": 1022.7976253032684,
-        "z": "b679ce73.4725c",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "b74c2ae7.ae87a",
-        "type": "set",
-        "name": "set variables for deleting name",
-        "xml": "<set>\n<parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name='naming-policy-generate-name-input.action' value='DELETE' />\n",
-        "comments": "",
-        "x": 1203.9483261108398,
-        "y": 975.65469622612,
-        "z": "b679ce73.4725c",
-        "wires": []
-    },
-    {
-        "id": "8a7b5d97.e8b09",
-        "type": "comment",
-        "name": "check removed with US622450",
-        "info": "",
-        "comments": "",
-        "x": 1274.1070098876953,
-        "y": 488.75002670288086,
-        "z": "b679ce73.4725c",
-        "wires": []
-    },
-    {
-        "id": "484f70af.519a08",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 911.5357208251953,
-        "y": 908.7500398159027,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "c879ce9c.9d72a",
-                "b74c2ae7.ae87a",
-                "88d07f29.c5dc6",
-                "8ffa54f2.b78158"
-            ]
-        ]
-    },
-    {
-        "id": "91a3386a.faef3",
-        "type": "call",
-        "name": "call self-serve-vnf-forking-logic",
-        "xml": "<call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-forking-logic' mode='sync' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 548.3572998046875,
-        "y": 722.4999084472656,
-        "z": "b679ce73.4725c",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "12606f3f.12bf41",
-        "type": "switchNode",
-        "name": "switch ss.self-serve-flag",
-        "xml": "<switch test=\"`$ss.self-serve-flag`\">\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 518.3928833007812,
-        "y": 908.607127904892,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "69816793.5f1658",
-                "77171191.032938"
-            ]
-        ]
-    },
-    {
-        "id": "69816793.5f1658",
-        "type": "outcomeFalse",
-        "name": "false",
-        "xml": "<outcome value='false'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 734.3928833007812,
-        "y": 909.0357129573822,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "484f70af.519a08"
-            ]
-        ]
-    },
-    {
-        "id": "f6d24b45.0d4258",
-        "type": "call",
-        "name": "call self-serve-vnf-unassign",
-        "xml": "<call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-unassign' mode='sync' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 950.1071472167969,
-        "y": 1224.4642741680145,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "b5167dbe.7d8bf8",
-                "a7770dc.3f6cef"
-            ]
-        ]
-    },
-    {
-        "id": "b5167dbe.7d8bf8",
-        "type": "failure",
-        "name": "failure",
-        "xml": "<outcome value='failure'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1157.8571319580078,
-        "y": 1224.7142627239227,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "9c54474e.6dc798"
-            ]
-        ]
-    },
-    {
-        "id": "9c54474e.6dc798",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Encountered error while unassigning self-serve resources with error: '+ $error-message`\" />\n",
-        "comments": "",
-        "x": 1323.4285583496094,
-        "y": 1224.3571574687958,
-        "z": "b679ce73.4725c",
-        "wires": []
-    },
-    {
-        "id": "a7770dc.3f6cef",
-        "type": "success",
-        "name": "success",
-        "xml": "<outcome value='success'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1162.4643058776855,
-        "y": 1275.2697970867157,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "f989b85.ea14548"
-            ]
-        ]
-    },
-    {
-        "id": "f989b85.ea14548",
-        "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": 1331.0357208251953,
-        "y": 1274.8412387371063,
-        "z": "b679ce73.4725c",
-        "wires": []
-    },
-    {
-        "id": "77171191.032938",
-        "type": "outcomeTrue",
-        "name": "true",
-        "xml": "<outcome value='true'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 735.6785621643066,
-        "y": 1224.8928534984589,
-        "z": "b679ce73.4725c",
-        "wires": [
-            [
-                "f6d24b45.0d4258"
-            ]
-        ]
-    },
-    {
-        "id": "a2ededb3.20eb68",
-        "type": "get-resource",
-        "name": "get VF_MODEL.sdnc_model_name",
-        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODEL WHERE customization_uuid = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\n  pfx='db.vf-model'>",
-        "comments": "",
-        "outputs": 1,
-        "x": 563.75,
-        "y": 655,
-        "z": "b679ce73.4725c",
-        "wires": [
-            []
-        ]
-    }
+[\r
+    {\r
+        "id": "3bf0dc2d.c14a24",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 162.50001525878906,\r
+        "y": 72.41365623474121,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "b55ba40.7ee5d6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b55ba40.7ee5d6",\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": 276.7857208251953,\r
+        "y": 112.65176773071289,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "7d6aee59.8eda9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7d6aee59.8eda9",\r
+        "type": "method",\r
+        "name": "method vnf-topology-operation-unassign",\r
+        "xml": "<method rpc='vnf-topology-operation-unassign' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 258.9286422729492,\r
+        "y": 152.4136562347412,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "4d74d1bc.2ae89"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6fec93f5.86db2c",\r
+        "type": "comment",\r
+        "name": "vnf-topology-operation-unassign",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 556.8448715209961,\r
+        "y": 20,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9aaca2e2.beb78",\r
+        "type": "switchNode",\r
+        "name": "switch request-action",\r
+        "xml": "<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 509.77383041381836,\r
+        "y": 240.02079010009766,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "abd8c261.c46b3",\r
+                "d2221c3e.90c3f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "abd8c261.c46b3",\r
+        "type": "outcome",\r
+        "name": "DeleteVnfInstance",\r
+        "xml": "<outcome value='DeleteVnfInstance'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 730.1547660827637,\r
+        "y": 215.49699878692627,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "a6409d9.036606"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d2221c3e.90c3f",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 692.1547317504883,\r
+        "y": 261.2113265991211,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "306935db.f49bda"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a6409d9.036606",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 915.0118942260742,\r
+        "y": 215.49702835083008,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "306935db.f49bda",\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=\"If svc-action is 'deactivate' then request-action must be 'DeleteVnfInstance'\" />\n",\r
+        "comments": "",\r
+        "x": 932.1547393798828,\r
+        "y": 261.2112846374512,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4d74d1bc.2ae89",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 269.58336639404297,\r
+        "y": 303.2470169067383,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "9aaca2e2.beb78",\r
+                "4345ea8f.58f384"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4345ea8f.58f384",\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": 498.3333206176758,\r
+        "y": 359.49701499938965,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "728fa904.537908",\r
+                "23bd57ed.5c2f68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "728fa904.537908",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 682.9166831970215,\r
+        "y": 308.83031368255615,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "f32a75d4.e72c28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ea2e0eca.99875",\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": 1021.2500038146973,\r
+        "y": 388.49698543548584,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "ff75cb52.105748"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ff75cb52.105748",\r
+        "type": "switchNode",\r
+        "name": "switch this vnf-id == input vnf-id",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1276.2500915527344,\r
+        "y": 388.16365337371826,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "49e6f7a3.488758"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "49e6f7a3.488758",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1514.5833778381348,\r
+        "y": 387.163631439209,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "d7731519.ea37c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d7731519.ea37c8",\r
+        "type": "set",\r
+        "name": "set vnf-index",\r
+        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",\r
+        "comments": "",\r
+        "x": 1682.9165725708008,\r
+        "y": 387.16365337371826,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "59efadd9.34ff64",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-index",\r
+        "xml": "<switch test='`$vnf-index`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1031.2500114440918,\r
+        "y": 456.16367626190186,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "4275fe83.7bd96",\r
+                "d296558f.79c2f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4275fe83.7bd96",\r
+        "type": "other",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1214.5832862854004,\r
+        "y": 435.49698543548584,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "c8299496.706828"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e72eb007.b4761",\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": 2001.8175811767578,\r
+        "y": 1314.9729461669922,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ea9f2a97.ca1f08",\r
+        "type": "for",\r
+        "name": "for each vnf",\r
+        "xml": "<for index='idx' start='`$vnf-index + 1`' end='`$service-data.vnfs.vnf_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2601.8189582824707,\r
+        "y": 898.5644903182983,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "168141b9.a5a37e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f463cdaa.41559",\r
+        "type": "comment",\r
+        "name": "Remove VNF from service data",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1943.6204223632812,\r
+        "y": 862.3146209716797,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "97d940c.f7414c",\r
+        "type": "set",\r
+        "name": "move vnf to remove one",\r
+        "xml": "<set>\n<parameter name=\"service-data.vnfs.vnf[$tmpidx].\" value=\"$service-data.vnfs.vnf[$idx].\" />\n\t\n",\r
+        "comments": "",\r
+        "x": 2932.0769996643066,\r
+        "y": 935.9216842651367,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9db43d1a.80b5b",\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": 2030.5766677856445,\r
+        "y": 903.8940572738647,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "9205be14.b6c51",\r
+                "a23b009d.a038"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9205be14.b6c51",\r
+        "type": "outcome",\r
+        "name": "1",\r
+        "xml": "<outcome value='1'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2207.5767097473145,\r
+        "y": 864.5606441497803,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "80c57b23.9a7b78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "80c57b23.9a7b78",\r
+        "type": "set",\r
+        "name": "Remove vnfs",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.\" value=\"\"/>\n\n",\r
+        "comments": "",\r
+        "x": 2371.24320602417,\r
+        "y": 864.5607433319092,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a23b009d.a038",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2209.100601196289,\r
+        "y": 945.0367832183838,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "9a322bdb.0d3758"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "632aab75.bfd5f4",\r
+        "type": "set",\r
+        "name": "set new vnf length",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf_length\" value=\"`$service-data.vnfs.vnf_length - 1`\"/>\n\n\t\n",\r
+        "comments": "",\r
+        "x": 2621.373092651367,\r
+        "y": 1037.4774322509766,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cc9aa5c.d39c258",\r
+        "type": "set",\r
+        "name": "Remove the last vnf in the list",\r
+        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$service-data.vnfs.vnf_length - 1].\" value=\"\"/>\n\n",\r
+        "comments": "",\r
+        "x": 2657.076747894287,\r
+        "y": 992.5884532928467,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9a322bdb.0d3758",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2374.909942626953,\r
+        "y": 948.5605640411377,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "ea9f2a97.ca1f08",\r
+                "cc9aa5c.d39c258",\r
+                "632aab75.bfd5f4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "422a0307.b6e26c",\r
+        "type": "switchNode",\r
+        "name": "switch current 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": 1405.4999160766602,\r
+        "y": 677.8303089141846,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "cb71008a.a8f54",\r
+                "281b69c0.91b136",\r
+                "b3e6a6da.0a0b88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cb71008a.a8f54",\r
+        "type": "outcome",\r
+        "name": "0",\r
+        "xml": "<outcome value='0'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1634.1665573120117,\r
+        "y": 634.4969501495361,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "c599e4d6.59a018"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "281b69c0.91b136",\r
+        "type": "outcome",\r
+        "name": "NULL",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1632.7379684448242,\r
+        "y": 675.9256076812744,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "c599e4d6.59a018"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c599e4d6.59a018",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1781.309482574463,\r
+        "y": 655.9256086349487,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b3e6a6da.0a0b88",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1632.7380180358887,\r
+        "y": 717.3541955947876,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "46457f5b.3ef86"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46457f5b.3ef86",\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=\"Cannot delete the VNF because there are VF modules defined\" />\n",\r
+        "comments": "",\r
+        "x": 1799.8809127807617,\r
+        "y": 716.9255838394165,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1b063d0f.a0a6e3",\r
+        "type": "call",\r
+        "name": "call GENERIC-RESOURCE-API:naming-policy-generate-name",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2149.9602127075195,\r
+        "y": 1258.7499952316284,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "85b7a9d.afa5c58",\r
+        "type": "set",\r
+        "name": "set variables for deleting name",\r
+        "xml": "<set>\n<parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name='naming-policy-generate-name-input.action' value='DELETE' />\n",\r
+        "comments": "",\r
+        "x": 2051.388832092285,\r
+        "y": 1211.60706615448,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f601bfcd.e4487",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1765.6427841186523,\r
+        "y": 1094.7024116516113,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "9db43d1a.80b5b",\r
+                "85b7a9d.afa5c58",\r
+                "1b063d0f.a0a6e3",\r
+                "e72eb007.b4761"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9f240acf.f10968",\r
+        "type": "call",\r
+        "name": "call self-serve-vnf-forking-logic",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-forking-logic' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1389.7857284545898,\r
+        "y": 904.7023048400879,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c939b04c.c627d",\r
+        "type": "switchNode",\r
+        "name": "switch ss.self-serve-flag",\r
+        "xml": "<switch test=\"`$ss.self-serve-flag`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1372.4999465942383,\r
+        "y": 1094.5594997406006,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "7a49c72e.1fe9c8",\r
+                "ecc5218b.461db"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a49c72e.1fe9c8",\r
+        "type": "outcomeFalse",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1588.4999465942383,\r
+        "y": 1094.9880847930908,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "f601bfcd.e4487"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4db0d0cc.fcf23",\r
+        "type": "call",\r
+        "name": "call self-serve-vnf-unassign",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-unassign' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1804.214210510254,\r
+        "y": 1410.4166460037231,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "a8b8d4da.ba5e58",\r
+                "1a3f330c.4838ed"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a8b8d4da.ba5e58",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2011.9641952514648,\r
+        "y": 1410.6666345596313,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "58a86c05.a04eb4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "58a86c05.a04eb4",\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 while unassigning self-serve resources with error: '+ $error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 2177.5356216430664,\r
+        "y": 1410.3095293045044,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1a3f330c.4838ed",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2016.5713691711426,\r
+        "y": 1461.2221689224243,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "9db43d1a.80b5b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ecc5218b.461db",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1589.7856254577637,\r
+        "y": 1410.8452253341675,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "4db0d0cc.fcf23"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46619b61.b2e6d4",\r
+        "type": "get-resource",\r
+        "name": "get-resource VF_MODEL",\r
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODEL WHERE customization_uuid = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\n  pfx='db.vf-model'>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1376.7856369018555,\r
+        "y": 800.4166660308838,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "db921505.1ecab8",\r
+                "2ad253ad.07e3dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "db921505.1ecab8",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1601.5713348388672,\r
+        "y": 780.7975034713745,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "b4171d9d.62fd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2ad253ad.07e3dc",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1610.142765045166,\r
+        "y": 825.0832166671753,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "6896f0e8.60f06"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c42726a5.5f0838",\r
+        "type": "comment",\r
+        "name": "Query is needed by forking logic",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1353.9285202026367,\r
+        "y": 761.8452005386353,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c8299496.706828",\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",\r
+        "comments": "",\r
+        "x": 1371.2499885559082,\r
+        "y": 434.49694538116455,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f32a75d4.e72c28",\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",\r
+        "comments": "",\r
+        "x": 836.2499809265137,\r
+        "y": 307.83032417297363,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "23bd57ed.5c2f68",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 679.5834007263184,\r
+        "y": 417.83028984069824,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "c5c57fb4.bffa4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c5c57fb4.bffa4",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 837.9166374206543,\r
+        "y": 417.8302993774414,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "ea2e0eca.99875",\r
+                "59efadd9.34ff64"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5d1e4a8b.33a764",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 1060.4166412353516,\r
+        "y": 843.2469615936279,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "422a0307.b6e26c",\r
+                "46619b61.b2e6d4",\r
+                "9f240acf.f10968",\r
+                "c939b04c.c627d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d296558f.79c2f8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1211.2500839233398,\r
+        "y": 481.16366958618164,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "5d1e4a8b.33a764"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "168141b9.a5a37e",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2738.6907691955566,\r
+        "y": 897.5328073501587,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            [\r
+                "5253081e.499f08",\r
+                "97d940c.f7414c",\r
+                "4cab7b3.6b48784"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5253081e.499f08",\r
+        "type": "set",\r
+        "name": "set tmpidx",\r
+        "xml": "<set>\n<parameter name=\"$tmpidx\" value=\"`$idx - 1`\"/>\n",\r
+        "comments": "",\r
+        "x": 2888.6904487609863,\r
+        "y": 854.1993503570557,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4cab7b3.6b48784",\r
+        "type": "set",\r
+        "name": "erase entry at tmpidx",\r
+        "xml": "<set>\n<parameter name=\"service-data.vnfs.vnf[$tmpidx].\" value=\"\" />\n\t\n",\r
+        "comments": "",\r
+        "x": 2923.6903648376465,\r
+        "y": 895.8660793304443,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6896f0e8.60f06",\r
+        "type": "record",\r
+        "name": "record ",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'No model found for VNF customization UUID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1758.4999923706055,\r
+        "y": 825.7500009536743,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b4171d9d.62fd",\r
+        "type": "record",\r
+        "name": "record ",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"Error reading VF_MODEL table\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1741.4999923706055,\r
+        "y": 780.7500009536743,\r
+        "z": "8bfceefc.af82b",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
 ]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_pnf-topology-operation-assign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_pnf-topology-operation-assign.xml
new file mode 100644 (file)
index 0000000..f25087e
--- /dev/null
@@ -0,0 +1,71 @@
+<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='pnf-topology-operation-assign' 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%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <switch test='`$pnf-topology-operation-input.pnf-request-input.cloud-owner`'>\r
+                <outcome value=''>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='prop.cloud-region.cloud-owner' value='`$pnf-topology-operation-input.pnf-request-input.cloud-owner`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$pnf-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='CreatePnfInstance'>\r
+                    <block></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="If svc-action is 'assign' then request-action must be 'CreatePnfInstance'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from VF_MODEL WHERE customization_uuid = $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid'\r
+  pfx='db.vf-model'>\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 reading VF_MODEL table" />\r
+                    </return>\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="`'No model found for VF customization UUID ' + $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <block atomic="true">\r
+                <call module='GENERIC-RESOURCE-API' rpc='self-serve-pnf-assign' mode='sync' >\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="`'Failed to create self-serve assignment for pnf with pnf-id=' + $pnf-topology-operation-input.pnf-details.pnf-id + ' with error: ' + $error-message`" />\r
+                        </return>\r
+                    </outcome>\r
+                </call>\r
+                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                    <parameter name='filename' value='/var/tmp/ss-pnf-assign.log' />\r
+                </execute>\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
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_pnf-topology-operation.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_pnf-topology-operation.xml
new file mode 100644 (file)
index 0000000..8ab8729
--- /dev/null
@@ -0,0 +1,38 @@
+<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='pnf-topology-operation' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-pnf-input' mode='sync' ></call>\r
+            <switch test='`$pnf-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='assign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-assign' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='activate'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-activate' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='deactivate'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-deactivate' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='unassign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-unassign' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='changeassign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='pnf-topology-operation-changeassign' mode='sync' ></call>\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="`$pnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />\r
+                    </return>\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/GENERIC-RESOURCE-API_self-serve-pnf-assign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-pnf-assign.xml
new file mode 100644 (file)
index 0000000..55d851c
--- /dev/null
@@ -0,0 +1,400 @@
+<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-pnf-assign' mode='sync'>\r
+        <block atomic='true'>\r
+            <set>\r
+                <parameter name='is-new-pnf' value='true' />\r
+            </set>\r
+            <switch test='`$service-data.pnfs.pnf_length`'>\r
+                <outcome value=''>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='pnf-index' value='0' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.pnfs.pnf_length' value='1' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='0'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='pnf-index' value='0' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.pnfs.pnf_length' value='1' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <for index='idx' start='0' end='`$service-data.pnfs.pnf_length`' >\r
+                            <switch test='`$pf-topology-operation-input.pnf-details.pnf-id == $service-data.pnfs.pnf[$idx].pnf-id`'>\r
+                                <outcome value='true'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='is-new-pnf' value='false' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='pnf-index' value='`$idx`' />\r
+                                        </set>\r
+                                        <break/>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <switch test='`$is-new-pnf`'>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='pnf-index' value='`$service-data.pnfs.pnf_length`' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='service-data.pnfs.pnf_length' value='`$service-data.pnfs.pnf_length + 1`' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$is-new-pnf`'>\r
+                <outcome value='true'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-topology-identifier-structure.pnf-id'\r
+ value='`$pnf-topology-operation-input.pnf-details.pnf-id`' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-topology-identifier-structure.pnf-type'\r
+ value='`$pnf-topology-operation-input.pnf-details.pnf-type`' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.tenant'\r
+ value='`$pnf-topology-operation-input.pnf-request-input.tenant`' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.aic-cloud-region'\r
+ value='`$pnf-topology-operation-input.pnf-request-input.aic-cloud-region`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-id'\r
+   value='`$pnf-topology-operation-input.pnf-details.pnf-id`' />\r
+                        </set>\r
+                        <switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-invariant-uuid`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-invariant-uuid'\r
+  value='`$db.pnf-model.invariant-uuid`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-invariant-uuid'\r
+  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-invariant-uuid`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-uuid`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-uuid'\r
+  value='`$db.pnf-model.uuid`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-uuid'\r
+  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-uuid`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-version`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-version'\r
+  value='`$db.pnf-model.version`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-version'\r
+  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-version`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-name`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-name'\r
+  value='`$db.pnf-model.name`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-name'\r
+  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-name`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <set>\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.onap-model-information.model-customization-uuid' \r
+  value='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.sdnc-request-header.'\r
+        value='$pnf-topology-operation-input.sdnc-request-header.' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.request-information.'\r
+        value='$pnf-topology-operation-input.request-information.' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.'\r
+        value='$pnf-topology-operation-input.service-information.' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.'\r
+        value='$pnf-topology-operation-input.pnf-details.' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.'\r
+        value='$pnf-topology-operation-input.pnf-request-input.' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.order-status' value='PendingCreate' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.last-rpc-action' value='`$pnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.last-action' value='`$pnf-topology-operation-input.request-information.request-action`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='ss.capability.execution-order[0]' value='aai-get' />\r
+                <parameter name='ss.capability.execution-order[1]' value='generate-name' />\r
+                <parameter name='ss.capability.execution-order[2]' value='alts-entitlement-assign' />\r
+                <parameter name='ss.capability.execution-order[3]' value='alts-license-assign' />\r
+                <parameter name='ss.capability.execution-order[4]' value='vlan-tag-assign' />\r
+                <parameter name='ss.capability.execution-order[5]' value='mS-vlan-tag-assign' />\r
+                <parameter name='ss.capability.execution-order[6]' value='eipam-ip-assignment' />\r
+                <parameter name='ss.capability.execution-order[7]' value='eipam-create-pool' />\r
+                <parameter name='ss.capability.execution-order[8]' value='netbox-ip-assign' />\r
+                <parameter name='ss.capability.execution-order[9]' value='mac-address-assign' />\r
+                <parameter name='ss.capability.execution-order[10]' value='mS-mac-address-assign' />\r
+                <parameter name='ss.capability.execution-order[11]' value='create-vpe-pool' />\r
+                <parameter name='ss.capability.execution-order[12]' value='unresolved-composite-data' />\r
+                <parameter name='ss.capability.execution-order[13]' value='aai-pnf-put' />\r
+                <parameter name='ss.capability.execution-order_length' value='14' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.sdnc-generated-cloud-resources' value='true' />\r
+            </set>\r
+            <set>\r
+                <parameter name='ss.capability-type' value='pnf' />\r
+            </set>\r
+            <switch test='`$prop.controller.user`'>\r
+                <outcome value=''>\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
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name='service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.'\r
+  value='pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.' />\r
+                        </set>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='self-serve-pnf-ra-assignment' mode='sync' >\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="`'Failed to get RA assignments: ' + $error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </call>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="DONE with pnf-ra-assigment"/>\r
+                        </record>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\r
+                <set>\r
+                    <parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\r
+                    <!--\r
+ss.capability.execution-order[]\r
+-->\r
+                </set>\r
+                <set>\r
+                    <parameter name='ss.capability-action' value='assign' />\r
+                </set>\r
+                <set>\r
+                    <parameter name='ss.capability-dg' value="`'self-serve-' + $ss.capability.execution-order[$cidx]`" />\r
+                </set>\r
+                <for index='pidx' start='0' end='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' >\r
+                    <set>\r
+                        <parameter name='tmp.param.capability-name' \r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$pidx].resource-resolution-data.capability-name`' />\r
+                    </set>\r
+                    <switch test='`$ss.capability-name == $tmp.param.capability-name`'>\r
+                        <outcome value='true'>\r
+                            <block atomic='true'>\r
+                                <switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$pidx].resource-resolution-data.status`'>\r
+                                    <outcome value='PENDING'>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\r
+                                            <outcome value='failure'>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name='pf.pnf-id'\r
+    value='`$service-data.pnfs.pnf[$pnf-index].pnf-id`' />\r
+                                                        <parameter name='pf.pnf-data.sdnc-request-header.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.sdnc-request-header.`' />\r
+                                                        <parameter name='pf.pnf-data.request-information.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.request-information.`' />\r
+                                                        <parameter name='pf.pnf-data.service-information.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-details.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-topology.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-level-oper-status.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.pnf-input-parameters.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.pnf-input-parameters.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.request-version'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.request-version`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.pnf-name'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.pnf-name`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.tenant'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.tenant`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.aic-cloud-region'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.aic-cloud-region`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.aic-clli'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.aic-clli`' />\r
+                                                    </set>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$prop.restapi.ss-pnf-assignments`"/>\r
+                                                        <parameter name="outputPath" value="tmp.ss-pnf-url"/>\r
+                                                        <parameter name="target" value="{service-instance-id}"/>\r
+                                                        <parameter name="replacement" value="`$service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.service-instance-id`"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$tmp.ss-pnf-url`"/>\r
+                                                        <parameter name="outputPath" value="tmp.ss-pnf-url"/>\r
+                                                        <parameter name="target" value="{pnf-id}"/>\r
+                                                        <parameter name="replacement" value="`$service-data.pnfs.pnf[$pnf-index].pnf-id`"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.pnf.templatefile`" />\r
+                                                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-pnf-url`' />\r
+                                                        <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                                        <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                                        <parameter name='format' value='json' />\r
+                                                        <parameter name='httpMethod' value='PUT' />\r
+                                                        <parameter name="responsePrefix" value="mdsal-ss-pnf" />\r
+                                                        <outcome value='failure'>\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve pnf assignments during assign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='not-found'>\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve pnf assignments during assign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </execute>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value="`'Encountered error from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`" />\r
+                                                    </return>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='success'>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="`'EXECUTION DONE: ' + $ss.capability-dg`"/>\r
+                                                </record>\r
+                                            </outcome>\r
+                                        </call>\r
+                                    </outcome>\r
+                                    <outcome value='FAILED'>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\r
+                                            <outcome value='failure'>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name='pf.pnf-id'\r
+    value='`$service-data.pnfs.pnf[$pnf-index].pnf-id`' />\r
+                                                        <parameter name='pf.pnf-data.sdnc-request-header.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.sdnc-request-header.`' />\r
+                                                        <parameter name='pf.pnf-data.request-information.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.request-information.`' />\r
+                                                        <parameter name='pf.pnf-data.service-information.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-details.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-topology.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-level-oper-status.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-level-oper-status.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.pnf-input-parameters.'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.pnf-input-parameters.`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.request-version'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.request-version`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.pnf-name'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.pnf-name`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.tenant'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.tenant`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.aic-cloud-region'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.aic-cloud-region`' />\r
+                                                        <parameter name='pf.pnf-data.pnf-request-input.aic-clli'\r
+  value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-request-input.aic-clli`' />\r
+                                                    </set>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$prop.restapi.ss-pnf-assignments`"/>\r
+                                                        <parameter name="outputPath" value="tmp.ss-pnf-url"/>\r
+                                                        <parameter name="target" value="{service-instance-id}"/>\r
+                                                        <parameter name="replacement" value="`$service-data.pnfs.pnf[$pnf-index].pnf-data.service-information.service-instance-id`"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$tmp.ss-pnf-url`"/>\r
+                                                        <parameter name="outputPath" value="tmp.ss-pnf-url"/>\r
+                                                        <parameter name="target" value="{pnf-id}"/>\r
+                                                        <parameter name="replacement" value="`$service-data.pnfs.pnf[$pnf-index].pnf-id`"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.pnf.templatefile`" />\r
+                                                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-pnf-url`' />\r
+                                                        <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                                        <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                                        <parameter name='format' value='json' />\r
+                                                        <parameter name='httpMethod' value='PUT' />\r
+                                                        <parameter name="responsePrefix" value="mdsal-ss-pnf" />\r
+                                                        <outcome value='failure'>\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve pnf assignments during assign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='not-found'>\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve pnf assignments during assign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </execute>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value="`'Encountered error from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`" />\r
+                                                    </return>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='success'>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="`'EXECUTION DONE: ' + $ss.capability-dg`"/>\r
+                                                </record>\r
+                                            </outcome>\r
+                                        </call>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <break/>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </for>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/ss-pnf-assign.log' />\r
+            </execute>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-pnf-ra-assignment.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-pnf-ra-assignment.xml
new file mode 100644 (file)
index 0000000..707de84
--- /dev/null
@@ -0,0 +1,234 @@
+<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-pnf-ra-assignment' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                <parameter name="ctx-destination" value="tmp.return.generate.pnf-se-serv-uuid" />\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="generateUUID is failed" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name="request-id" value="`$tmp.return.generate.pnf-se-serv-uuid`"/>\r
+                <parameter name="resource-type" value="`$pnf-topology-operation-input.pnf-details.pnf-type`" />\r
+                <parameter name="resource-id" value="`$pnf-topology-operation-input.pnf-details.pnf-id`" />\r
+                <parameter name="action-name" value="resource-assignment"/>\r
+                <parameter name="responsePrefix" value="raAssign" />\r
+            </set>\r
+            <switch test='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='highnum' value='0' />\r
+                        <parameter name='prehighnum' value='0'/>\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='highnum' value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' />\r
+                        <parameter name='prehighnum' value='`$service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <for silentFailure='true' index='i' start='0' end='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param_length`' >\r
+                <block atomic="true">\r
+                    <switch test='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].name`'>\r
+                        <outcome value='sdnc_model_name'>\r
+                            <set>\r
+                                <parameter name='tmp.sdnc-model-name' value='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='sdnc_model_version'>\r
+                            <set>\r
+                                <parameter name='tmp.sdnc-model-version' value='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='sdnc_artifact_name'>\r
+                            <set>\r
+                                <parameter name='tmp.sdnc-artifact-name' value='`$pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <set>\r
+                                <parameter name="tmp.config-name-value-other-payload" value="`$tmp.config-name-value-other-payload + '&quot;' + $pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].name + '&quot;:&quot;' + $pnf-topology-operation-input.pnf-request-input.pnf-input-parameters.param[$i].value + '&quot;,'`"/>\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <switch test="`$tmp.sdnc-model-name == '' or $tmp.sdnc-model-version == '' or $tmp.sdnc-artifact-name == ''`">\r
+                <outcome value='true'>\r
+                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from VF_MODEL WHERE customization_uuid = $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid'\r
+  pfx='db1.vf-model'>\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 reading VF_MODEL table" />\r
+                            </return>\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="`'No VF_MODEL found where customization_uuid = ' + $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <set>\r
+                                <parameter name='tmp.sdnc-model-name' value='`$db1.vf-model.sdnc-model-name`' />\r
+                                <parameter name='tmp.sdnc-model-version' value='`$db1.vf-model.sdnc-model-version`' />\r
+                                <parameter name='tmp.sdnc-artifact-name' value='`$db1.vf-model.sdnc-artifact-name`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </get-resource>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name="tmp.config-name-value-payload4" value="`$tmp.config-name-value-other-payload + '&quot;service-instance-id&quot;:&quot;' + $pnf-topology-operation-input.service-information.service-instance-id   + '&quot;,'`"/>\r
+                <parameter name="tmp.config-name-value-payload5" value="`$tmp.config-name-value-payload4 + '&quot;pnf-model-customization-uuid&quot;:&quot;' + $pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid + '&quot;,'`"/>\r
+                <parameter name="tmp.config-name-value-payload6" value="`$tmp.config-name-value-payload5 + '&quot;pnf-id&quot;:&quot;' + $pnf-topology-operation-input.pnf-details.pnf-id + '&quot;,'`"/>\r
+                <parameter name="tmp.config-name-value-payload7" value="`$tmp.config-name-value-payload6 + '&quot;aic-cloud-region&quot;:&quot;' + $pnf-topology-operation-input.pnf-request-input.aic-cloud-region + '&quot;'`"/>\r
+                <parameter name="tmp.json-payload" value="`'{' + $tmp.config-name-value-payload7 + '}'`" />\r
+            </set>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                <parameter name="logger" value="message-log"/>\r
+                <parameter name="field1" value="BEFORE BlueprintProcessingClient"/>\r
+            </record>\r
+            <execute plugin='org.onap.ccsdk.sli.adaptors.grpc.cds.BlueprintProcessingClient' method='sendRequest'>\r
+                <parameter name='blueprint_name' value='`$tmp.sdnc-model-name`' />\r
+                <parameter name='blueprint_version' value='`$tmp.sdnc-model-version`' />\r
+                <parameter name='action' value='`$action-name`' />\r
+                <parameter name='mode' value='sync' />\r
+                <parameter name='force' value='false' />\r
+                <parameter name='ttl' value='0' />\r
+                <parameter name='prefix' value='`$responsePrefix`' />\r
+                <parameter name='payload' value="`'{\r
+  &quot;resource-assignment-request&quot;: {\r
+    &quot;template-prefix&quot;: [\r
+      &quot;' + $tmp.sdnc-artifact-name + '&quot;\r
+    ],\r
+    &quot;resource-assignment-properties&quot;: \r
+        ' + $tmp.json-payload + '\r
+  }\r
+}'`"/>\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 from BlueprintProcessingClient" />\r
+                    </return>\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="Error from BlueprintProcessingClient" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                <parameter name="logger" value="message-log"/>\r
+                <parameter name="field1" value="AFTER BlueprintProcessingClient"/>\r
+            </record>\r
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="jsonStringToCtx">\r
+                <parameter name="source" value="`'raAssign.payload.resource-assignment-params.' + $tmp.sdnc-artifact-name`" />\r
+                <parameter name="outputPath" value="jsonContextPrefix" />\r
+                <parameter name="isEscaped" value="false" />\r
+            </execute>\r
+            <for silentFailure='true'  index='i' start='0' end='`$jsonContextPrefix.resource-accumulator-resolved-data_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='tmp.mso.param.found' value='false' />\r
+                    </set>\r
+                    <switch test='`$prehighnum &gt; 0`'>\r
+                        <outcome value='true'>\r
+                            <for silentFailure='true' index='cnt' 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[$cnt].name == $jsonContextPrefix.resource-accumulator-resolved-data[$i].param-name`'>\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$cnt].value`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-value`'/>\r
+                                            <parameter name='tmp.mso.param.found' value='true' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test='`$tmp.mso.param.found`'>\r
+                        <outcome value='false'>\r
+                            <block atomic='true'>\r
+                                <set>\r
+                                    <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].name`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-name`'/>\r
+                                    <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].value`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-value`'/>\r
+                                    <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.capability-name`' value='RA Resolved'/>\r
+                                    <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.status`' value='SUCCESS'/>\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='highnum' value='`$highnum + 1`' />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <for silentFailure='true' index='i' start='0' end='`$jsonContextPrefix.capability-data_length`' >\r
+                <for silentFailure='true' index='j' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping_length`' >\r
+                    <for silentFailure='true' index='l' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping_length`' >\r
+                        <block atomic="true">\r
+                            <set>\r
+                                <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].name`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping[$l].resource-name`'/>\r
+                                <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].value`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping[$l].resource-value`'/>\r
+                                <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.capability-name`' value='`$jsonContextPrefix.capability-data[$i].capability-name`'/>\r
+                                <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.status`' value='PENDING'/>\r
+                                <parameter name='num' value='0' />\r
+                            </set>\r
+                            <switch test="`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload_length == ''`">\r
+                                <outcome value='true'></outcome>\r
+                                <outcome value='false'>\r
+                                    <for silentFailure='true' index='k' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload_length`' >\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.resource-key[$num].name`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload[$k].param-name`'/>\r
+                                                <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.resource-key[$num].value`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload[$k].param-value`'/>\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param[$highnum].resource-resolution-data.resource-key_length`' value='`$num + 1`'/>\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='num' value='`$num + 1`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </for>\r
+                                </outcome>\r
+                            </switch>\r
+                            <set>\r
+                                <parameter name='`service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-topology.pnf-parameters-data.param_length`' value='`$highnum + 1`'/>\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='highnum' value='`$highnum + 1`' />\r
+                            </set>\r
+                        </block>\r
+                    </for>\r
+                </for>\r
+            </for>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                <parameter name="logger" value="message-log"/>\r
+                <parameter name="field1" value="DONE: pnf-ra-assignment"/>\r
+            </record>\r
+            <set>\r
+                <parameter name='pathname' \r
+       value="`'/var/tmp/ss-pnf-ra-assignment-' + \r
+       $service-data.pnfs.pnf[$pnf-index].pnf-data.pnf-details.pnf-id + '.log'`" />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='`$pathname`' />\r
+            </execute>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 28735a9..68df95e 100644 (file)
@@ -4,12 +4,12 @@
     <method rpc='self-serve-vf-module-unassign' mode='sync'>\r
         <block atomic='true'>\r
             <set>\r
-                <parameter name='ss.capability.execution-order[0]' value='mac-address-assign' />\r
-                <parameter name='ss.capability.execution-order[1]' value='mS-mac-address-assign' />\r
-                <parameter name='ss.capability.execution-order[2]' value='eipam-ip-assign' />\r
-                <parameter name='ss.capability.execution-order[3]' value='netbox-ip-assign' />\r
-                <parameter name='ss.capability.execution-order[4]' value='vlan-tag-assign' />\r
-                <parameter name='ss.capability.execution-order[5]' value='mS-vlan-tag-assign' />\r
+                <parameter name='ss.capability.execution-order[0]' value='mS-mac-address-assign' />\r
+                <parameter name='ss.capability.execution-order[1]' value='mac-address-assign' />\r
+                <parameter name='ss.capability.execution-order[2]' value='netbox-ip-assign' />\r
+                <parameter name='ss.capability.execution-order[3]' value='eipam-ip-assignment' />\r
+                <parameter name='ss.capability.execution-order[4]' value='mS-vlan-tag-assign' />\r
+                <parameter name='ss.capability.execution-order[5]' value='vlan-tag-assign' />\r
                 <parameter name='ss.capability.execution-order[6]' value='alts-license-assign' />\r
                 <parameter name='ss.capability.execution-order[7]' value='alts-entitlement-assign' />\r
                 <parameter name='ss.capability.execution-order[8]' value='generate-name' />\r
             <set>\r
                 <parameter name='ss.capability-type' value='vf-module' />\r
             </set>\r
+            <switch test='`$prop.controller.user`'>\r
+                <outcome value=''>\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
+                </outcome>\r
+            </switch>\r
             <for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\r
                 <set>\r
                     <parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\r
@@ -37,138 +45,112 @@ ss.capability.execution-order
                     </set>\r
                     <switch test='`$ss.capability-name == $tmp.param.capability-name`'>\r
                         <outcome value='true'>\r
-                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`'>\r
-                                <outcome value='SUCCESS'>\r
-                                    <call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\r
-                                        <outcome value='failure'>\r
-                                            <block atomic='true'>\r
-                                                <set>\r
-                                                    <parameter name='vf.vf-module-id'\r
+                            <block atomic='true'>\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`'>\r
+                                    <outcome value='SUCCESS'>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\r
+                                            <outcome value='failure'>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name='vf.vf-module-id'\r
     value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />\r
-                                                    <parameter name='vf.vf-module-data.sdnc-request-header.'\r
+                                                        <parameter name='vf.vf-module-data.sdnc-request-header.'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.`' />\r
-                                                    <parameter name='vf.vf-module-data.request-information.'\r
+                                                        <parameter name='vf.vf-module-data.request-information.'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.`' />\r
-                                                    <parameter name='vf.vf-module-data.service-information.'\r
+                                                        <parameter name='vf.vf-module-data.service-information.'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.`' />\r
-                                                    <parameter name='vf.vf-module-data.vnf-information.'\r
+                                                        <parameter name='vf.vf-module-data.vnf-information.'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.`' />\r
-                                                    <parameter name='vf.vf-module-data.vf-module-information.'\r
+                                                        <parameter name='vf.vf-module-data.vf-module-information.'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.`' />\r
-                                                    <parameter name='vf.vf-module-data.vf-module-topology.'\r
+                                                        <parameter name='vf.vf-module-data.vf-module-topology.'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.`' />\r
-                                                    <parameter name='vf.vf-module-data.vf-module-level-oper-status.'\r
+                                                        <parameter name='vf.vf-module-data.vf-module-level-oper-status.'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.`' />\r
-                                                    <parameter name='vf.vf-module-data.vf-module-request-input.vf-module-input-parameters.'\r
+                                                        <parameter name='vf.vf-module-data.vf-module-request-input.vf-module-input-parameters.'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.vf-module-input-parameters.`' />\r
-                                                    <parameter name='vf.vf-module-data.vf-module-request-input.request-version'\r
+                                                        <parameter name='vf.vf-module-data.vf-module-request-input.request-version'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.request-version`' />\r
-                                                    <parameter name='vf.vf-module-data.vf-module-request-input.vf-module-name'\r
+                                                        <parameter name='vf.vf-module-data.vf-module-request-input.vf-module-name'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.vf-module-name`' />\r
-                                                    <parameter name='vf.vf-module-data.vf-module-request-input.tenant'\r
+                                                        <parameter name='vf.vf-module-data.vf-module-request-input.tenant'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.tenant`' />\r
-                                                    <parameter name='vf.vf-module-data.vf-module-request-input.aic-cloud-region'\r
+                                                        <parameter name='vf.vf-module-data.vf-module-request-input.aic-cloud-region'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-cloud-region`' />\r
-                                                    <parameter name='vf.vf-module-data.vf-module-request-input.aic-clli'\r
+                                                        <parameter name='vf.vf-module-data.vf-module-request-input.aic-clli'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-clli`' />\r
-                                                </set>\r
-                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                                                    <parameter name="source" value="`$prop.restapi.ss-vfmodule-assignments`"/>\r
-                                                    <parameter name="outputPath" value="tmp.ss-vfmodule-url"/>\r
-                                                    <parameter name="target" value="{service-instance-id}"/>\r
-                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.service-instance-id`"/>\r
-                                                </execute>\r
-                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                                                    <parameter name="source" value="`$tmp.ss-vfmodule-url`"/>\r
-                                                    <parameter name="outputPath" value="tmp.ss-vfmodule-url"/>\r
-                                                    <parameter name="target" value="{vnf-id}"/>\r
-                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.vnf-id`"/>\r
-                                                </execute>\r
-                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                                                    <parameter name="source" value="`$tmp.ss-vfmodule-url`"/>\r
-                                                    <parameter name="outputPath" value="tmp.ss-vfmodule-url"/>\r
-                                                    <parameter name="target" value="{vf-module-id}"/>\r
-                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`"/>\r
-                                                </execute>\r
-                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vfmodule.templatefile`" />\r
-                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vfmodule-url`' />\r
-                                                    <parameter name='restapiUser' value='`$prop.controller.user`' />\r
-                                                    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
-                                                    <parameter name='format' value='json' />\r
-                                                    <parameter name='httpMethod' value='PUT' />\r
-                                                    <parameter name="responsePrefix" value="mdsal-ss-vfmodule" />\r
-                                                    <outcome value='failure'>\r
-                                                        <block atomic="true">\r
-                                                            <set>\r
-                                                                <parameter name="error-message" value="Failed to persist self-serve vf-module assignments during unassign in MD-SAL" />\r
-                                                            </set>\r
-                                                        </block>\r
-                                                    </outcome>\r
-                                                    <outcome value='not-found'>\r
-                                                        <block atomic="true">\r
-                                                            <set>\r
-                                                                <parameter name="error-message" value="Failed to persist self-serve vf-module assignments during unassign in MD-SAL" />\r
-                                                            </set>\r
-                                                        </block>\r
-                                                    </outcome>\r
-                                                </execute>\r
-                                                <return status='failure'>\r
-                                                    <parameter name='error-code' value='500' />\r
-                                                    <parameter name='error-message' value="`'Encountered error from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`" />\r
-                                                </return>\r
-                                            </block>\r
-                                        </outcome>\r
-                                    </call>\r
-                                </outcome>\r
-                                <outcome value='DELETED'>\r
-                                    <block></block>\r
-                                </outcome>\r
-                                <outcome value='Other'>\r
-                                    <block atomic='true'>\r
+                                                    </set>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$prop.restapi.ss-vfmodule-assignments`"/>\r
+                                                        <parameter name="outputPath" value="tmp.ss-vfmodule-url"/>\r
+                                                        <parameter name="target" value="{service-instance-id}"/>\r
+                                                        <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.service-instance-id`"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$tmp.ss-vfmodule-url`"/>\r
+                                                        <parameter name="outputPath" value="tmp.ss-vfmodule-url"/>\r
+                                                        <parameter name="target" value="{vnf-id}"/>\r
+                                                        <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.vnf-id`"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$tmp.ss-vfmodule-url`"/>\r
+                                                        <parameter name="outputPath" value="tmp.ss-vfmodule-url"/>\r
+                                                        <parameter name="target" value="{vf-module-id}"/>\r
+                                                        <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vfmodule.templatefile`" />\r
+                                                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vfmodule-url`' />\r
+                                                        <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                                        <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                                        <parameter name='format' value='json' />\r
+                                                        <parameter name='httpMethod' value='PUT' />\r
+                                                        <parameter name="responsePrefix" value="mdsal-ss-vfmodule" />\r
+                                                        <outcome value='failure'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name="error-message" value="Failed to persist self-serve vf-module assignments during unassign in MD-SAL" />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='not-found'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name="error-message" value="Failed to persist self-serve vf-module assignments during unassign in MD-SAL" />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </execute>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value="`'Encountered error from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`" />\r
+                                                    </return>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='success'>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="`'DONE: ' + $ss.capability-dg`"/>\r
+                                                </record>\r
+                                            </outcome>\r
+                                        </call>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
                                             <parameter name="logger" value="message-log"/>\r
                                             <parameter name="field1" value="`'SS: resource-resolution-data.status: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`"/>\r
                                             <parameter name="field2" value="`'SS: ss.capability-name: ' + $ss.capability-name`"/>\r
+                                            <parameter name="field3" value="`'SS: tmp.param.capability-name: ' + $tmp.param.capability-name`"/>\r
                                         </record>\r
-                                        <return status='failure'>\r
-                                            <parameter name='error-code' value='500' />\r
-                                            <parameter name='error-message' value="`'Failed to unassign self-serve vf-module assignments because the status for ' + $ss.capability-name + ' is '  + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`"/>\r
-                                        </return>\r
-                                    </block>\r
-                                </outcome>\r
-                            </switch>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <break/>\r
+                            </block>\r
                         </outcome>\r
                     </switch>\r
                 </for>\r
             </for>\r
-            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
-                <outcome value='1'>\r
-                    <set>\r
-                        <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules." value=""/>\r
-                    </set>\r
-                </outcome>\r
-                <outcome value='Other'>\r
-                    <block atomic="true">\r
-                        <for index='idx' start='`$vf-module-index + 1`' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
-                            <set>\r
-                                <parameter name="tmpidx" value="`$idx - 1`"/>\r
-                                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmpidx]." value="$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx]." />\r
-                            </set>\r
-                        </for>\r
-                        <!--EIPAM plug-in needs this attribute set with this name-->\r
-                        <set>\r
-                            <parameter name='lastidx' 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[$lastidx]." value=""/>\r
-                        </set>\r
-                        <set>\r
-                            <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length" value="`$lastidx`"/>\r
-                        </set>\r
-                    </block>\r
-                </outcome>\r
-            </switch>\r
             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
                 <parameter name='filename' value='/var/tmp/ss-vf-unassign.log' />\r
             </execute>\r
index dd5bc40..d69f475 100644 (file)
@@ -4,12 +4,12 @@
     <method rpc='self-serve-vnf-unassign' mode='sync'>\r
         <block atomic='true'>\r
             <set>\r
-                <parameter name='ss.capability.execution-order[0]' value='mac-address-assign' />\r
-                <parameter name='ss.capability.execution-order[1]' value='mS-mac-address-assign' />\r
-                <parameter name='ss.capability.execution-order[2]' value='eipam-ip-assign' />\r
-                <parameter name='ss.capability.execution-order[3]' value='netbox-ip-assign' />\r
-                <parameter name='ss.capability.execution-order[4]' value='vlan-tag-assign' />\r
-                <parameter name='ss.capability.execution-order[5]' value='mS-vlan-tag-assign' />\r
+                <parameter name='ss.capability.execution-order[0]' value='mS-mac-address-assign' />\r
+                <parameter name='ss.capability.execution-order[1]' value='mac-address-assign' />\r
+                <parameter name='ss.capability.execution-order[2]' value='netbox-ip-assign' />\r
+                <parameter name='ss.capability.execution-order[3]' value='eipam-ip-assignment' />\r
+                <parameter name='ss.capability.execution-order[4]' value='mS-vlan-tag-assign' />\r
+                <parameter name='ss.capability.execution-order[5]' value='vlan-tag-assign' />\r
                 <parameter name='ss.capability.execution-order[6]' value='alts-license-assign' />\r
                 <parameter name='ss.capability.execution-order[7]' value='alts-entitlement-assign' />\r
                 <parameter name='ss.capability.execution-order[8]' value='generate-name' />\r
             <set>\r
                 <parameter name='ss.capability-type' value='vnf' />\r
             </set>\r
+            <switch test='`$prop.controller.user`'>\r
+                <outcome value=''>\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
+                </outcome>\r
+            </switch>\r
             <for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\r
                 <set>\r
                     <parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\r
@@ -37,118 +45,96 @@ ss.capability.execution-order[]
                     </set>\r
                     <switch test='`$ss.capability-name == $tmp.param.capability-name`'>\r
                         <outcome value='true'>\r
-                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`'>\r
-                                <outcome value='SUCCESS'>\r
-                                    <call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\r
-                                        <outcome value='failure'>\r
-                                            <block atomic='true'>\r
-                                                <set>\r
-                                                    <parameter name='vf.vnf-id'\r
+                            <block atomic='true'>\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`'>\r
+                                    <outcome value='SUCCESS'>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\r
+                                            <outcome value='failure'>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name='vf.vnf-id'\r
     value='`$service-data.vnfs.vnf[$vnf-index].vnf-id`' />\r
-                                                    <parameter name='vf.vnf-data.sdnc-request-header.'\r
+                                                        <parameter name='vf.vnf-data.sdnc-request-header.'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.`' />\r
-                                                    <parameter name='vf.vnf-data.request-information.'\r
+                                                        <parameter name='vf.vnf-data.request-information.'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.`' />\r
-                                                    <parameter name='vf.vnf-data.service-information.'\r
+                                                        <parameter name='vf.vnf-data.service-information.'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.`' />\r
-                                                    <parameter name='vf.vnf-data.vnf-information.'\r
+                                                        <parameter name='vf.vnf-data.vnf-information.'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.`' />\r
-                                                    <parameter name='vf.vnf-data.vnf-request-input.'\r
+                                                        <parameter name='vf.vnf-data.vnf-request-input.'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.`' />\r
-                                                    <parameter name='vf.vnf-data.vnf-request-input.vnf-input-parameters.'\r
+                                                        <parameter name='vf.vnf-data.vnf-request-input.vnf-input-parameters.'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.vnf-input-parameters.`' />\r
-                                                    <parameter name='vf.vnf-data.vnf-topology.'\r
+                                                        <parameter name='vf.vnf-data.vnf-topology.'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.`' />\r
-                                                    <parameter name='vf.vnf-data.vnf-level-oper-status.'\r
+                                                        <parameter name='vf.vnf-data.vnf-level-oper-status.'\r
   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.`' />\r
-                                                </set>\r
-                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                                                    <parameter name="source" value="`$prop.restapi.ss-vnf-assignments`"/>\r
-                                                    <parameter name="outputPath" value="tmp.ss-vnf-url"/>\r
-                                                    <parameter name="target" value="{service-instance-id}"/>\r
-                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.service-instance-id`"/>\r
-                                                </execute>\r
-                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                                                    <parameter name="source" value="`$tmp.ss-vnf-url`"/>\r
-                                                    <parameter name="outputPath" value="tmp.ss-vnf-url"/>\r
-                                                    <parameter name="target" value="{vnf-id}"/>\r
-                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-id`"/>\r
-                                                </execute>\r
-                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vnf.templatefile`" />\r
-                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vnf-url`' />\r
-                                                    <parameter name='restapiUser' value='`$prop.controller.user`' />\r
-                                                    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
-                                                    <parameter name='format' value='json' />\r
-                                                    <parameter name='httpMethod' value='PUT' />\r
-                                                    <parameter name="responsePrefix" value="mdsal-ss-vnf" />\r
-                                                    <outcome value='failure'>\r
-                                                        <block atomic="true">\r
-                                                            <set>\r
-                                                                <parameter name="error-message" value="Error persisting self-serve vnf assignments in MD-SAL during unassign" />\r
-                                                            </set>\r
-                                                        </block>\r
-                                                    </outcome>\r
-                                                    <outcome value='not-found'>\r
-                                                        <block atomic="true">\r
-                                                            <set>\r
-                                                                <parameter name="error-message" value="Error persisting self-serve vnf assignments in MD-SAL during unassign" />\r
-                                                            </set>\r
-                                                        </block>\r
-                                                    </outcome>\r
-                                                </execute>\r
-                                                <return status='failure'>\r
-                                                    <parameter name='error-code' value='500' />\r
-                                                    <parameter name='error-message' value="`'Failed to unassign self-serve vnf assignments for ' + $ss.capability-dg + ' with error: ' + $error-message`" />\r
-                                                </return>\r
-                                            </block>\r
-                                        </outcome>\r
-                                    </call>\r
-                                </outcome>\r
-                                <outcome value='DELETED'>\r
-                                    <block></block>\r
-                                </outcome>\r
-                                <outcome value='Other'>\r
-                                    <block atomic='true'>\r
+                                                    </set>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$prop.restapi.ss-vnf-assignments`"/>\r
+                                                        <parameter name="outputPath" value="tmp.ss-vnf-url"/>\r
+                                                        <parameter name="target" value="{service-instance-id}"/>\r
+                                                        <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.service-instance-id`"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$tmp.ss-vnf-url`"/>\r
+                                                        <parameter name="outputPath" value="tmp.ss-vnf-url"/>\r
+                                                        <parameter name="target" value="{vnf-id}"/>\r
+                                                        <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-id`"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vnf.templatefile`" />\r
+                                                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vnf-url`' />\r
+                                                        <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                                                        <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                                                        <parameter name='format' value='json' />\r
+                                                        <parameter name='httpMethod' value='PUT' />\r
+                                                        <parameter name="responsePrefix" value="mdsal-ss-vnf" />\r
+                                                        <outcome value='failure'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name="error-message" value="Error persisting self-serve vnf assignments in MD-SAL during unassign" />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='not-found'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name="error-message" value="Error persisting self-serve vnf assignments in MD-SAL during unassign" />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </execute>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value="`'Failed to unassign self-serve vnf assignments for ' + $ss.capability-dg + ' with error: ' + $error-message`" />\r
+                                                    </return>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='success'>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="`'DONE: ' + $ss.capability-dg`"/>\r
+                                                </record>\r
+                                            </outcome>\r
+                                        </call>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
                                         <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
                                             <parameter name="logger" value="message-log"/>\r
                                             <parameter name="field1" value="`'SS: resource-resolution-data.status: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`"/>\r
                                             <parameter name="field2" value="`'SS: ss.capability-name: ' + $ss.capability-name`"/>\r
+                                            <parameter name="field3" value="`'SS: tmp.param.capability-name: ' + $tmp.param.capability-name`"/>\r
                                         </record>\r
-                                        <return status='failure'>\r
-                                            <parameter name='error-code' value='500' />\r
-                                            <parameter name='error-message' value="`'Failed to unassign self-serve vnf assignments because the status for ' + $ss.capability-name + ' is '  + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`"/>\r
-                                        </return>\r
-                                    </block>\r
-                                </outcome>\r
-                            </switch>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <break/>\r
+                            </block>\r
                         </outcome>\r
                     </switch>\r
                 </for>\r
             </for>\r
-            <switch test='`$service-data.vnfs.vnf_length`'>\r
-                <outcome value='1'>\r
-                    <set>\r
-                        <parameter name="service-data.vnfs." value=""/>\r
-                    </set>\r
-                </outcome>\r
-                <outcome value='Other'>\r
-                    <block atomic="true">\r
-                        <for index='idx' start='`$vnf-index + 1`' end='`$service-data.vnfs.vnf_length`' >\r
-                            <set>\r
-                                <parameter name="$tmpidx" value="`$idx - 1`"/>\r
-                                <parameter name="service-data.vnfs.vnf[$tmpidx]." value="$service-data.vnfs.vnf[$idx]." />\r
-                            </set>\r
-                        </for>\r
-                        <set>\r
-                            <parameter name="service-data.vnfs.vnf[$service-data.vnfs.vnf_length-1]." value=""/>\r
-                        </set>\r
-                        <set>\r
-                            <parameter name="service-data.vnfs.vnf_length" value="`$service-data.vnfs.vnf_length - 1`"/>\r
-                        </set>\r
-                    </block>\r
-                </outcome>\r
-            </switch>\r
             <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
                 <parameter name='filename' value='/var/tmp/ss-vnf-assign.log' />\r
             </execute>\r
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-pnf-input.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-pnf-input.xml
new file mode 100644 (file)
index 0000000..3c1ae0d
--- /dev/null
@@ -0,0 +1,86 @@
+<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-pnf-input' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$pnf-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-action is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$pnf-topology-operation-input.sdnc-request-header.svc-request-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="sdnc-request-header.svc-request-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$pnf-topology-operation-input.request-information.request-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="request-information.request-action is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$pnf-topology-operation-input.service-information.service-instance-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="service-information.service-instance-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$pnf-topology-operation-input.pnf-details.pnf-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="pnf-details.pnf-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$pnf-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='assign'>\r
+                    <block atomic="true">\r
+                        <switch test='`$pnf-topology-operation-input.pnf-details.onap-model-information.model-customization-uuid`'>\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="pnf-details.onap-model-information.model-customization-uuid is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$pnf-topology-operation-input.pnf-request-input.tenant`'>\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="pnf-request-input.tenant is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$pnf-topology-operation-input.pnf-request-input.aic-cloud-region`'>\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="pnf-request-input.aic-cloud-region is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 2866917..4586dad 100755 (executable)
             </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="500" />\r
-                        <parameter name="error-message" value="There are no VNFs defined in MD-SAL" />\r
+                    <return status='success'>\r
+                        <parameter name="ack-final-indicator" value="Y" />\r
+                        <parameter name="error-code" value="200" />\r
                     </return>\r
                 </outcome>\r
                 <outcome value='Other'>\r
             </switch>\r
             <switch test='`$vnf-index`'>\r
                 <outcome value='-1'>\r
-                    <return status='failure'>\r
-                        <parameter name='ack-final' value='Y'/>\r
-                        <parameter name="error-code" value="500" />\r
-                        <parameter name="error-message" value="`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`" />\r
+                    <return status='success'>\r
+                        <parameter name="ack-final-indicator" value="Y" />\r
+                        <parameter name="error-code" value="200" />\r
                     </return>\r
                 </outcome>\r
             </switch>\r
             <set>\r
                 <parameter name='vf-module-index' value='-1' />\r
             </set>\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="`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`" />\r
-                    </return>\r
-                </outcome>\r
-                <outcome value='Other'>\r
-                    <for index='idx' 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[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\r
-                            <outcome value='true'>\r
-                                <block>\r
-                                    <set>\r
-                                        <parameter name='vf-module-index' value='`$idx`' />\r
-                                    </set>\r
-                                    <break/>\r
-                                </block>\r
-                            </outcome>\r
-                        </switch>\r
-                    </for>\r
-                </outcome>\r
-            </switch>\r
+            <for silentFailure='true' index='idx' 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[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\r
+                    <outcome value='true'>\r
+                        <block>\r
+                            <set>\r
+                                <parameter name='vf-module-index' value='`$idx`' />\r
+                            </set>\r
+                            <break/>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
             <switch test='`$vf-module-index`'>\r
                 <outcome value='-1'>\r
-                    <return status='failure'>\r
-                        <parameter name='ack-final' value='Y'/>\r
-                        <parameter name="error-code" value="500" />\r
-                        <parameter name="error-message" value="`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`" />\r
+                    <return status='success'>\r
+                        <parameter name="ack-final-indicator" value="Y" />\r
+                        <parameter name="error-code" value="200" />\r
                     </return>\r
                 </outcome>\r
-            </switch>\r
-            <call module='GENERIC-RESOURCE-API' rpc='self-serve-vf-module-forking-logic' mode='sync' ></call>\r
-            <switch test="`$ss.self-serve-flag`">\r
-                <outcome value='true'>\r
-                    <call module='GENERIC-RESOURCE-API' rpc='self-serve-vf-module-unassign' mode='sync' >\r
-                        <outcome value='failure'>\r
-                            <return status='failure'>\r
-                                <parameter name='error-code' value='500' />\r
-                                <parameter name='error-message' value="`'Encountered error while unassigning self-serve vf-moldule esources with error: '+ $error-message`" />\r
-                            </return>\r
-                        </outcome>\r
-                        <outcome value='success'>\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
-                        </outcome>\r
-                    </call>\r
-                </outcome>\r
-                <outcome value='false'>\r
+                <outcome value='Other'>\r
                     <block atomic="true">\r
-                        <set>\r
-                            <parameter name='tmp.status' value="`'PENDING_DELETE_' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`" />\r
-                        </set>\r
-                        <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
-key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-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 updating EIPAM_IP_ASSIGNMENTS table" />\r
-                                </return>\r
-                            </outcome>\r
-                        </update>\r
-                        <!--EIPAM plug-in needs this attribute set with this name-->\r
-                        <set>\r
-                            <parameter name='service-data.service-information.service-type' value='`$service-data.service-information.subscription-service-type`' />\r
-                        </set>\r
-                        <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
-                            <parameter name="deleteEIPAM_status" value="`$tmp.status`" />\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 in EIPAM unassign IP address" />\r
-                                </return>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='self-serve-vf-module-forking-logic' mode='sync' ></call>\r
+                        <switch test="`$ss.self-serve-flag`">\r
+                            <outcome value='true'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='self-serve-vf-module-unassign' mode='sync' >\r
+                                    <outcome value='failure'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500' />\r
+                                            <parameter name='error-message' value="`'Encountered error while unassigning self-serve vf-moldule esources with error: '+ $error-message`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='success'>\r
+                                        <block>\r
+                                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                                                <outcome value='1'>\r
+                                                    <set>\r
+                                                        <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules." value=""/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <block atomic="true">\r
+                                                        <for index='idx' start='`$vf-module-index + 1`' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name="tmpidx" value="`$idx - 1`"/>\r
+                                                                </set>\r
+                                                                <set>\r
+                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmpidx].' value='' />\r
+                                                                </set>\r
+                                                                <set>\r
+                                                                    <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmpidx]." value="$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx]." />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </for>\r
+                                                        <!--EIPAM plug-in needs this attribute set with this name-->\r
+                                                        <set>\r
+                                                            <parameter name='lastidx' 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[$lastidx]." value=""/>\r
+                                                        </set>\r
+                                                        <set>\r
+                                                            <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length" value="`$lastidx`"/>\r
+                                                        </set>\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
+                                    </outcome>\r
+                                </call>\r
                             </outcome>\r
-                        </execute>\r
-                        <for silentFailure='true' index='vm-type-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
-                            <for silentFailure='true' index='vm-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\r
+                            <outcome value='false'>\r
                                 <block atomic="true">\r
-                                    <delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                                    <set>\r
+                                        <parameter name='tmp.status' value="`'PENDING_DELETE_' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`" />\r
+                                    </set>\r
+                                    <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-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 updating EIPAM_IP_ASSIGNMENTS table" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </update>\r
+                                    <!--EIPAM plug-in needs this attribute set with this name-->\r
+                                    <set>\r
+                                        <parameter name='service-data.service-information.service-type' value='`$service-data.service-information.subscription-service-type`' />\r
+                                    </set>\r
+                                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
+                                        <parameter name="deleteEIPAM_status" value="`$tmp.status`" />\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 in EIPAM unassign IP address" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </execute>\r
+                                    <for silentFailure='true' index='vm-type-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                                        <for silentFailure='true' index='vm-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\r
+                                            <block atomic="true">\r
+                                                <delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key='DELETE from VIPR_CONFIGURATION WHERE vnf_id = $service-data.vnfs.vnf[$vnf-index].vnf-id\r
      AND ecomp_service_instance_id = $service-data.service-information.service-instance-id\r
      AND vm_name = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' >\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="__TIMESTAMP__"/>\r
-                                                <parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>\r
-                                                <parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
-                                                <parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>\r
-                                            </record>\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="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>\r
+                                                            <parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                            <parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>\r
+                                                        </record>\r
+                                                    </outcome>\r
+                                                </delete>\r
+                                            </block>\r
+                                        </for>\r
+                                    </for>\r
+                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function`'>\r
+                                        <outcome value=''>\r
+                                            <block></block>\r
                                         </outcome>\r
-                                    </delete>\r
-                                </block>\r
-                            </for>\r
-                        </for>\r
-                        <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function`'>\r
-                            <outcome value=''>\r
-                                <block></block>\r
-                            </outcome>\r
-                            <outcome value='Other'>\r
-                                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+                                        <outcome value='Other'>\r
+                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
   resource="instance-groups" \r
   key="instance-group.instance-group-function = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function\r
     AND instance-group.instance-group-type = 'L3-NETWORK'"\r
   pfx='aai.instance-group' local-only='false' >\r
-                                    <outcome value='success'>\r
-                                        <for index='ig-index' start='0' end='`$aai.instance-group.instance-group_length`' >\r
-                                            <for index='rel-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship_length`' >\r
-                                                <for index='reldata-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data_length`' >\r
-                                                    <switch test="`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-key\r
+                                                <outcome value='success'>\r
+                                                    <for index='ig-index' start='0' end='`$aai.instance-group.instance-group_length`' >\r
+                                                        <for index='rel-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship_length`' >\r
+                                                            <for index='reldata-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data_length`' >\r
+                                                                <switch test="`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-key\r
   == 'service-instance.service-instance-id'`">\r
-                                                        <outcome value='true'>\r
-                                                            <switch test='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-value\r
+                                                                    <outcome value='true'>\r
+                                                                        <switch test='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-value\r
   == $service-data.service-information.service-instance-id`'>\r
-                                                                <outcome value='true'>\r
-                                                                    <block>\r
-                                                                        <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
-                                                                            <outcome value='1'>\r
+                                                                            <outcome value='true'>\r
                                                                                 <block>\r
-                                                                                    <set>\r
-                                                                                        <parameter name='tmp.status' value="`'PENDING_DELETE_' + $aai.instance-group.instance-group[$ig-index].id`" />\r
-                                                                                    </set>\r
-                                                                                    <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+                                                                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                                                                                        <outcome value='1'>\r
+                                                                                            <block>\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='tmp.status' value="`'PENDING_DELETE_' + $aai.instance-group.instance-group[$ig-index].id`" />\r
+                                                                                                </set>\r
+                                                                                                <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
 key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $aai.instance-group.instance-group[$ig-index].id" ></update>\r
-                                                                                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
-                                                                                        <parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
-                                                                                    </execute>\r
-                                                                                </block>\r
-                                                                            </outcome>\r
-                                                                        </switch>\r
-                                                                        <for index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\r
-                                                                            <switch test='`$aai.instance-group.instance-group[$ig-index].id\r
+                                                                                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
+                                                                                                    <parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
+                                                                                                </execute>\r
+                                                                                            </block>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                    <for index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\r
+                                                                                        <switch test='`$aai.instance-group.instance-group[$ig-index].id\r
   == $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>\r
-                                                                                <outcome value='true'>\r
-                                                                                    <for index='network-index' start='0' end='`$service-data.network-instance-groups.network-instance-group[$nig-index].networks.network_length`' >\r
-                                                                                        <set>\r
-                                                                                            <parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].vlan-tag-id'\r
+                                                                                            <outcome value='true'>\r
+                                                                                                <for index='network-index' start='0' end='`$service-data.network-instance-groups.network-instance-group[$nig-index].networks.network_length`' >\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].vlan-tag-id'\r
   value='' />\r
-                                                                                            <parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].network-status'\r
+                                                                                                        <parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].network-status'\r
   value='unassigned' />\r
-                                                                                        </set>\r
+                                                                                                    </set>\r
+                                                                                                </for>\r
+                                                                                            </outcome>\r
+                                                                                        </switch>\r
                                                                                     </for>\r
-                                                                                </outcome>\r
-                                                                            </switch>\r
-                                                                        </for>\r
-                                                                    </block>\r
-                                                                </outcome>\r
-                                                            </switch>\r
-                                                        </outcome>\r
-                                                    </switch>\r
-                                                </for>\r
-                                            </for>\r
-                                        </for>\r
-                                    </outcome>\r
-                                </get-resource>\r
-                            </outcome>\r
-                        </switch>\r
-                        <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-name`'>\r
-                            <outcome value='Other'>\r
-                                <block></block>\r
-                            </outcome>\r
-                            <outcome value=''>\r
-                                <block atomic="true">\r
-                                    <set>\r
-                                        <parameter name='generate-unique-name-input.name-table-type' value='VF_MODULE_INSTANCE' />\r
-                                        <parameter name='generate-unique-name-input.context-id' value='`$vf-module-topology-operation-input.vnf-information.vnf-id`' />\r
-                                        <parameter name='generate-unique-name-input.action' value='DELETE' />\r
-                                    </set>\r
-                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-unique-name' mode='sync' ></call>\r
-                                </block>\r
-                            </outcome>\r
-                        </switch>\r
-                        <for silentFailure='true' index='vm-type-index' start='0'\r
-  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
-                            <block>\r
-                                <for silentFailure='true' index='vm-name-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length`' >\r
-                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-name-index]`'>\r
-                                        <outcome value=''>\r
-                                            <block></block>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\r
+                                                        </for>\r
+                                                    </for>\r
+                                                </outcome>\r
+                                            </get-resource>\r
                                         </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-name`'>\r
                                         <outcome value='Other'>\r
-                                            <block>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value=''>\r
+                                            <block atomic="true">\r
                                                 <set>\r
-                                                    <parameter name='naming-policy-generate-name-input.naming-type' value='VM' />\r
-                                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`' />\r
-                                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                    <parameter name='generate-unique-name-input.name-table-type' value='VF_MODULE_INSTANCE' />\r
+                                                    <parameter name='generate-unique-name-input.context-id' value='`$vf-module-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                    <parameter name='generate-unique-name-input.action' value='DELETE' />\r
                                                 </set>\r
-                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-unique-name' mode='sync' ></call>\r
                                             </block>\r
                                         </outcome>\r
                                     </switch>\r
-                                </for>\r
-                                <for silentFailure='true' index='vnfc-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
-                                    <block>\r
-                                        <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\r
-                                            <outcome value=''>\r
-                                                <block></block>\r
-                                            </outcome>\r
-                                            <outcome value='Other'>\r
+                                    <for silentFailure='true' index='vm-type-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                                        <block>\r
+                                            <for silentFailure='true' index='vm-name-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length`' >\r
+                                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-name-index]`'>\r
+                                                    <outcome value=''>\r
+                                                        <block></block>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='VM' />\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </for>\r
+                                            <for silentFailure='true' index='vnfc-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
                                                 <block>\r
-                                                    <set>\r
-                                                        <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
-                                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`' />\r
-                                                        <parameter name='naming-policy-generate-name-input.vm-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vnfc-index]`' />\r
-                                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
-                                                    </set>\r
-                                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
-                                                </block>\r
-                                            </outcome>\r
-                                        </switch>\r
-                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\r
+                                                        <outcome value=''>\r
+                                                            <block></block>\r
+                                                        </outcome>\r
+                                                        <outcome value='Other'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.vm-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vnfc-index]`' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                                </set>\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
    resource="vnfc"\r
    key="vnfc.vnfc-name = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name"></delete>\r
-                                    </block>\r
-                                </for>\r
-                                <for silentFailure='true' index='network-role-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
-                                    <block>\r
-                                        <for silentFailure='true' index='vnfc-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
-                                            <block>\r
-                                                <for silentFailure='true' index='ipv4-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4_length`' >\r
-                                                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+                                                </block>\r
+                                            </for>\r
+                                            <for silentFailure='true' index='network-role-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
+                                                <block>\r
+                                                    <for silentFailure='true' index='vnfc-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
+                                                        <block>\r
+                                                            <for silentFailure='true' index='ipv4-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4_length`' >\r
+                                                                <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
    resource="vip-ipv4-address-list" \r
    key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
          AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
          AND vip-ipv4-address-list.vip-ipv4-address = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]" ></delete>\r
-                                                </for>\r
-                                                <for silentFailure='true' index='ipv6-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6_length`' >\r
-                                                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+                                                            </for>\r
+                                                            <for silentFailure='true' index='ipv6-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6_length`' >\r
+                                                                <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
    resource="vip-ipv6-address-list" \r
    key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
          AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
          AND vip-ipv6-address-list.vip-ipv6-address = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]" ></delete>\r
-                                                </for>\r
-                                            </block>\r
-                                        </for>\r
-                                    </block>\r
-                                </for>\r
-                            </block>\r
-                        </for>\r
-                        <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
-                            <outcome value='1'>\r
-                                <set>\r
-                                    <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules." value=""/>\r
-                                </set>\r
-                            </outcome>\r
-                            <outcome value='Other'>\r
-                                <block atomic="true">\r
-                                    <for index='idx' start='`$vf-module-index + 1`' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
-                                        <set>\r
-                                            <parameter name="tmpidx" value="`$idx - 1`"/>\r
-                                            <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmpidx]." value="$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx]." />\r
-                                        </set>\r
+                                                            </for>\r
+                                                        </block>\r
+                                                    </for>\r
+                                                </block>\r
+                                            </for>\r
+                                        </block>\r
                                     </for>\r
-                                    <!--EIPAM plug-in needs this attribute set with this name-->\r
-                                    <set>\r
-                                        <parameter name='lastidx' 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[$lastidx]." value=""/>\r
-                                    </set>\r
-                                    <set>\r
-                                        <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length" value="`$lastidx`"/>\r
-                                    </set>\r
+                                    <block>\r
+                                        <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                                            <outcome value='1'>\r
+                                                <set>\r
+                                                    <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules." value=""/>\r
+                                                </set>\r
+                                            </outcome>\r
+                                            <outcome value='Other'>\r
+                                                <block atomic="true">\r
+                                                    <for index='idx' start='`$vf-module-index + 1`' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name="tmpidx" value="`$idx - 1`"/>\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmpidx].' value='' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmpidx]." value="$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx]." />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </for>\r
+                                                    <!--EIPAM plug-in needs this attribute set with this name-->\r
+                                                    <set>\r
+                                                        <parameter name='lastidx' 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[$lastidx]." value=""/>\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length" value="`$lastidx`"/>\r
+                                                    </set>\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
                                 </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
                 </outcome>\r
             </switch>\r
index 725e64f..32e922e 100644 (file)
             </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="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 == $vnf-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='`$vnf-index`'>\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="'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'" />\r
+                    <return status='success'>\r
+                        <parameter name="ack-final-indicator" value="Y" />\r
+                        <parameter name="error-code" value="200" />\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='0'>\r
-                    <block></block>\r
-                </outcome>\r
-                <outcome value=''>\r
-                    <block></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="Cannot delete the VNF because there are VFs defined" />\r
-                    </return>\r
-                </outcome>\r
-            </switch>\r
-            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from VF_MODEL WHERE customization_uuid = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\r
-  pfx='db.vf-model'></get-resource>\r
-            <call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-forking-logic' mode='sync' ></call>\r
-            <switch test="`$ss.self-serve-flag`">\r
-                <outcome value='false'>\r
                     <block atomic="true">\r
-                        <switch test='`$service-data.vnfs.vnf_length`'>\r
-                            <outcome value='1'>\r
-                                <set>\r
-                                    <parameter name="service-data.vnfs." value=""/>\r
-                                </set>\r
+                        <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                            <switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-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='`$vnf-index`'>\r
+                            <outcome value=''>\r
+                                <return status='success'>\r
+                                    <parameter name="ack-final-indicator" value="Y" />\r
+                                    <parameter name="error-code" value="200" />\r
+                                </return>\r
                             </outcome>\r
                             <outcome value='Other'>\r
                                 <block atomic="true">\r
-                                    <for index='idx' start='`$vnf-index + 1`' end='`$service-data.vnfs.vnf_length`' >\r
-                                        <set>\r
-                                            <parameter name="$tmpidx" value="`$idx - 1`"/>\r
-                                            <parameter name="service-data.vnfs.vnf[$tmpidx]." value="$service-data.vnfs.vnf[$idx]." />\r
-                                        </set>\r
-                                    </for>\r
-                                    <set>\r
-                                        <parameter name="service-data.vnfs.vnf[$service-data.vnfs.vnf_length-1]." value=""/>\r
-                                    </set>\r
-                                    <set>\r
-                                        <parameter name="service-data.vnfs.vnf_length" value="`$service-data.vnfs.vnf_length - 1`"/>\r
-                                    </set>\r
+                                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`">\r
+                                        <outcome value='0'>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value=''>\r
+                                            <block></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="Cannot delete the VNF because there are VF modules defined" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from VF_MODEL WHERE customization_uuid = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\r
+  pfx='db.vf-model'>\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="Error reading VF_MODEL table"/>\r
+                                            </record>\r
+                                        </outcome>\r
+                                        <outcome value='not-found'>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="`'No model found for VNF customization UUID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`"/>\r
+                                            </record>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-forking-logic' mode='sync' ></call>\r
+                                    <switch test="`$ss.self-serve-flag`">\r
+                                        <outcome value='false'>\r
+                                            <block atomic="true">\r
+                                                <switch test='`$service-data.vnfs.vnf_length`'>\r
+                                                    <outcome value='1'>\r
+                                                        <set>\r
+                                                            <parameter name="service-data.vnfs." value=""/>\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <block atomic="true">\r
+                                                            <for index='idx' start='`$vnf-index + 1`' end='`$service-data.vnfs.vnf_length`' >\r
+                                                                <block>\r
+                                                                    <set>\r
+                                                                        <parameter name="$tmpidx" value="`$idx - 1`"/>\r
+                                                                    </set>\r
+                                                                    <set>\r
+                                                                        <parameter name="service-data.vnfs.vnf[$tmpidx]." value="" />\r
+                                                                    </set>\r
+                                                                    <set>\r
+                                                                        <parameter name="service-data.vnfs.vnf[$tmpidx]." value="$service-data.vnfs.vnf[$idx]." />\r
+                                                                    </set>\r
+                                                                </block>\r
+                                                            </for>\r
+                                                            <set>\r
+                                                                <parameter name="service-data.vnfs.vnf[$service-data.vnfs.vnf_length - 1]." value=""/>\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name="service-data.vnfs.vnf_length" value="`$service-data.vnfs.vnf_length - 1`"/>\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <set>\r
+                                                    <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                </set>\r
+                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\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
+                                        </outcome>\r
+                                        <outcome value='true'>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-unassign' mode='sync' >\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value="`'Encountered error while unassigning self-serve resources with error: '+ $error-message`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='success'>\r
+                                                    <switch test='`$service-data.vnfs.vnf_length`'>\r
+                                                        <outcome value='1'>\r
+                                                            <set>\r
+                                                                <parameter name="service-data.vnfs." value=""/>\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='Other'>\r
+                                                            <block atomic="true">\r
+                                                                <for index='idx' start='`$vnf-index + 1`' end='`$service-data.vnfs.vnf_length`' >\r
+                                                                    <block>\r
+                                                                        <set>\r
+                                                                            <parameter name="$tmpidx" value="`$idx - 1`"/>\r
+                                                                        </set>\r
+                                                                        <set>\r
+                                                                            <parameter name="service-data.vnfs.vnf[$tmpidx]." value="" />\r
+                                                                        </set>\r
+                                                                        <set>\r
+                                                                            <parameter name="service-data.vnfs.vnf[$tmpidx]." value="$service-data.vnfs.vnf[$idx]." />\r
+                                                                        </set>\r
+                                                                    </block>\r
+                                                                </for>\r
+                                                                <set>\r
+                                                                    <parameter name="service-data.vnfs.vnf[$service-data.vnfs.vnf_length - 1]." value=""/>\r
+                                                                </set>\r
+                                                                <set>\r
+                                                                    <parameter name="service-data.vnfs.vnf_length" value="`$service-data.vnfs.vnf_length - 1`"/>\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\r
+                                            </call>\r
+                                        </outcome>\r
+                                    </switch>\r
                                 </block>\r
                             </outcome>\r
                         </switch>\r
-                        <set>\r
-                            <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
-                            <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
-                            <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
-                        </set>\r
-                        <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\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
                 </outcome>\r
-                <outcome value='true'>\r
-                    <call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-unassign' mode='sync' >\r
-                        <outcome value='failure'>\r
-                            <return status='failure'>\r
-                                <parameter name='error-code' value='500' />\r
-                                <parameter name='error-message' value="`'Encountered error while unassigning self-serve resources with error: '+ $error-message`" />\r
-                            </return>\r
-                        </outcome>\r
-                        <outcome value='success'>\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
-                        </outcome>\r
-                    </call>\r
-                </outcome>\r
             </switch>\r
         </block>\r
     </method>\r
diff --git a/platform-logic/restapi-templates/src/main/json/self-serve-pnf-assignments.json b/platform-logic/restapi-templates/src/main/json/self-serve-pnf-assignments.json
new file mode 100644 (file)
index 0000000..4e15e91
--- /dev/null
@@ -0,0 +1,112 @@
+{
+    "pnf": [{
+        "pnf-id": ${pf.pnf-id},
+        "pnf-data": {
+            "sdnc-request-header": {
+                "svc-request-id": ${pf.pnf-data.sdnc-request-header.svc-request-id},
+                "svc-action": ${pf.pnf-data.sdnc-request-header.svc-action},
+                "svc-notification-url": ${pf.pnf-data.sdnc-request-header.svc-notification-url}
+            },
+            "request-information": {
+                "request-id": ${pf.pnf-data.request-information.request-id},
+                "request-action": ${pf.pnf-data.request-information.request-action},
+                "source": ${pf.pnf-data.request-information.source},
+                "notification-url": ${pf.pnf-data.request-information.notification-url},
+                "order-number": ${pf.pnf-data.request-information.order-number},
+                "order-version": ${pf.pnf-data.request-information.order-version}
+            },
+            "service-information": {
+                "service-id": ${pf.pnf-data.service-information.service-id},
+                "subscription-service-type": ${pf.pnf-data.service-information.subscription-service-type},
+                "onap-model-information": {
+                    "model-invariant-uuid": ${pf.pnf-data.service-information.onap-model-information.model-invariant-uuid},
+                    "model-customization-uuid": ${pf.pnf-data.service-information.onap-model-information.model-customization-uuid},
+                    "model-uuid": ${pf.pnf-data.service-information.onap-model-information.model-uuid},
+                    "model-version": ${pf.pnf-data.service-information.onap-model-information.model-version},
+                    "model-name": ${pf.pnf-data.service-information.onap-model-information.model-name}
+                },
+                "service-instance-id": ${pf.pnf-data.service-information.service-instance-id},
+                "global-customer-id": ${pf.pnf-data.service-information.global-customer-id},
+                "subscriber-name": ${pf.pnf-data.service-information.subscriber-name}
+            },
+            "pnf-details": {
+                "pnf-id": ${pf.pnf-data.pnf-details.pnf-id},
+                "pnf-type": ${pf.pnf-data.pnf-details.pnf-type},
+                "pnf-name": ${pf.pnf-data.pnf-details.pnf-name},
+                "onap-model-information": {
+                    "model-invariant-uuid": ${pf.pnf-data.pnf-details.onap-model-information.model-invariant-uuid},
+                    "model-customization-uuid": ${pf.pnf-data.pnf-details.onap-model-information.model-customization-uuid},
+                    "model-uuid": ${pf.pnf-data.pnf-details.onap-model-information.model-uuid},
+                    "model-version": ${pf.pnf-data.pnf-details.onap-model-information.model-version},
+                    "model-name": ${pf.pnf-data.pnf-details.onap-model-information.model-name}
+                }
+            },
+            "pnf-request-input": {
+                "request-version": ${pf.pnf-data.pnf-request-input.request-version},
+                "pnf-name": ${pf.pnf-data.pnf-request-input.pnf-name},
+                "tenant": ${pf.pnf-data.pnf-request-input.tenant},
+                "aic-cloud-region": ${pf.pnf-data.pnf-request-input.aic-cloud-region},
+                "aic-clli": ${pf.pnf-data.pnf-request-input.aic-clli},
+                "pnf-input-parameters": {
+                    "param": [
+        ${repeat:pf.pnf-data.pnf-request-input.pnf-input-parameters.param_length:
+                        {
+                            "name": ${pf.pnf-data.pnf-request-input.pnf-input-parameters.param[${1}].name},
+                            "value": ${pf.pnf-data.pnf-request-input.pnf-input-parameters.param[${1}].value}
+                        },
+        }
+                    ]
+                }
+            },
+            "pnf-topology": {
+                "pnf-topology-identifier-structure": {
+                    "pnf-id": ${pf.pnf-data.pnf-topology.pnf-topology-identifier-structure.pnf-id},
+                    "pnf-name": ${pf.pnf-data.pnf-topology.pnf-topology-identifier-structure.pnf-name},
+                    "pnf-type": ${pf.pnf-data.pnf-topology.pnf-topology-identifier-structure.pnf-type}
+                },
+                "onap-model-information": {
+                    "model-invariant-uuid": ${pf.pnf-data.pnf-topology.onap-model-information.model-invariant-uuid},
+                    "model-customization-uuid": ${pf.pnf-data.pnf-topology.onap-model-information.model-customization-uuid},
+                    "model-uuid": ${pf.pnf-data.pnf-topology.onap-model-information.model-uuid},
+                    "model-version": ${pf.pnf-data.pnf-topology.onap-model-information.model-version},
+                    "model-name": ${pf.pnf-data.pnf-topology.onap-model-information.model-name}
+                },
+                "pnf-parameters-data": {
+                    "param": [
+        ${repeat:pf.pnf-data.pnf-topology.pnf-parameters-data.param_length:
+                        {
+                            "name": ${pf.pnf-data.pnf-topology.pnf-parameters-data.param[${1}].name},
+                            "value": ${pf.pnf-data.pnf-topology.pnf-parameters-data.param[${1}].value},
+                            "resource-resolution-data": {
+                                "resource-key": [
+                ${repeat:pf.pnf-data.pnf-topology.pnf-parameters-data.param[${1}].resource-resolution-data.resource-key_length:
+                                    {
+                                        "name": ${pf.pnf-data.pnf-topology.pnf-parameters-data.param[${1}].resource-resolution-data.resource-key[${2}].name},
+                                        "value": ${pf.pnf-data.pnf-topology.pnf-parameters-data.param[${1}].resource-resolution-data.resource-key[${2}].value}
+                                    },
+                }
+                                ],
+                                "status": ${pf.pnf-data.pnf-topology.pnf-parameters-data.param[${1}].resource-resolution-data.status},
+                                "capability-name": ${pf.pnf-data.pnf-topology.pnf-parameters-data.param[${1}].resource-resolution-data.capability-name}
+                            },
+                        },
+        }
+                    ]
+                },
+                "tenant": ${pf.pnf-data.pnf-topology.tenant},
+                "aic-cloud-region": ${pf.pnf-data.pnf-topology.aic-cloud-region},
+                "aic-clli": ${pf.pnf-data.pnf-topology.aic-clli}
+                "sdnc-generated-cloud-resources": ${pf.pnf-data.pnf-topology.sdnc-generated-cloud-resources}
+            },
+            "pnf-level-oper-status": {
+                "order-status": ${pf.pnf-data.pnf-level-oper-status.order-status},
+                "last-rpc-action": ${pf.pnf-data.pnf-level-oper-status.last-rpc-action},
+                "last-action": ${pf.pnf-data.pnf-level-oper-status.last-action},
+                "last-svc-request-id": ${pf.pnf-data.pnf-level-oper-status.last-svc-request-id},
+                "last-order-status": ${pf.pnf-data.pnf-level-oper-status.last-order-status},
+                "create-timestamp": ${pf.pnf-data.pnf-level-oper-status.create-timestamp},
+                "modify-timestamp": ${pf.pnf-data.pnf-level-oper-status.modify-timestamp}
+            }
+        }
+    }]
+}