Remove active printContexts from DGs 73/24773/1
authorMarcus G K Williams <marcus.williams@intel.com>
Tue, 21 Nov 2017 19:41:12 +0000 (11:41 -0800)
committerMarcus Williams <marcus.williams@intel.com>
Tue, 21 Nov 2017 20:26:42 +0000 (20:26 +0000)
Leftover printContext execute nodes
from debugging are removed. This
should reduce logging pressure
and hopefully solve issues where
SDNC VM disks are filling after
a specifified period.

Issue-Id: SDNC-204 SDNC-203
Change-Id: Iaea165411758dc8b95add98f3675d26b52d11fa7
Signed-off-by: Marcus G K Williams <marcus.williams@intel.com>
(cherry picked from commit cbedcbf1263d9e60e6c867e3172bd32efa40257e [formerly 32d2ae71c4a68b3043f5f229f226c673c8ea49e5])

Former-commit-id: 936b218a16a072f9cd9c283f5e3ff8d0f86711c8

platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_tunnelxconn-topology-operation-create.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-assign.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-assign.json
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_tunnelxconn-topology-operation-create.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-assign.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-assign.xml

index a354c9e..07b4875 100644 (file)
@@ -1 +1,1323 @@
-[{"id":"10eabda8.6b888a","type":"dgstart","name":"DGSTART","outputs":1,"x":145,"y":81,"z":"a0656fc9.dda71","wires":[["cd52b57d.bfbe08"]]},{"id":"cd52b57d.bfbe08","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":241.23807907104492,"y":141.95239067077637,"z":"a0656fc9.dda71","wires":[["904d1598.a73d7"]]},{"id":"904d1598.a73d7","type":"method","name":"tunnelxconn-topology-operation-create","xml":"<method rpc='tunnelxconn-topology-operation-create' mode='sync'>\n","comments":"","outputs":1,"x":287.15485763549805,"y":177.19044589996338,"z":"a0656fc9.dda71","wires":[["49aeb9d.798acc8"]]},{"id":"49aeb9d.798acc8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":147.97619247436523,"y":913.0238044261932,"z":"a0656fc9.dda71","wires":[["4d865dd7.64f20c","a0274c7a.6ebe","65d2a143.a02498","12607b02.52cf0d","d55cad77.b93e8","3a9bef92.106bb8","553c4aa3.391f5c","a0ff5ae9.3d78d","49a09902.0d6ba","72f4d871.5b224","5f18d90c.45cb9","543956f5.68f59","cc52eced.06ff9","8d87f176.05e24","d532def2.cf163","e41bf1b.ed0471","c4ca9f8b.96254","3b28aa19.65e62e","b047a9c4.e403f8","b2c28342.d9721","96a57432.cd3f48","b6b159ec.524da","af2b59b0.78298","9eb192c2.c1a4a","56b12519.af5d7c","29793093.a5cc08","a7d43db8.11ef7","d71aa0a1.4f6ba","16acd9a9.cf4c3e","ed7953e3.9a1dd","8781404d.98ab08"]]},{"id":"a0274c7a.6ebe","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":416.6669921875,"y":2543.548095703125,"z":"a0656fc9.dda71","wires":[]},{"id":"4d865dd7.64f20c","type":"set","name":"set output to api handler","xml":"<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='tunnelxconn-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $tunnelxconn-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n","comments":"","x":451.4208984375,"y":2464.670654296875,"z":"a0656fc9.dda71","wires":[]},{"id":"72f4d871.5b224","type":"set","name":"set allotted-resource-oper-status","xml":"<set>\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$tunnelxconn-topology-operation-input.request-information.request-action`' />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$tunnelxconn-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$tunnelxconn-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n","comments":"","x":501.7542190551758,"y":701.0514001846313,"z":"a0656fc9.dda71","wires":[]},{"id":"12607b02.52cf0d","type":"set","name":"set tmp.ar.self-link","xml":"<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:tunnelxconn-allotted-resources/tunnelxconn-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/tunnelxconn-topology/'` \" />\n\n","comments":"","x":457.73806381225586,"y":294.33332538604736,"z":"a0656fc9.dda71","wires":[]},{"id":"65d2a143.a02498","type":"set","name":"set tmp.ar.allotted-resource-id,etc","xml":"<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$tunnelxconn-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$tunnelxconn-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n\n\n","comments":"","x":504.9973258972168,"y":260.59259128570557,"z":"a0656fc9.dda71","wires":[]},{"id":"d55cad77.b93e8","type":"execute","name":"execute Properties","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":459.9934387207031,"y":330.231538772583,"z":"a0656fc9.dda71","wires":[[]]},{"id":"553c4aa3.391f5c","type":"execute","name":"execute RestApiCallNode - Get AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":526.5187530517578,"y":491.4594917297363,"z":"a0656fc9.dda71","wires":[["155d1e12.b38eca","4e5b7398.d535bc"]]},{"id":"3a9bef92.106bb8","type":"execute","name":"generate allotted-resource url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.tx-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":492.0648536682129,"y":390.0172290802002,"z":"a0656fc9.dda71","wires":[[]]},{"id":"155d1e12.b38eca","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":783.8148918151855,"y":490.26725220680237,"z":"a0656fc9.dda71","wires":[["a49d870d.6f9f9"]]},{"id":"a0ff5ae9.3d78d","type":"execute","name":"execute RestApiCallNode - PUT AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.tx.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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-ar\" />\n\n","comments":"","outputs":1,"x":524.5293273925781,"y":827.7675542831421,"z":"a0656fc9.dda71","wires":[["809f9b2f.20f788","734166bb.7a654","97cc802e.7802a8"]]},{"id":"809f9b2f.20f788","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":832.8373680114746,"y":832.0991821289062,"z":"a0656fc9.dda71","wires":[["c3372b96.5f1ef8"]]},{"id":"734166bb.7a654","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":825.8373947143555,"y":792.5990890488029,"z":"a0656fc9.dda71","wires":[["c3372b96.5f1ef8"]]},{"id":"97cc802e.7802a8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":829.5874328613281,"y":762.9561939239502,"z":"a0656fc9.dda71","wires":[["9a82c753.7dbcc8"]]},{"id":"c3372b96.5f1ef8","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 md-sal for tunnelxconn-allotted-resource\" />\n","comments":"","x":995.5874328613281,"y":793.3491128906608,"z":"a0656fc9.dda71","wires":[]},{"id":"a49d870d.6f9f9","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":964.8148460388184,"y":490.7672016620636,"z":"a0656fc9.dda71","wires":[["ccd4fd88.fc652","2cb487af.45cae"]]},{"id":"ccd4fd88.fc652","type":"switchNode","name":"switch tx length","xml":"<switch test='`$mdsal-ar.tunnelxconn-allotted-resource_length`'>\n","comments":"","outputs":1,"x":1210.6720924377441,"y":525.052964925766,"z":"a0656fc9.dda71","wires":[["22044b6.7c5bfb4"]]},{"id":"22044b6.7c5bfb4","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1401.6720962524414,"y":525.0529625415802,"z":"a0656fc9.dda71","wires":[["3548e370.cc89ac"]]},{"id":"72b5b919.dc519","type":"set","name":"set tx-ar from get","xml":"<set>\n<parameter name='tx-ar.' value='$mdsal-ar.tunnelxconn-allotted-resource[0].' />\n","comments":"","x":1801.5292320251465,"y":525.6243867874146,"z":"a0656fc9.dda71","wires":[]},{"id":"3548e370.cc89ac","type":"block","name":"block: atomic","xml":"<block atomic='true'>\n","atomic":"false","comments":"","outputs":1,"x":1572.5290794372559,"y":525.6244316101074,"z":"a0656fc9.dda71","wires":[["72b5b919.dc519","33b18d27.828412","71f5485a.2965b"]]},{"id":"33b18d27.828412","type":"set","name":"set oper-status","xml":"<set>\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$tx-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$tx-ar.allotted-resource-status.rpc-action`' />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$tx-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n","comments":"","x":1799.5294761657715,"y":593.0529508590698,"z":"a0656fc9.dda71","wires":[]},{"id":"b5fd1939.50b4f","type":"comment","name":"GET tunnelxconn-allotted-resource from mdsal","info":"","comments":"","x":551.8148155212402,"y":454.7671926021576,"z":"a0656fc9.dda71","wires":[]},{"id":"71f5485a.2965b","type":"switchNode","name":"switch order-status","xml":"<switch test='`$tx-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1809.52925491333,"y":558.6243848800659,"z":"a0656fc9.dda71","wires":[["56b2c752.d80ac8","52e4d4ef.beb2f4"]]},{"id":"56b2c752.d80ac8","type":"outcome","name":"outcome PendingCreate","xml":"<outcome value='PendingCreate'>\n","comments":"","outputs":1,"x":2021.1292114257812,"y":519.6243848800659,"z":"a0656fc9.dda71","wires":[["ac5e40f1.eb36e"]]},{"id":"52e4d4ef.beb2f4","type":"outcome","name":"outcome Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2046.8435859680176,"y":555.052975654602,"z":"a0656fc9.dda71","wires":[["ac5e40f1.eb36e"]]},{"id":"e8154b92.d1c34","type":"comment","name":"Set allotted-resource-identifiers","info":"","comments":"","x":507.33863830566406,"y":545.3386459350586,"z":"a0656fc9.dda71","wires":[]},{"id":"2cb487af.45cae","type":"set","name":"save backup copy of mdsal-ar for rollback","xml":"<set>\n<parameter name='bk-tx-ar' value='$mdsal-ar.' />\n","comments":"","x":1290.3864250183105,"y":490.76729369163513,"z":"a0656fc9.dda71","wires":[]},{"id":"8ddb0233.e7d7a8","type":"comment","name":"Create urls for restapi","info":"","comments":"","x":462.9576606750488,"y":359.6243562698364,"z":"a0656fc9.dda71","wires":[]},{"id":"9a82c753.7dbcc8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":971.2434005737305,"y":759.1483631134033,"z":"a0656fc9.dda71","wires":[[]]},{"id":"3005f865.958118","type":"comment","name":"TO DO: vnf/put parent","info":"","comments":"","x":475.2433776855469,"y":766.4815540313718,"z":"a0656fc9.dda71","wires":[]},{"id":"49a09902.0d6ba","type":"execute","name":"execute getTime","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n","comments":"","outputs":1,"x":449.24338150024414,"y":662.4815549850464,"z":"a0656fc9.dda71","wires":[[]]},{"id":"4e5b7398.d535bc","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":783.5766868591309,"y":526.4814250469208,"z":"a0656fc9.dda71","wires":[["825538dc.9a5e38"]]},{"id":"825538dc.9a5e38","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":963.5766372680664,"y":527.1479756832123,"z":"a0656fc9.dda71","wires":[[]]},{"id":"5f18d90c.45cb9","type":"set","name":"set id","xml":"<set>\n<parameter name='tx-ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='tx-ar.allotted-resource-status.action' value=\"`$tunnelxconn-topology-operation-input.request-information.request-action` \" />\n<parameter name='tx-ar.allotted-resource-status.rpc-name' value=\"tunnelxconn-topology-operation\" />\n<parameter name='tx-ar.allotted-resource-status.rpc-action' value=\"`$tunnelxconn-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$tunnelxconn-topology-operation-input.request-information.` \" />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$tunnelxconn-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$tunnelxconn-topology-operation-input.service-information.` \" />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$tunnelxconn-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.tunnelxconn-request-input.' value=\"`$tunnelxconn-topology-operation-input.tunnelxconn-request-input.` \" />","comments":"","x":424.24343490600586,"y":584.1481971740723,"z":"a0656fc9.dda71","wires":[]},{"id":"ac5e40f1.eb36e","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2235.5997276306152,"y":521.0000190734863,"z":"a0656fc9.dda71","wires":[[]]},{"id":"d532def2.cf163","type":"execute","name":"execute RestApiCallNode - setup vgMUX-vG vxlan tunnel port","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.vxlan-tunnel.templatefile`\" />\n    <parameter name='restapiUrl' value='`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url`' />\n    <parameter name='restapiUser' value='`$prop.honeycomb.user`' />\n    <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"honeycomb-vnf\" />\n\n","comments":"","outputs":1,"x":586.8331909179688,"y":1542.4521162509918,"z":"a0656fc9.dda71","wires":[["924bd69e.71f6f","25e52ca9.23d86c","236361e0.d15986"]]},{"id":"924bd69e.71f6f","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":951.1413116455078,"y":1584.783754967153,"z":"a0656fc9.dda71","wires":[["940005c0.168b48"]]},{"id":"25e52ca9.23d86c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":942.1413612365723,"y":1553.2837807163596,"z":"a0656fc9.dda71","wires":[["940005c0.168b48"]]},{"id":"236361e0.d15986","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":945.8913993835449,"y":1523.640885591507,"z":"a0656fc9.dda71","wires":[["40938803.f5d7a8"]]},{"id":"940005c0.168b48","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 md-sal for tunnelxconn-allotted-resource\" />\n","comments":"","x":1111.891399383545,"y":1554.0338045582175,"z":"a0656fc9.dda71","wires":[]},{"id":"40938803.f5d7a8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1087.5473670959473,"y":1519.83305478096,"z":"a0656fc9.dda71","wires":[[]]},{"id":"cc52eced.06ff9","type":"set","name":"set vgMUX-vG VXLAN Tunnel Port Props","xml":"<set>\n<parameter name='tmp.tunnel-name' value=\"`$tmp.tunnel-vgMUX-vG-name` \" />\n<parameter name='tmp.tunnel-dest-ip' value=\"`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vg-ip` \" />\n<parameter name='tmp.tunnel-src-ip' value=\"`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-bearer-ip` \" />\n<parameter name='tmp.tunnel-vni' value=\"`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vni` \" />","comments":"","x":521.9443817138672,"y":1434.7860252857208,"z":"a0656fc9.dda71","wires":[]},{"id":"8d87f176.05e24","type":"execute","name":"generate full vgMUX-vG vpp-honeycomb url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.vpp-honeycomb`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.vpp-honeycomb-url\"/>\n    <parameter name=\"target\" value=\"{tunnel-name}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.tunnel-name`\"/>\n","comments":"","outputs":1,"x":525.9443817138672,"y":1501.4522392749786,"z":"a0656fc9.dda71","wires":[[]]},{"id":"543956f5.68f59","type":"execute","name":"generate honeycomb-url to vgMUX","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.honeycomb.url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.honeycomb.url\"/>\n    <parameter name=\"target\" value=\"{honeycomb-instance-ip}\"/>\n    <parameter name=\"replacement\" value=\"`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-mgmt-ip`\"/>\n","comments":"","outputs":1,"x":505.2776794433594,"y":1373.119027376175,"z":"a0656fc9.dda71","wires":[[]]},{"id":"e41bf1b.ed0471","type":"execute","name":"execute RestApiCallNode - setup vgMUX-vBRG vxlan tunnel xconnect","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.xconnect.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url + '/v3po:l2' `\" />\n    <parameter name='restapiUser' value='`$prop.honeycomb.user`' />\n    <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"honeycomb-vnf\" />\n\n","comments":"","outputs":1,"x":602.5001220703125,"y":1960.000272989273,"z":"a0656fc9.dda71","wires":[["40f64f13.8dfae","a00a935e.ac2978","d6ca5c98.c2f658"]]},{"id":"40f64f13.8dfae","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":932.8082027435303,"y":1998.331808231771,"z":"a0656fc9.dda71","wires":[["e653ae28.b63b3"]]},{"id":"a00a935e.ac2978","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":923.8082523345947,"y":1966.8318339809775,"z":"a0656fc9.dda71","wires":[["e653ae28.b63b3"]]},{"id":"d6ca5c98.c2f658","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":927.5582904815674,"y":1937.1889388561249,"z":"a0656fc9.dda71","wires":[["409056a6.973c2"]]},{"id":"e653ae28.b63b3","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 md-sal for tunnelxconn-allotted-resource\" />\n","comments":"","x":1093.5582904815674,"y":1967.5818578228354,"z":"a0656fc9.dda71","wires":[]},{"id":"409056a6.973c2","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1069.2142581939697,"y":1933.381108045578,"z":"a0656fc9.dda71","wires":[[]]},{"id":"c4ca9f8b.96254","type":"set","name":"set vgMUX to vG and vgMUX to vBRG VXLAN Tunnel Name","xml":"<set>\n<parameter name='tmp.tunnel-vgMUX-vG-name' value=\"`'vxlanTun' + $tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vg-ip` \" />\n<parameter name='tmp.tunnel-vgMUX-vBRG-name' value=\"`'vxlanTun' + $tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip` \" />\n","comments":"","x":579.0001220703125,"y":1018.6667947769165,"z":"a0656fc9.dda71","wires":[]},{"id":"3b28aa19.65e62e","type":"set","name":"set vgMUX-vBRG VXLAN Tunnel Port Props","xml":"<set>\n<parameter name='tmp.tunnel-name' value=\"`$tmp.tunnel-vgMUX-vBRG-name` \" />\n<parameter name='tmp.tunnel-dest-ip' value=\"`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip` \" />\n<parameter name='tmp.tunnel-src-ip' value=\"`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-lan-ip` \" />\n<parameter name='tmp.tunnel-vni' value=\"`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vni` \" />","comments":"","x":534.0001220703125,"y":1640.3334667682648,"z":"a0656fc9.dda71","wires":[]},{"id":"b2c28342.d9721","type":"execute","name":"execute RestApiCallNode - setup vgMUX-vBRG vxlan tunnel port","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.vxlan-tunnel.templatefile`\" />\n    <parameter name='restapiUrl' value='`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url`' />\n    <parameter name='restapiUser' value='`$prop.honeycomb.user`' />\n    <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"honeycomb-vnf\" />\n\n","comments":"","outputs":1,"x":586.0000915527344,"y":1800.3334696292877,"z":"a0656fc9.dda71","wires":[["8d18a5ff.3d88c","3d920785.09aed8","ac165b02.b084c8"]]},{"id":"8d18a5ff.3d88c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":952.3081817626953,"y":1782.6650616154075,"z":"a0656fc9.dda71","wires":[["2df9823e.abe206"]]},{"id":"3d920785.09aed8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":943.3082313537598,"y":1751.165087364614,"z":"a0656fc9.dda71","wires":[["2df9823e.abe206"]]},{"id":"ac165b02.b084c8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":947.0582695007324,"y":1721.5221922397614,"z":"a0656fc9.dda71","wires":[["157122c.0b10c5d"]]},{"id":"2df9823e.abe206","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 md-sal for tunnelxconn-allotted-resource\" />\n","comments":"","x":1113.0582695007324,"y":1751.915111206472,"z":"a0656fc9.dda71","wires":[]},{"id":"157122c.0b10c5d","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1088.7142372131348,"y":1717.7143614292145,"z":"a0656fc9.dda71","wires":[[]]},{"id":"b047a9c4.e403f8","type":"execute","name":"generate full vgMUX-vBRG vpp-honeycomb url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.vpp-honeycomb`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.vpp-honeycomb-url\"/>\n    <parameter name=\"target\" value=\"{tunnel-name}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.tunnel-name`\"/>\n","comments":"","outputs":1,"x":538.0000610351562,"y":1692.3334228992462,"z":"a0656fc9.dda71","wires":[[]]},{"id":"b6b159ec.524da","type":"set","name":"set vgMUX-vBG xconnect url","xml":"<set>\n<parameter name='tmp.tunnel-name' value=\"`$tmp.tunnel-vgMUX-vG-name` \" />","comments":"","x":472.0000801086426,"y":2028.3334791660309,"z":"a0656fc9.dda71","wires":[]},{"id":"af2b59b0.78298","type":"execute","name":"generate full vgMUX-vG xconnect url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.vpp-honeycomb`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.vpp-honeycomb-url\"/>\n    <parameter name=\"target\" value=\"{tunnel-name}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.tunnel-name`\"/>\n","comments":"","outputs":1,"x":500.0000305175781,"y":2090.333482027054,"z":"a0656fc9.dda71","wires":[[]]},{"id":"9eb192c2.c1a4a","type":"set","name":"set xconnect Tunnel target","xml":"<set>\n<parameter name='tmp.tunnel-name' value=\"`$tmp.tunnel-vgMUX-vBRG-name` \" />\n","comments":"","x":468.0000762939453,"y":2158.3334839344025,"z":"a0656fc9.dda71","wires":[]},{"id":"96a57432.cd3f48","type":"set","name":"set xconnect Tunnel target","xml":"<set>\n<parameter name='tmp.tunnel-name' value=\"`$tmp.tunnel-vgMUX-vG-name` \" />\n","comments":"","x":460.00012969970703,"y":1864.3334696292877,"z":"a0656fc9.dda71","wires":[]},{"id":"56b12519.af5d7c","type":"execute","name":"execute RestApiCallNode - setup vgMUX-vG vxlan tunnel xconnect","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.xconnect.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url + '/v3po:l2' `\" />\n    <parameter name='restapiUser' value='`$prop.honeycomb.user`' />\n    <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"honeycomb-vnf\" />\n\n","comments":"","outputs":1,"x":596.0000915527344,"y":2246.333485841751,"z":"a0656fc9.dda71","wires":[["567f008d.530b38","7391da9b.52c7ac","d4f8e79f.58389"]]},{"id":"567f008d.530b38","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":926.3081722259521,"y":2284.665021084249,"z":"a0656fc9.dda71","wires":[["b0cbf535.cca87"]]},{"id":"7391da9b.52c7ac","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":917.3082218170166,"y":2253.1650468334556,"z":"a0656fc9.dda71","wires":[["b0cbf535.cca87"]]},{"id":"d4f8e79f.58389","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":921.0582599639893,"y":2223.522151708603,"z":"a0656fc9.dda71","wires":[["eec2eb05.db5c68"]]},{"id":"b0cbf535.cca87","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 md-sal for tunnelxconn-allotted-resource\" />\n","comments":"","x":1085.0583305358887,"y":2253.9151890277863,"z":"a0656fc9.dda71","wires":[]},{"id":"eec2eb05.db5c68","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1062.7142276763916,"y":2219.714320898056,"z":"a0656fc9.dda71","wires":[[]]},{"id":"83ccddb3.a48628","type":"comment","name":"Get vgmux-mgmt-ip","info":"","comments":"","x":269.3334274291992,"y":1067.0002641677856,"z":"a0656fc9.dda71","wires":[]},{"id":"16acd9a9.cf4c3e","type":"get-resource","name":"get-resource IPADDR from dmaap DHCP_MAP ","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='IPADDR' key=\"SELECT min(ip_addr) ip from DHCP_MAP where mac_addr = $tx-ar.allotted-resource-data.allotted-resource-operation-information.tunnelxconn-request-input.brg-wan-mac-address\" pfx=\"tmp.brg-wan-ip\" >\n","comments":"","outputs":1,"x":540.0000152587891,"y":907.6666488647461,"z":"a0656fc9.dda71","wires":[[]]},{"id":"ed7953e3.9a1dd","type":"set","name":"set tunnelxconn-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip","xml":"<set>\n<parameter name='tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip' value='`$tmp.brg-wan-ip.ip`' />\n","comments":"","x":711.597412109375,"y":963.5832824707031,"z":"a0656fc9.dda71","wires":[]},{"id":"a7d43db8.11ef7","type":"call","name":"call GENERIC-RESOURCE-API:get-vnf-api-parent-instance","xml":"<call module='GENERIC-RESOURCE-API' rpc='get-vnf-api-parent-instance' mode='sync' >\n\n","comments":"","outputs":1,"x":576.8182067871094,"y":1173.8786926269531,"z":"a0656fc9.dda71","wires":[[]]},{"id":"29793093.a5cc08","type":"set","name":"set tmp.search.parent-service-instance-id to find vgmux-mgmt-ip","xml":"<set>\n<parameter name='tmp.search.parent-service-instance-id' value='`$tmp.ar.parent-service-instance-id`' />\n","comments":"","x":585.8485412597656,"y":1117.9696044921875,"z":"a0656fc9.dda71","wires":[]},{"id":"cdc07dd4.4d57a","type":"set","name":"set vgmux-mgmt-ip","xml":"<set>\n<parameter name='tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-mgmt-ip' value='`$parent-service-instance.service-data.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-value`' />\n<!--\n<parameter name='tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-mgmt-ip' value='`$parent-service-instance.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-value`' />\n\n-->","comments":"","x":1331.666488647461,"y":1281.000111579895,"z":"a0656fc9.dda71","wires":[]},{"id":"d71aa0a1.4f6ba","type":"for","name":"for vnf-parameters in parent-service-instance","xml":"<for index='paramidx' start='0' end='`$parent-service-instance.service-data.vnf-topology-information.vnf-parameters_length`' >\n<!--\n<for index='paramidx' start='0' end='`$parent-service-instance.vnf-topology-information.vnf-parameters_length`' >\n-->","comments":"","outputs":1,"x":531.666633605957,"y":1285.9997749328613,"z":"a0656fc9.dda71","wires":[["6d5d0bfe.6c00cc"]]},{"id":"6d5d0bfe.6c00cc","type":"switchNode","name":"switch parameter matches vgmux_private_ip_1","xml":"<switch test='`$parent-service-instance.service-data.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-name == vgmux_private_ip_1`'>\n<!--\n<switch test='`$parent-service-instance.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-name == vgmux_private_ip_1`'>\n-->\n\n\n","comments":"","outputs":1,"x":903.000114440918,"y":1284.9997787475586,"z":"a0656fc9.dda71","wires":[["67516516.43e044"]]},{"id":"67516516.43e044","type":"success","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1161.66646194458,"y":1282.6665105819702,"z":"a0656fc9.dda71","wires":[["cdc07dd4.4d57a"]]},{"id":"f628720e.e34c48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value='' />\n","comments":"","x":167,"y":1284,"z":"a0656fc9.dda71","wires":[]},{"id":"8781404d.98ab08","type":"execute","name":"execute printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/tunnel-xconn-create.log' />\n","comments":"","outputs":1,"x":508.3796691894531,"y":1584.8198165893555,"z":"a0656fc9.dda71","wires":[[]]},{"id":"da0f6bfc.76bbe","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value='' />\n","comments":"","x":212.7272491455078,"y":1640,"z":"a0656fc9.dda71","wires":[]},{"id":"dd9f04d8.f9b078","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value='' />\n","comments":"","x":1097.272705078125,"y":931.8181915283203,"z":"a0656fc9.dda71","wires":[]}]
+[
+  {
+    "id":"4bd5bd37.f86d04",
+    "type":"dgstart",
+    "name":"DGSTART",
+    "outputs":1,
+    "x":127,
+    "y":66,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "f4ab63ca.eb92a"
+      ]
+    ]
+  },
+  {
+    "id":"f4ab63ca.eb92a",
+    "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":223.23807907104492,
+    "y":126.95239067077637,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "426678bd.cf9e68"
+      ]
+    ]
+  },
+  {
+    "id":"426678bd.cf9e68",
+    "type":"method",
+    "name":"tunnelxconn-topology-operation-create",
+    "xml":"<method rpc='tunnelxconn-topology-operation-create' mode='sync'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":269.15485763549805,
+    "y":162.19044589996338,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "2ec1984d.225ac8"
+      ]
+    ]
+  },
+  {
+    "id":"2ec1984d.225ac8",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "comments":"",
+    "outputs":1,
+    "x":129.97619247436523,
+    "y":898.0238044261932,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "32cfcb41.379404",
+        "10ef459.468ceba",
+        "b51a0259.f39a2",
+        "488f5b92.19e194",
+        "787b91d3.6f1fe",
+        "2b0e5257.490a3e",
+        "9b64b236.89e9f",
+        "9da96735.692f78",
+        "15d54a99.c0a1e5",
+        "c2739924.e1f078",
+        "1f4eaef5.3277a1",
+        "a7ed4806.925918",
+        "8bba30cc.fe5ba",
+        "32eb1163.d516be",
+        "8f7dd07f.e05c5",
+        "cfb5feab.0f438",
+        "5842add0.278be4",
+        "ea47a00.0f61f6",
+        "d034836c.ceb1a",
+        "4c2c728.25a0a8c",
+        "6e72d3ba.6430bc",
+        "5cb177b5.36c428",
+        "2a44f1bf.b73b4e",
+        "791a374c.f3ff58",
+        "9d5f28a5.d56c08",
+        "4524025f.df47bc",
+        "88eb2c2f.53683",
+        "1621ed9e.9cfd52",
+        "af6234fd.552b38",
+        "33869022.a4f21"
+      ]
+    ]
+  },
+  {
+    "id":"10ef459.468ceba",
+    "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":398.6669921875,
+    "y":2528.548095703125,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"32cfcb41.379404",
+    "type":"set",
+    "name":"set output to api handler",
+    "xml":"<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='tunnelxconn-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $tunnelxconn-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n",
+    "comments":"",
+    "x":433.4208984375,
+    "y":2449.670654296875,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"c2739924.e1f078",
+    "type":"set",
+    "name":"set allotted-resource-oper-status",
+    "xml":"<set>\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$tunnelxconn-topology-operation-input.request-information.request-action`' />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$tunnelxconn-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$tunnelxconn-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n",
+    "comments":"",
+    "x":483.7542190551758,
+    "y":686.0514001846313,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"488f5b92.19e194",
+    "type":"set",
+    "name":"set tmp.ar.self-link",
+    "xml":"<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:tunnelxconn-allotted-resources/tunnelxconn-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/tunnelxconn-topology/'` \" />\n\n",
+    "comments":"",
+    "x":439.73806381225586,
+    "y":279.33332538604736,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"b51a0259.f39a2",
+    "type":"set",
+    "name":"set tmp.ar.allotted-resource-id,etc",
+    "xml":"<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$tunnelxconn-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$tunnelxconn-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n\n\n",
+    "comments":"",
+    "x":486.9973258972168,
+    "y":245.59259128570557,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"787b91d3.6f1fe",
+    "type":"execute",
+    "name":"execute Properties",
+    "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":441.9934387207031,
+    "y":315.231538772583,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"9b64b236.89e9f",
+    "type":"execute",
+    "name":"execute RestApiCallNode - Get AR by id",
+    "xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":508.5187530517578,
+    "y":476.4594917297363,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "5fdfdba3.dcaa04",
+        "157b26bb.b56649"
+      ]
+    ]
+  },
+  {
+    "id":"2b0e5257.490a3e",
+    "type":"execute",
+    "name":"generate allotted-resource url",
+    "xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.tx-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+    "comments":"",
+    "outputs":1,
+    "x":474.0648536682129,
+    "y":375.0172290802002,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"5fdfdba3.dcaa04",
+    "type":"success",
+    "name":"success",
+    "xml":"<outcome value='success'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":765.8148918151855,
+    "y":475.26725220680237,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "54ce9aad.792d54"
+      ]
+    ]
+  },
+  {
+    "id":"9da96735.692f78",
+    "type":"execute",
+    "name":"execute RestApiCallNode - PUT AR by id",
+    "xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.tx.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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-ar\" />\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":506.5293273925781,
+    "y":812.7675542831421,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "78834b98.051174",
+        "38f6f73f.0e20a8",
+        "1a175827.1c4498"
+      ]
+    ]
+  },
+  {
+    "id":"78834b98.051174",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":814.8373680114746,
+    "y":817.0991821289062,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "94d3b068.ac6cf"
+      ]
+    ]
+  },
+  {
+    "id":"38f6f73f.0e20a8",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":807.8373947143555,
+    "y":777.5990890488029,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "94d3b068.ac6cf"
+      ]
+    ]
+  },
+  {
+    "id":"1a175827.1c4498",
+    "type":"success",
+    "name":"success",
+    "xml":"<outcome value='success'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":811.5874328613281,
+    "y":747.9561939239502,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "bf19aea.7bd1f5"
+      ]
+    ]
+  },
+  {
+    "id":"94d3b068.ac6cf",
+    "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 md-sal for tunnelxconn-allotted-resource\" />\n",
+    "comments":"",
+    "x":977.5874328613281,
+    "y":778.3491128906608,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"54ce9aad.792d54",
+    "type":"block",
+    "name":"block: atomic",
+    "xml":"<block atomic=\"true\">\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":946.8148460388184,
+    "y":475.7672016620636,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "c3db8bf6.53bff8",
+        "e928ef80.4dbaf"
+      ]
+    ]
+  },
+  {
+    "id":"c3db8bf6.53bff8",
+    "type":"switchNode",
+    "name":"switch tx length",
+    "xml":"<switch test='`$mdsal-ar.tunnelxconn-allotted-resource_length`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1192.6720924377441,
+    "y":510.052964925766,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "7b9c79d1.b19188"
+      ]
+    ]
+  },
+  {
+    "id":"7b9c79d1.b19188",
+    "type":"other",
+    "name":"outcome 1",
+    "xml":"<outcome value='1'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1383.6720962524414,
+    "y":510.0529625415802,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "af9a1a72.a82fe8"
+      ]
+    ]
+  },
+  {
+    "id":"e04e6dca.76365",
+    "type":"set",
+    "name":"set tx-ar from get",
+    "xml":"<set>\n<parameter name='tx-ar.' value='$mdsal-ar.tunnelxconn-allotted-resource[0].' />\n",
+    "comments":"",
+    "x":1783.5292320251465,
+    "y":510.62438678741455,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"af9a1a72.a82fe8",
+    "type":"block",
+    "name":"block: atomic",
+    "xml":"<block atomic='true'>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":1554.5290794372559,
+    "y":510.6244316101074,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "e04e6dca.76365",
+        "1983376a.f9c999",
+        "d7aed103.b9628"
+      ]
+    ]
+  },
+  {
+    "id":"1983376a.f9c999",
+    "type":"set",
+    "name":"set oper-status",
+    "xml":"<set>\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$tx-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$tx-ar.allotted-resource-status.rpc-action`' />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$tx-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n",
+    "comments":"",
+    "x":1781.5294761657715,
+    "y":578.0529508590698,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"6a1ab1f4.45b32",
+    "type":"comment",
+    "name":"GET tunnelxconn-allotted-resource from mdsal",
+    "info":"",
+    "comments":"",
+    "x":533.8148155212402,
+    "y":439.7671926021576,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"d7aed103.b9628",
+    "type":"switchNode",
+    "name":"switch order-status",
+    "xml":"<switch test='`$tx-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1791.52925491333,
+    "y":543.6243848800659,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "c21bad97.2b01b",
+        "139070ae.43418f"
+      ]
+    ]
+  },
+  {
+    "id":"c21bad97.2b01b",
+    "type":"outcome",
+    "name":"outcome PendingCreate",
+    "xml":"<outcome value='PendingCreate'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":2003.1292114257812,
+    "y":504.6243848800659,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "ebb3aaed.f79098"
+      ]
+    ]
+  },
+  {
+    "id":"139070ae.43418f",
+    "type":"outcome",
+    "name":"outcome Other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":2028.8435859680176,
+    "y":540.052975654602,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "ebb3aaed.f79098"
+      ]
+    ]
+  },
+  {
+    "id":"36945235.7bd9de",
+    "type":"comment",
+    "name":"Set allotted-resource-identifiers",
+    "info":"",
+    "comments":"",
+    "x":489.33863830566406,
+    "y":530.3386459350586,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"e928ef80.4dbaf",
+    "type":"set",
+    "name":"save backup copy of mdsal-ar for rollback",
+    "xml":"<set>\n<parameter name='bk-tx-ar' value='$mdsal-ar.' />\n",
+    "comments":"",
+    "x":1272.3864250183105,
+    "y":475.76729369163513,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"bea8560a.48f358",
+    "type":"comment",
+    "name":"Create urls for restapi",
+    "info":"",
+    "comments":"",
+    "x":444.9576606750488,
+    "y":344.6243562698364,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"bf19aea.7bd1f5",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":953.2434005737305,
+    "y":744.1483631134033,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"d7acef0d.1766d",
+    "type":"comment",
+    "name":"TO DO: vnf/put parent",
+    "info":"",
+    "comments":"",
+    "x":457.2433776855469,
+    "y":751.4815540313718,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"15d54a99.c0a1e5",
+    "type":"execute",
+    "name":"execute getTime",
+    "xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":431.24338150024414,
+    "y":647.4815549850464,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"157b26bb.b56649",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":765.5766868591309,
+    "y":511.4814250469208,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "b6c600ed.7d738"
+      ]
+    ]
+  },
+  {
+    "id":"b6c600ed.7d738",
+    "type":"block",
+    "name":"block: atomic",
+    "xml":"<block atomic=\"true\">\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":945.5766372680664,
+    "y":512.1479756832123,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"1f4eaef5.3277a1",
+    "type":"set",
+    "name":"set id",
+    "xml":"<set>\n<parameter name='tx-ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='tx-ar.allotted-resource-status.action' value=\"`$tunnelxconn-topology-operation-input.request-information.request-action` \" />\n<parameter name='tx-ar.allotted-resource-status.rpc-name' value=\"tunnelxconn-topology-operation\" />\n<parameter name='tx-ar.allotted-resource-status.rpc-action' value=\"`$tunnelxconn-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$tunnelxconn-topology-operation-input.request-information.` \" />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$tunnelxconn-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$tunnelxconn-topology-operation-input.service-information.` \" />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$tunnelxconn-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.tunnelxconn-request-input.' value=\"`$tunnelxconn-topology-operation-input.tunnelxconn-request-input.` \" />",
+    "comments":"",
+    "x":406.24343490600586,
+    "y":569.1481971740723,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"ebb3aaed.f79098",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":2217.5997276306152,
+    "y":506.0000190734863,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"8f7dd07f.e05c5",
+    "type":"execute",
+    "name":"execute RestApiCallNode - setup vgMUX-vG vxlan tunnel port",
+    "xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.vxlan-tunnel.templatefile`\" />\n    <parameter name='restapiUrl' value='`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url`' />\n    <parameter name='restapiUser' value='`$prop.honeycomb.user`' />\n    <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"honeycomb-vnf\" />\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":568.8331909179688,
+    "y":1527.4521162509918,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "a14dc204.8d341",
+        "284ca85d.512f28",
+        "b3f6249b.426088"
+      ]
+    ]
+  },
+  {
+    "id":"a14dc204.8d341",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":933.1413116455078,
+    "y":1569.783754967153,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "e808154c.2623e8"
+      ]
+    ]
+  },
+  {
+    "id":"284ca85d.512f28",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":924.1413612365723,
+    "y":1538.2837807163596,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "e808154c.2623e8"
+      ]
+    ]
+  },
+  {
+    "id":"b3f6249b.426088",
+    "type":"success",
+    "name":"success",
+    "xml":"<outcome value='success'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":927.8913993835449,
+    "y":1508.640885591507,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "9406225.ddaf0e"
+      ]
+    ]
+  },
+  {
+    "id":"e808154c.2623e8",
+    "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 md-sal for tunnelxconn-allotted-resource\" />\n",
+    "comments":"",
+    "x":1093.891399383545,
+    "y":1539.0338045582175,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"9406225.ddaf0e",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":1069.5473670959473,
+    "y":1504.83305478096,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"8bba30cc.fe5ba",
+    "type":"set",
+    "name":"set vgMUX-vG VXLAN Tunnel Port Props",
+    "xml":"<set>\n<parameter name='tmp.tunnel-name' value=\"`$tmp.tunnel-vgMUX-vG-name` \" />\n<parameter name='tmp.tunnel-dest-ip' value=\"`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vg-ip` \" />\n<parameter name='tmp.tunnel-src-ip' value=\"`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-bearer-ip` \" />\n<parameter name='tmp.tunnel-vni' value=\"`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vni` \" />",
+    "comments":"",
+    "x":503.9443817138672,
+    "y":1419.7860252857208,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"32eb1163.d516be",
+    "type":"execute",
+    "name":"generate full vgMUX-vG vpp-honeycomb url",
+    "xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.vpp-honeycomb`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.vpp-honeycomb-url\"/>\n    <parameter name=\"target\" value=\"{tunnel-name}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.tunnel-name`\"/>\n",
+    "comments":"",
+    "outputs":1,
+    "x":507.9443817138672,
+    "y":1486.4522392749786,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"a7ed4806.925918",
+    "type":"execute",
+    "name":"generate honeycomb-url to vgMUX",
+    "xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.honeycomb.url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.honeycomb.url\"/>\n    <parameter name=\"target\" value=\"{honeycomb-instance-ip}\"/>\n    <parameter name=\"replacement\" value=\"`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-mgmt-ip`\"/>\n",
+    "comments":"",
+    "outputs":1,
+    "x":487.2776794433594,
+    "y":1358.119027376175,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"cfb5feab.0f438",
+    "type":"execute",
+    "name":"execute RestApiCallNode - setup vgMUX-vBRG vxlan tunnel xconnect",
+    "xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.xconnect.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url + '/v3po:l2' `\" />\n    <parameter name='restapiUser' value='`$prop.honeycomb.user`' />\n    <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"honeycomb-vnf\" />\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":584.5001220703125,
+    "y":1945.000272989273,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "37d8112.512f9ee",
+        "d9dbd6bb.b6c748",
+        "e43b621a.00f7a"
+      ]
+    ]
+  },
+  {
+    "id":"37d8112.512f9ee",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":914.8082027435303,
+    "y":1983.331808231771,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "de2f1fde.22f26"
+      ]
+    ]
+  },
+  {
+    "id":"d9dbd6bb.b6c748",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":905.8082523345947,
+    "y":1951.8318339809775,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "de2f1fde.22f26"
+      ]
+    ]
+  },
+  {
+    "id":"e43b621a.00f7a",
+    "type":"success",
+    "name":"success",
+    "xml":"<outcome value='success'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":909.5582904815674,
+    "y":1922.1889388561249,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "4a171ada.482344"
+      ]
+    ]
+  },
+  {
+    "id":"de2f1fde.22f26",
+    "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 md-sal for tunnelxconn-allotted-resource\" />\n",
+    "comments":"",
+    "x":1075.5582904815674,
+    "y":1952.5818578228354,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"4a171ada.482344",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":1051.2142581939697,
+    "y":1918.381108045578,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"5842add0.278be4",
+    "type":"set",
+    "name":"set vgMUX to vG and vgMUX to vBRG VXLAN Tunnel Name",
+    "xml":"<set>\n<parameter name='tmp.tunnel-vgMUX-vG-name' value=\"`'vxlanTun' + $tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vg-ip` \" />\n<parameter name='tmp.tunnel-vgMUX-vBRG-name' value=\"`'vxlanTun' + $tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip` \" />\n",
+    "comments":"",
+    "x":561.0001220703125,
+    "y":1003.6667947769165,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"ea47a00.0f61f6",
+    "type":"set",
+    "name":"set vgMUX-vBRG VXLAN Tunnel Port Props",
+    "xml":"<set>\n<parameter name='tmp.tunnel-name' value=\"`$tmp.tunnel-vgMUX-vBRG-name` \" />\n<parameter name='tmp.tunnel-dest-ip' value=\"`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip` \" />\n<parameter name='tmp.tunnel-src-ip' value=\"`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-lan-ip` \" />\n<parameter name='tmp.tunnel-vni' value=\"`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vni` \" />",
+    "comments":"",
+    "x":516.0001220703125,
+    "y":1625.3334667682648,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"4c2c728.25a0a8c",
+    "type":"execute",
+    "name":"execute RestApiCallNode - setup vgMUX-vBRG vxlan tunnel port",
+    "xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.vxlan-tunnel.templatefile`\" />\n    <parameter name='restapiUrl' value='`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url`' />\n    <parameter name='restapiUser' value='`$prop.honeycomb.user`' />\n    <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"honeycomb-vnf\" />\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":568.0000915527344,
+    "y":1785.3334696292877,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "996a3cce.097c6",
+        "c1448167.bb548",
+        "9df5070b.8acf98"
+      ]
+    ]
+  },
+  {
+    "id":"996a3cce.097c6",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":934.3081817626953,
+    "y":1767.6650616154075,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "91cb2799.fe3cb8"
+      ]
+    ]
+  },
+  {
+    "id":"c1448167.bb548",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":925.3082313537598,
+    "y":1736.165087364614,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "91cb2799.fe3cb8"
+      ]
+    ]
+  },
+  {
+    "id":"9df5070b.8acf98",
+    "type":"success",
+    "name":"success",
+    "xml":"<outcome value='success'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":929.0582695007324,
+    "y":1706.5221922397614,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "1ec51b4d.a24c65"
+      ]
+    ]
+  },
+  {
+    "id":"91cb2799.fe3cb8",
+    "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 md-sal for tunnelxconn-allotted-resource\" />\n",
+    "comments":"",
+    "x":1095.0582695007324,
+    "y":1736.915111206472,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"1ec51b4d.a24c65",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":1070.7142372131348,
+    "y":1702.7143614292145,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"d034836c.ceb1a",
+    "type":"execute",
+    "name":"generate full vgMUX-vBRG vpp-honeycomb url",
+    "xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.vpp-honeycomb`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.vpp-honeycomb-url\"/>\n    <parameter name=\"target\" value=\"{tunnel-name}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.tunnel-name`\"/>\n",
+    "comments":"",
+    "outputs":1,
+    "x":520.0000610351562,
+    "y":1677.3334228992462,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"5cb177b5.36c428",
+    "type":"set",
+    "name":"set vgMUX-vBG xconnect url",
+    "xml":"<set>\n<parameter name='tmp.tunnel-name' value=\"`$tmp.tunnel-vgMUX-vG-name` \" />",
+    "comments":"",
+    "x":454.0000801086426,
+    "y":2013.3334791660309,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"2a44f1bf.b73b4e",
+    "type":"execute",
+    "name":"generate full vgMUX-vG xconnect url",
+    "xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.vpp-honeycomb`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.vpp-honeycomb-url\"/>\n    <parameter name=\"target\" value=\"{tunnel-name}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.tunnel-name`\"/>\n",
+    "comments":"",
+    "outputs":1,
+    "x":482.0000305175781,
+    "y":2075.333482027054,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"791a374c.f3ff58",
+    "type":"set",
+    "name":"set xconnect Tunnel target",
+    "xml":"<set>\n<parameter name='tmp.tunnel-name' value=\"`$tmp.tunnel-vgMUX-vBRG-name` \" />\n",
+    "comments":"",
+    "x":450.0000762939453,
+    "y":2143.3334839344025,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"6e72d3ba.6430bc",
+    "type":"set",
+    "name":"set xconnect Tunnel target",
+    "xml":"<set>\n<parameter name='tmp.tunnel-name' value=\"`$tmp.tunnel-vgMUX-vG-name` \" />\n",
+    "comments":"",
+    "x":442.00012969970703,
+    "y":1849.3334696292877,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"9d5f28a5.d56c08",
+    "type":"execute",
+    "name":"execute RestApiCallNode - setup vgMUX-vG vxlan tunnel xconnect",
+    "xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.xconnect.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url + '/v3po:l2' `\" />\n    <parameter name='restapiUser' value='`$prop.honeycomb.user`' />\n    <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"honeycomb-vnf\" />\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":578.0000915527344,
+    "y":2231.333485841751,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "22ae7c19.cc9fd4",
+        "3156119c.9e4b7e",
+        "6862ce93.4351f"
+      ]
+    ]
+  },
+  {
+    "id":"22ae7c19.cc9fd4",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":908.3081722259521,
+    "y":2269.665021084249,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "681e50ab.c45c"
+      ]
+    ]
+  },
+  {
+    "id":"3156119c.9e4b7e",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":899.3082218170166,
+    "y":2238.1650468334556,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "681e50ab.c45c"
+      ]
+    ]
+  },
+  {
+    "id":"6862ce93.4351f",
+    "type":"success",
+    "name":"success",
+    "xml":"<outcome value='success'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":903.0582599639893,
+    "y":2208.522151708603,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "62f4ced7.a4af3"
+      ]
+    ]
+  },
+  {
+    "id":"681e50ab.c45c",
+    "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 md-sal for tunnelxconn-allotted-resource\" />\n",
+    "comments":"",
+    "x":1067.0583305358887,
+    "y":2238.9151890277863,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"62f4ced7.a4af3",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":1044.7142276763916,
+    "y":2204.714320898056,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"88c3d8e8.fd9bf8",
+    "type":"comment",
+    "name":"Get vgmux-mgmt-ip",
+    "info":"",
+    "comments":"",
+    "x":251.33342742919922,
+    "y":1052.0002641677856,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"af6234fd.552b38",
+    "type":"get-resource",
+    "name":"get-resource IPADDR from dmaap DHCP_MAP ",
+    "xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='IPADDR' key=\"SELECT min(ip_addr) ip from DHCP_MAP where mac_addr = $tx-ar.allotted-resource-data.allotted-resource-operation-information.tunnelxconn-request-input.brg-wan-mac-address\" pfx=\"tmp.brg-wan-ip\" >\n",
+    "comments":"",
+    "outputs":1,
+    "x":522.0000152587891,
+    "y":892.6666488647461,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"33869022.a4f21",
+    "type":"set",
+    "name":"set tunnelxconn-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip",
+    "xml":"<set>\n<parameter name='tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip' value='`$tmp.brg-wan-ip.ip`' />\n",
+    "comments":"",
+    "x":693.597412109375,
+    "y":948.5832824707031,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"88eb2c2f.53683",
+    "type":"call",
+    "name":"call GENERIC-RESOURCE-API:get-vnf-api-parent-instance",
+    "xml":"<call module='GENERIC-RESOURCE-API' rpc='get-vnf-api-parent-instance' mode='sync' >\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":558.8182067871094,
+    "y":1158.8786926269531,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"4524025f.df47bc",
+    "type":"set",
+    "name":"set tmp.search.parent-service-instance-id to find vgmux-mgmt-ip",
+    "xml":"<set>\n<parameter name='tmp.search.parent-service-instance-id' value='`$tmp.ar.parent-service-instance-id`' />\n",
+    "comments":"",
+    "x":567.8485412597656,
+    "y":1102.9696044921875,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"95dae94.88e3f18",
+    "type":"set",
+    "name":"set vgmux-mgmt-ip",
+    "xml":"<set>\n<parameter name='tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-mgmt-ip' value='`$parent-service-instance.service-data.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-value`' />\n<!--\n<parameter name='tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-mgmt-ip' value='`$parent-service-instance.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-value`' />\n\n-->",
+    "comments":"",
+    "x":1313.666488647461,
+    "y":1266.000111579895,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"1621ed9e.9cfd52",
+    "type":"for",
+    "name":"for vnf-parameters in parent-service-instance",
+    "xml":"<for index='paramidx' start='0' end='`$parent-service-instance.service-data.vnf-topology-information.vnf-parameters_length`' >\n<!--\n<for index='paramidx' start='0' end='`$parent-service-instance.vnf-topology-information.vnf-parameters_length`' >\n-->",
+    "comments":"",
+    "outputs":1,
+    "x":513.666633605957,
+    "y":1270.9997749328613,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "ee03e253.4d7d6"
+      ]
+    ]
+  },
+  {
+    "id":"ee03e253.4d7d6",
+    "type":"switchNode",
+    "name":"switch parameter matches vgmux_private_ip_1",
+    "xml":"<switch test='`$parent-service-instance.service-data.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-name == vgmux_private_ip_1`'>\n<!--\n<switch test='`$parent-service-instance.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-name == vgmux_private_ip_1`'>\n-->\n\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":885.000114440918,
+    "y":1269.9997787475586,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "18221f86.51e54"
+      ]
+    ]
+  },
+  {
+    "id":"18221f86.51e54",
+    "type":"success",
+    "name":"true",
+    "xml":"<outcome value='true'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1143.66646194458,
+    "y":1267.6665105819702,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+        "95dae94.88e3f18"
+      ]
+    ]
+  },
+  {
+    "id":"df4b5b2a.cf7c58",
+    "type":"returnFailure",
+    "name":"return failure",
+    "xml":"<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value='' />\n",
+    "comments":"",
+    "x":149,
+    "y":1269,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"16bf3f62.43de21",
+    "type":"execute",
+    "name":"execute printContext",
+    "xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/tunnel-xconn-create.log' />\n",
+    "comments":"",
+    "outputs":1,
+    "x":490.3796691894531,
+    "y":1569.8198165893555,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"af2cb6d9.632eb8",
+    "type":"returnFailure",
+    "name":"return failure",
+    "xml":"<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value='' />\n",
+    "comments":"",
+    "x":194.7272491455078,
+    "y":1625,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"31198a25.789e76",
+    "type":"returnFailure",
+    "name":"return failure",
+    "xml":"<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value='' />\n",
+    "comments":"",
+    "x":1079.272705078125,
+    "y":916.8181915283203,
+    "z":"b012a4c9.78c2f8",
+    "wires":[
+
+    ]
+  }
+]
\ No newline at end of file
index b36da88..883ee40 100755 (executable)
@@ -1 +1,3959 @@
-[{"id":"12243e05.ed25c2","type":"dgstart","name":"DGSTART","outputs":1,"x":180,"y":156,"z":"f8904431.05f2f","wires":[["f4d1c0a3.d5f31"]]},{"id":"f4d1c0a3.d5f31","type":"service-logic","name":"GENERIC-RESOURCE-API 1.2.0-SNAPSHOT-INT110901","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='1.2.0-SNAPSHOT-INT110901'>","outputs":1,"x":293.8571357727051,"y":195.80953788757324,"z":"f8904431.05f2f","wires":[["ecc152a5.bf1108"]]},{"id":"ecc152a5.bf1108","type":"method","name":"method vf-module-topology-operation-assign","xml":"<method rpc='vf-module-topology-operation-assign' mode='sync'>\n","comments":"","outputs":1,"x":293.42862701416016,"y":236,"z":"f8904431.05f2f","wires":[["5dc10cee.56be04"]]},{"id":"47ff7743.1d3758","type":"comment","name":"vf-module-topology-operation-assign","info":"","comments":"","x":585.3210983276367,"y":98.97569942474365,"z":"f8904431.05f2f","wires":[]},{"id":"a9aec9fd.79ae2","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":585.1905097961426,"y":411.52382230758667,"z":"f8904431.05f2f","wires":[["4c9e7.644f9e198","5a30603c.26735"]]},{"id":"4c9e7.644f9e198","type":"outcome","name":"CreateVfModuleInstance","xml":"<outcome value='CreateVfModuleInstance'>\n","comments":"","outputs":1,"x":847.2381248474121,"y":388.66670846939087,"z":"f8904431.05f2f","wires":[["55a8bac7.4c771c"]]},{"id":"5a30603c.26735","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":790.9047698974609,"y":434.0476975440979,"z":"f8904431.05f2f","wires":[["1744d698.e97981"]]},{"id":"55a8bac7.4c771c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1037.0952892303467,"y":388.6667399406433,"z":"f8904431.05f2f","wires":[[]]},{"id":"1744d698.e97981","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 'assign' then request-action must be 'CreateVfModuleInstance'\" />\n","comments":"","x":1055.9047775268555,"y":434.381010055542,"z":"f8904431.05f2f","wires":[]},{"id":"b014fa38.34005","type":"get-resource","name":"get-resource VF_MODULE_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODULE_MODEL WHERE customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-module-model'>\n\n","comments":"","outputs":1,"x":632.5237770080566,"y":502.66677236557007,"z":"f8904431.05f2f","wires":[["d8a8a29a.dca6","fc3f7599.66aaa"]]},{"id":"6e4f251b.17feac","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=\"`'No model found for VF module customization UUID ' + $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`\" />\n","comments":"","x":1073.9521980285645,"y":527.095244884491,"z":"f8904431.05f2f","wires":[]},{"id":"d8a8a29a.dca6","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":898.3094673156738,"y":483.0476031303406,"z":"f8904431.05f2f","wires":[["d7058096.cb5ff8"]]},{"id":"fc3f7599.66aaa","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":906.8808975219727,"y":527.3333163261414,"z":"f8904431.05f2f","wires":[["6e4f251b.17feac"]]},{"id":"d7058096.cb5ff8","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 reading VF_MODULE_MODEL table\" />\n","comments":"","x":1073.309398651123,"y":482.1905035972595,"z":"f8904431.05f2f","wires":[]},{"id":"b6f87a0.8006308","type":"switchNode","name":"switch service-data.vnfs.vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":627.6190414428711,"y":711.2381076812744,"z":"f8904431.05f2f","wires":[["7977778d.f4d74","9eec2ef4.0932c"]]},{"id":"7977778d.f4d74","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":868.3333129882812,"y":688.3808479309082,"z":"f8904431.05f2f","wires":[["4732f893.59306"]]},{"id":"9eec2ef4.0932c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":868.0951538085938,"y":729.333366394043,"z":"f8904431.05f2f","wires":[["6543ed07.361724"]]},{"id":"5dc10cee.56be04","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":234.99999237060547,"y":2405.9999599456787,"z":"f8904431.05f2f","wires":[["a9aec9fd.79ae2","b014fa38.34005","b6f87a0.8006308","24e6e61f.52f7fa","7278a5e5.34e4f4","481dcc0c.9eb044","f6138bf2.ad3c6","89532254.85a3d","1da89156.4d35c7","151894a2.272003","e9bf6c4c.c2ad2","1a344df3.fb7732","10188387.f28a2c","f8e58eca.5e5f5","ba9e655a.f1c4b","5ae5f387.50fd1c","cc25cb3a.593158","7de279db.be985","4cdc88c9.fda938","7d69c3ef.ea745c","39b8e65e.59c272","68e43af5.2c64a4","4f8e7534.cb8654","8874b3a6.20a57","3e4ceafe.888eee","11cfee21.5bdd6a","963118a6.12b53","967fc1c3.a568d","5bb2dea5.0b2c88","a1eb3f2f.dc5878","906d177a.23b878","35ae3c29.62e11c","12c538f6.bac537","d14590e1.bb8fd8","a8e24495.e3fae8","5037a7b6.fac458","7b68cee5.5f8108","2eeff3c5.141784","59c6a4fd.868b5c"]]},{"id":"4732f893.59306","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":1034.999927520752,"y":687.6666030883789,"z":"f8904431.05f2f","wires":[]},{"id":"6543ed07.361724","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":1030.3332977294922,"y":728.9999847412109,"z":"f8904431.05f2f","wires":[["d609b408.53f7e"]]},{"id":"d609b408.53f7e","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":1281.6665153503418,"y":728.6666717529297,"z":"f8904431.05f2f","wires":[["f5c75729.f841c"]]},{"id":"f5c75729.f841c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1511.6666069030762,"y":728.0000257492065,"z":"f8904431.05f2f","wires":[["cfa27455.96cc6"]]},{"id":"24e6e61f.52f7fa","type":"set","name":"set vnf-index to -1","xml":"<set>\n<parameter name='vnf-index' value='-1' />\n","comments":"","x":576.6666641235352,"y":642.6666069030762,"z":"f8904431.05f2f","wires":[]},{"id":"a60d7530.735ec","type":"set","name":"set vnf-index to idx","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1833.3332443237305,"y":698.9999837875366,"z":"f8904431.05f2f","wires":[]},{"id":"7278a5e5.34e4f4","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":566.6666717529297,"y":779.3333034515381,"z":"f8904431.05f2f","wires":[["5331991b.bd2008"]]},{"id":"5331991b.bd2008","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":745.000057220459,"y":778.6666793823242,"z":"f8904431.05f2f","wires":[["3036e668.82ac5a"]]},{"id":"3036e668.82ac5a","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":904.9999656677246,"y":777.9999828338623,"z":"f8904431.05f2f","wires":[]},{"id":"481dcc0c.9eb044","type":"switchNode","name":"switch vnf order status","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":589.6666946411133,"y":850.6667003631592,"z":"f8904431.05f2f","wires":[["39b8b432.a234f4","bf0bae35.6f47a8"]]},{"id":"39b8b432.a234f4","type":"outcome","name":"Created","xml":"<outcome value='Created'>\n","comments":"","outputs":1,"x":789.9999961853027,"y":824.3332843780518,"z":"f8904431.05f2f","wires":[["e236fa58.6c4788"]]},{"id":"e236fa58.6c4788","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":930.0000076293945,"y":824.3333263397217,"z":"f8904431.05f2f","wires":[[]]},{"id":"bf0bae35.6f47a8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":786.666633605957,"y":865.9999618530273,"z":"f8904431.05f2f","wires":[["af20908b.808098"]]},{"id":"af20908b.808098","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'VNF order status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status + ' but should be Created'`\" />\n","comments":"","x":946.666633605957,"y":865.6666488647461,"z":"f8904431.05f2f","wires":[]},{"id":"f6138bf2.ad3c6","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":593.333381652832,"y":942.6666212081909,"z":"f8904431.05f2f","wires":[["1318f7e3.2c3b78","ff070cf6.bcaf48"]]},{"id":"1318f7e3.2c3b78","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":850.7143363952637,"y":909.8093948364258,"z":"f8904431.05f2f","wires":[["43239df.8b3b464"]]},{"id":"43239df.8b3b464","type":"set","name":"set vf-module-index=0","xml":"<set>\n<parameter name='vf-module-index' value='0' />\n","comments":"","x":1038.3333740234375,"y":910.4761695861816,"z":"f8904431.05f2f","wires":[]},{"id":"ff070cf6.bcaf48","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":851.142879486084,"y":974.0952529907227,"z":"f8904431.05f2f","wires":[["94f25564.ea25b"]]},{"id":"a8559d0.6b0afe","type":"set","name":"set vf-module-index = vf-module_length","xml":"<set>\n<parameter name='vf-module-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n","comments":"","x":1236.3334197998047,"y":954.2856483459473,"z":"f8904431.05f2f","wires":[]},{"id":"78cc068f.8dd908","type":"for","name":"for each existing 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":1195.4285125732422,"y":998.3808784484863,"z":"f8904431.05f2f","wires":[["5458826e.777394"]]},{"id":"94f25564.ea25b","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":987.8571586608887,"y":974.095178604126,"z":"f8904431.05f2f","wires":[["a8559d0.6b0afe","78cc068f.8dd908"]]},{"id":"5458826e.777394","type":"switchNode","name":"switch vf-module-information.vf-module-id == service-data.vnfs.vnf[].vf-modules.vf-module[].vf-module-id","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.vf-module-id == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id`'>\n","comments":"","outputs":1,"x":1699.0476150512695,"y":997.9522895812988,"z":"f8904431.05f2f","wires":[["f26b82bf.e977d"]]},{"id":"f26b82bf.e977d","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2141.666664123535,"y":997.5237407684326,"z":"f8904431.05f2f","wires":[["668a01c2.f5b0e"]]},{"id":"668a01c2.f5b0e","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=\"`'VF module id ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id\n       + ' already exists, and status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-level-oper-status.order-status`\" />\n","comments":"","x":2293.571544647217,"y":997.5237274169922,"z":"f8904431.05f2f","wires":[]},{"id":"d3664b37.8af908","type":"comment","name":"make sure this VF module doesn't exist already","info":"","comments":"","x":1725.4999618530273,"y":952.5797815322876,"z":"f8904431.05f2f","wires":[]},{"id":"89532254.85a3d","type":"set","name":"set new vf-module_length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-module-index + 1`' />\n","comments":"","x":598.3333206176758,"y":1037.666555404663,"z":"f8904431.05f2f","wires":[]},{"id":"1da89156.4d35c7","type":"set","name":"set vf-module-topology data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`' />\n<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-type' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-type`' />\n<parameter name='tmp.vf-module-topology.tenant' value='`$vf-module-topology-operation-input.vf-module-request-input.tenant`' />\n<parameter name='tmp.vf-module-topology.aic-cloud-region' value='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`' />\n","comments":"","x":604.8333396911621,"y":1150.1666622161865,"z":"f8904431.05f2f","wires":[]},{"id":"6a5ff544.353914","type":"set","name":"set aic-clli","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli'\n   value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\n","comments":"","x":1365.7855987548828,"y":1309.4045886993408,"z":"f8904431.05f2f","wires":[]},{"id":"151894a2.272003","type":"switchNode","name":"switch aic-clli","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli`'>\n","comments":"","outputs":1,"x":564.8332595825195,"y":1423.3569288253784,"z":"f8904431.05f2f","wires":[["14c1e6e4.234661"]]},{"id":"14c1e6e4.234661","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":710.1189498901367,"y":1423.3569974899292,"z":"f8904431.05f2f","wires":[["ceed69fe.c2602"]]},{"id":"ceed69fe.c2602","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 aic-clli in AAI for aic-cloud-region ' + $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`\" />\n","comments":"","x":857.2618103027344,"y":1422.9284315109253,"z":"f8904431.05f2f","wires":[]},{"id":"e9bf6c4c.c2ad2","type":"get-resource","name":"get-resource cloud region","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"cloud-region\" \n\t\tkey=\"cloud-region.cloud-owner = 'CloudOwner' AND \n\t\t     cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\"\n        pfx='aai.cloud-region' local-only='false' >\n\n","comments":"","outputs":1,"x":603.6904754638672,"y":1223.5002002716064,"z":"f8904431.05f2f","wires":[["ecd445cc.ed455","17cd4cca.f319ab"]]},{"id":"17cd4cca.f319ab","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":817.9366683959961,"y":1241.6510562896729,"z":"f8904431.05f2f","wires":[["76a6aa7c.a50c54"]]},{"id":"76a6aa7c.a50c54","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 retrieving cloud region from AAI\" />\n","comments":"","x":992.9366416931152,"y":1241.6510925292969,"z":"f8904431.05f2f","wires":[]},{"id":"ecd445cc.ed455","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":826.8652648925781,"y":1199.9367895126343,"z":"f8904431.05f2f","wires":[["af0ea542.fcdfb"]]},{"id":"af0ea542.fcdfb","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=\"Cloud region not found in AAI\" />\n","comments":"","x":993.214542388916,"y":1199.2423667907715,"z":"f8904431.05f2f","wires":[]},{"id":"1a344df3.fb7732","type":"set","name":"set vf-module-parameters","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-parameters.'\n  value='vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.' />\n","comments":"","x":600.595287322998,"y":1872.7860202789307,"z":"f8904431.05f2f","wires":[]},{"id":"10188387.f28a2c","type":"set","name":"set order-status to PendingCreate","xml":"<set>\n<parameter name='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  value='PendingCreate' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n","comments":"","x":616.2262573242188,"y":5074.3927001953125,"z":"f8904431.05f2f","wires":[]},{"id":"f8e58eca.5e5f5","type":"get-resource","name":"get-resource VF_MODULE_TO_VFC_MAPPING","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODULE_TO_VFC_MAPPING WHERE vf_module_customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-module-to-vfc-mapping[]'>\n\n","comments":"","outputs":1,"x":673.9286880493164,"y":1926.642807006836,"z":"f8904431.05f2f","wires":[["247fcc32.9a9bd4","9124fe48.9bbde8"]]},{"id":"247fcc32.9a9bd4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":939.7143783569336,"y":1907.0236377716064,"z":"f8904431.05f2f","wires":[["56d416c7.7f36e8"]]},{"id":"9124fe48.9bbde8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":948.2858085632324,"y":1951.3093509674072,"z":"f8904431.05f2f","wires":[["df2d8da2.dbcdf8"]]},{"id":"56d416c7.7f36e8","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 reading VF_MODULE_TO_VFC_MAPPING table\" />\n","comments":"","x":1114.7143096923828,"y":1906.1665382385254,"z":"f8904431.05f2f","wires":[]},{"id":"ba9e655a.f1c4b","type":"for","name":"for each vm-type","xml":"<for index='vm-type-index' start='0' end='`$db.vf-module-to-vfc-mapping_length`' >\n","comments":"","outputs":1,"x":574.0476989746094,"y":2555.6430587768555,"z":"f8904431.05f2f","wires":[["950909dc.f398e"]]},{"id":"d06d02b2.30a36","type":"get-resource","name":"get-resource VFC_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VFC_MODEL WHERE customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\n  pfx='db.vfc-model'>\n\n","comments":"","outputs":1,"x":1015.9524993896484,"y":2047.5477199554443,"z":"f8904431.05f2f","wires":[["938189de.c5b208","b5e173da.7ef71"]]},{"id":"8bd622e3.ce6678","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=\"`'No entries found in VFC_MODEL table for customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`\" />\n","comments":"","x":1386.3808479309082,"y":2071.9761123657227,"z":"f8904431.05f2f","wires":[]},{"id":"938189de.c5b208","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1211.7381172180176,"y":2027.9284706115723,"z":"f8904431.05f2f","wires":[["1617d876.a17a8"]]},{"id":"b5e173da.7ef71","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1220.3095474243164,"y":2072.214183807373,"z":"f8904431.05f2f","wires":[["8bd622e3.ce6678"]]},{"id":"1617d876.a17a8","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 reading VFC_MODEL table\" />\n","comments":"","x":1386.7380485534668,"y":2027.0713710784912,"z":"f8904431.05f2f","wires":[]},{"id":"950909dc.f398e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":765.9524917602539,"y":2554.214427947998,"z":"f8904431.05f2f","wires":[["d06d02b2.30a36","b5c40074.82e0d","fbc75453.b46c","73181335.0de15c","4dd055d9.8e989c","bc5f9ee9.0fd05","9011598e.17006","6ce4d19f.10b0a8"]]},{"id":"39b8e65e.59c272","type":"set","name":"set vm_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm_length'\n  value='`$db.vf-module-to-vfc-mapping_length`' />\n","comments":"","x":565.833366394043,"y":1986.8334846496582,"z":"f8904431.05f2f","wires":[]},{"id":"b5c40074.82e0d","type":"set","name":"set vm data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type'\n   value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code'\n   value='`$db.vfc-model.nfc-naming-code`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type-tag'\n   value='`$db.vfc-model.vm-type-tag`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count'\n   value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\n","comments":"","x":966.6667518615723,"y":2173.5001974105835,"z":"f8904431.05f2f","wires":[]},{"id":"cfa27455.96cc6","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1660.0000686645508,"y":726.9197244644165,"z":"f8904431.05f2f","wires":[["a60d7530.735ec","55e8eb76.280234"]]},{"id":"55e8eb76.280234","type":"break","name":"break","xml":"<break>","comments":"","x":1795.0000343322754,"y":748.5863103866577,"z":"f8904431.05f2f","wires":[]},{"id":"f221ff2f.d06b18","type":"set","name":"set from DB","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\n  value='`$db.vf-module-model.invariant-uuid`' />\n","comments":"","x":979.1665992736816,"y":1464.7529220581055,"z":"f8904431.05f2f","wires":[]},{"id":"5ae5f387.50fd1c","type":"switchNode","name":"switch input model-invariant-uuid","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`'>\n","comments":"","outputs":1,"x":623.0236740112305,"y":1487.5773658752441,"z":"f8904431.05f2f","wires":[["1035d5e4.cd8b32","f407cbb5.44e8"]]},{"id":"1035d5e4.cd8b32","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":828.6903457641602,"y":1464.720329284668,"z":"f8904431.05f2f","wires":[["f221ff2f.d06b18"]]},{"id":"f407cbb5.44e8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":830.1189422607422,"y":1509.0059204101562,"z":"f8904431.05f2f","wires":[["d4f06b62.dec4d8"]]},{"id":"d4f06b62.dec4d8","type":"set","name":"set from input","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\n","comments":"","x":984.4046783447266,"y":1508.4344925880432,"z":"f8904431.05f2f","wires":[]},{"id":"4d6c6445.cbfb0c","type":"set","name":"set from DB","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\n  value='`$db.vf-module-model.uuid`' />\n","comments":"","x":980.1188697814941,"y":1553.2915983200073,"z":"f8904431.05f2f","wires":[]},{"id":"cc25cb3a.593158","type":"switchNode","name":"switch input model-uuid","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`'>\n","comments":"","outputs":1,"x":595.642692565918,"y":1576.1161031723022,"z":"f8904431.05f2f","wires":[["61999de9.848754","40fec6c5.51d25"]]},{"id":"61999de9.848754","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":829.6426658630371,"y":1553.2590351104736,"z":"f8904431.05f2f","wires":[["4d6c6445.cbfb0c"]]},{"id":"40fec6c5.51d25","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":831.0712623596191,"y":1597.544626235962,"z":"f8904431.05f2f","wires":[["72a3de3c.82b428"]]},{"id":"72a3de3c.82b428","type":"set","name":"set from input","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`' />\n","comments":"","x":985.3569984436035,"y":1596.9731984138489,"z":"f8904431.05f2f","wires":[]},{"id":"d38265bc.c7d2e","type":"set","name":"set from DB","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-version'\n  value='`$db.vf-module-model.version`' />\n","comments":"","x":977.2618026733398,"y":1642.1488056182861,"z":"f8904431.05f2f","wires":[]},{"id":"7de279db.be985","type":"switchNode","name":"switch input model-version","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`'>\n","comments":"","outputs":1,"x":603.7855644226074,"y":1664.9732503890991,"z":"f8904431.05f2f","wires":[["cb5b83ed.84b72","3b3ee487.9fb894"]]},{"id":"cb5b83ed.84b72","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":826.7855491638184,"y":1642.1162128448486,"z":"f8904431.05f2f","wires":[["d38265bc.c7d2e"]]},{"id":"3b3ee487.9fb894","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":828.2141456604004,"y":1686.401803970337,"z":"f8904431.05f2f","wires":[["7480785e.ac0d48"]]},{"id":"7480785e.ac0d48","type":"set","name":"set from input","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-version'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\n","comments":"","x":982.4998817443848,"y":1685.8303761482239,"z":"f8904431.05f2f","wires":[]},{"id":"f42c83c8.41e91","type":"set","name":"set from DB","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-name'\n  value='`$db.vf-module-model.name`' />\n","comments":"","x":977.2618026733398,"y":1729.2916278839111,"z":"f8904431.05f2f","wires":[]},{"id":"4cdc88c9.fda938","type":"switchNode","name":"switch input model-name","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`'>\n","comments":"","outputs":1,"x":598.7855644226074,"y":1752.1160726547241,"z":"f8904431.05f2f","wires":[["32343a44.73d23e","77ae4ba9.070c4c"]]},{"id":"32343a44.73d23e","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":826.7855491638184,"y":1729.2590351104736,"z":"f8904431.05f2f","wires":[["f42c83c8.41e91"]]},{"id":"77ae4ba9.070c4c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":828.2141456604004,"y":1773.544626235962,"z":"f8904431.05f2f","wires":[["225fdcbf.3f84cc"]]},{"id":"225fdcbf.3f84cc","type":"set","name":"set from input","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-name'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`' />\n","comments":"","x":982.4998817443848,"y":1772.9731984138489,"z":"f8904431.05f2f","wires":[]},{"id":"7d69c3ef.ea745c","type":"set","name":"set model-customization-uuid","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-customization-uuid'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\n","comments":"","x":613.2378997802734,"y":1824.6250619888306,"z":"f8904431.05f2f","wires":[]},{"id":"fbc75453.b46c","type":"for","name":"for each vm","xml":"<for index='vm-index' start='0' end='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >\n","comments":"","outputs":1,"x":968.3332405090332,"y":2282.7531156539917,"z":"f8904431.05f2f","wires":[["2ebd5ed6.df5f82"]]},{"id":"73181335.0de15c","type":"set","name":"set vm-name-length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length'\n  value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\n","comments":"","x":991.6666946411133,"y":2217.753373146057,"z":"f8904431.05f2f","wires":[]},{"id":"31921ee1.b71012","type":"call","name":"call GENERIC-RESOURCE-API:generate-unique-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n","comments":"","outputs":1,"x":1434.761863708496,"y":2305.3722620010376,"z":"f8904431.05f2f","wires":[["a91ba6cc.cf06b","c6543c94.b350d8"]]},{"id":"a91ba6cc.cf06b","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1730.4761517842617,"y":2278.2295246124268,"z":"f8904431.05f2f","wires":[["876240e8.cdb2d8"]]},{"id":"c6543c94.b350d8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1733.8095016479492,"y":2329.896167755127,"z":"f8904431.05f2f","wires":[["4879e3d7.d02fd4"]]},{"id":"c6fdac19.925758","type":"set","name":"set variables for generating unique name","xml":"<set>\n<parameter name='generate-unique-name-input.index-table-name' value='VM_NAME_INDEX' />\n<parameter name='generate-unique-name-input.index-table-prefix-column' value='vm_name_prefix' />\n<parameter name='generate-unique-name-input.name-table-type' value='VM_INSTANCE' />\n<parameter name='generate-unique-name-input.prefix' value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-name + $db.vfc-model.nfc-naming-code`\" />\n<parameter name='generate-unique-name-input.index-length' value='3' />\n","comments":"","x":1391.4285774230957,"y":2253.7055883407593,"z":"f8904431.05f2f","wires":[]},{"id":"4879e3d7.d02fd4","type":"set","name":"set generated name","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' value='`$generate-unique-name-output.generated-name`' />\n","comments":"","x":1918.3332176208496,"y":2329.3721857070923,"z":"f8904431.05f2f","wires":[]},{"id":"876240e8.cdb2d8","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=\"`$generate-unique-name-output.error-message`\" />\n","comments":"","x":1898.3332646687832,"y":2277.6580362319946,"z":"f8904431.05f2f","wires":[]},{"id":"68e43af5.2c64a4","type":"set","name":"set vf-module-id","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'\n   value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n","comments":"","x":566.4285469055176,"y":1093.348237991333,"z":"f8904431.05f2f","wires":[]},{"id":"2ebd5ed6.df5f82","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1132.738182067871,"y":2282.396019935608,"z":"f8904431.05f2f","wires":[["c6fdac19.925758","31921ee1.b71012"]]},{"id":"4dd055d9.8e989c","type":"get-resource","name":"get-resource VFC_TO_NETWORK_ROLE_MAPPING","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VFC_TO_NETWORK_ROLE_MAPPING WHERE vfc_customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\n  pfx='db.vfc-to-network-role-mapping[]'>\n\n","comments":"","outputs":1,"x":1095.595329284668,"y":2405.253088951111,"z":"f8904431.05f2f","wires":[["94c492f8.7c2af","2adabc76.4fb224"]]},{"id":"94c492f8.7c2af","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1382.8095321655273,"y":2385.6339359283447,"z":"f8904431.05f2f","wires":[["1fb058c9.841daf"]]},{"id":"2adabc76.4fb224","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1391.3809623718262,"y":2429.9196491241455,"z":"f8904431.05f2f","wires":[["4bea2562.d69b54"]]},{"id":"1fb058c9.841daf","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 reading VFC_TO_NETWORK_ROLE_MAPPING table\" />\n","comments":"","x":1557.8094635009766,"y":2384.7768363952637,"z":"f8904431.05f2f","wires":[]},{"id":"bc5f9ee9.0fd05","type":"for","name":"for each network-role","xml":"<for index='network-role-index' start='0' end='`$db.vfc-to-network-role-mapping_length`' >\n","comments":"","outputs":1,"x":988.6906204223633,"y":2716.4439306259155,"z":"f8904431.05f2f","wires":[["1e6387b.5554df8"]]},{"id":"1e6387b.5554df8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1195.1190719604492,"y":2713.11043548584,"z":"f8904431.05f2f","wires":[["d1147d40.681178","92a8ad60.071cb8","aca46669.1e6ba","9420dcc7.04e96","d934d530.947bd","341e9248.f1d036","d0faad95.8d7198","6716a3d8.3a7fbc"]]},{"id":"d1147d40.681178","type":"for","name":"for each network","xml":"<for silentFailure='true' index='idx' start='0' end='`$service-data.networks.network_length`' >\n","comments":"","outputs":1,"x":1404.166633605957,"y":2545.253191947937,"z":"f8904431.05f2f","wires":[["60ba540a.b45fac"]]},{"id":"92a8ad60.071cb8","type":"set","name":"set network-index to -1","xml":"<set>\n<parameter name='network-index' value='-1' />\n","comments":"","x":1424.1667022705078,"y":2502.396188735962,"z":"f8904431.05f2f","wires":[]},{"id":"60ba540a.b45fac","type":"switchNode","name":"switch network-role matches","xml":"<switch test='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-role == $db.vfc-to-network-role-mapping[$network-role-index].network-role`'>\n","comments":"","outputs":1,"x":1632.737907409668,"y":2543.824381828308,"z":"f8904431.05f2f","wires":[["dca543fd.ee8ed"]]},{"id":"dca543fd.ee8ed","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1831.3095741271973,"y":2543.824585914612,"z":"f8904431.05f2f","wires":[["76f5d83a.f656f"]]},{"id":"76f5d83a.f656f","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1972.7381420135498,"y":2542.396014213562,"z":"f8904431.05f2f","wires":[["9e5316f1.1837c8","c2171d76.2b6c58"]]},{"id":"9e5316f1.1837c8","type":"set","name":"set network-index to idx","xml":"<set>\n<parameter name='network-index' value='`$idx`' />\n","comments":"","x":2151.30965423584,"y":2519.5390100479126,"z":"f8904431.05f2f","wires":[]},{"id":"c2171d76.2b6c58","type":"break","name":"break","xml":"<break>","comments":"","x":2099.8808937072754,"y":2565.2531900405884,"z":"f8904431.05f2f","wires":[]},{"id":"aca46669.1e6ba","type":"switchNode","name":"switch network-index","xml":"<switch test='`$network-index`'>\n","comments":"","outputs":1,"x":1416.0714721679688,"y":2594.062829017639,"z":"f8904431.05f2f","wires":[["97ca39a3.404448"]]},{"id":"97ca39a3.404448","type":"outcomeTrue","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":1610.3571968078613,"y":2594.062726020813,"z":"f8904431.05f2f","wires":[["35daaecd.6386aa"]]},{"id":"35daaecd.6386aa","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=\"`'No network found in MD-SAL with network-role ' + $db.vfc-to-network-role-mapping[$network-role-index].network-role`\" />\n","comments":"","x":1767.5000457763672,"y":2592.634196281433,"z":"f8904431.05f2f","wires":[]},{"id":"4f8e7534.cb8654","type":"for","name":"for each cloud-region relationship","xml":"<for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\n","comments":"","outputs":1,"x":625.9442901611328,"y":1312.0068836212158,"z":"f8904431.05f2f","wires":[["31c30feb.1c3cb8"]]},{"id":"31c30feb.1c3cb8","type":"switchNode","name":"switch related-to","xml":"<switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\n","comments":"","outputs":1,"x":873.6228332519531,"y":1311.7568130493164,"z":"f8904431.05f2f","wires":[["63a06b9d.bc207c"]]},{"id":"63a06b9d.bc207c","type":"outcome","name":"complex","xml":"<outcome value='complex'>\n","comments":"","outputs":1,"x":1043.0871543884277,"y":1311.1496353149414,"z":"f8904431.05f2f","wires":[["8701746c.0d7be8"]]},{"id":"272ff117.caf41e","type":"execute","name":"split related-link","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='aai-uid-split' />\n   <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\n   <parameter name='regex' value='/' />\n","comments":"","outputs":1,"x":1383.1823120117188,"y":1265.5782108306885,"z":"f8904431.05f2f","wires":[[]]},{"id":"8701746c.0d7be8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1202.8490142822266,"y":1312.2449989318848,"z":"f8904431.05f2f","wires":[["272ff117.caf41e","e47ef4bc.fde6a","6a5ff544.353914"]]},{"id":"e47ef4bc.fde6a","type":"break","name":"break","xml":"<break>","comments":"","x":1352.848976135254,"y":1355.5782957077026,"z":"f8904431.05f2f","wires":[]},{"id":"9420dcc7.04e96","type":"set","name":"set network-role and tag","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role-tag'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role-tag`' />\n","comments":"","x":1425.8333549499512,"y":2690.2530155181885,"z":"f8904431.05f2f","wires":[]},{"id":"9011598e.17006","type":"set","name":"set vm-network-length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\n  value='`$db.vfc-to-network-role-mapping_length`' />\n","comments":"","x":982.4999465942383,"y":3105.2532806396484,"z":"f8904431.05f2f","wires":[]},{"id":"d934d530.947bd","type":"switchNode","name":"switch ipv4-ip-version","xml":"<switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`'>\n","comments":"","outputs":1,"x":1418.452407836914,"y":2773.5863428115845,"z":"f8904431.05f2f","wires":[["deebf497.c887","7d7fbd40.e8a4ac"]]},{"id":"f84a7a0.5dde088","type":"set","name":"set network-information-index to -1","xml":"<set>\n<parameter name='network-information-index' value='-1' />\n\n","comments":"","x":1827.97603225708,"y":2738.5864477157593,"z":"f8904431.05f2f","wires":[]},{"id":"deebf497.c887","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1595.1189270019531,"y":2738.586483001709,"z":"f8904431.05f2f","wires":[["f84a7a0.5dde088"]]},{"id":"7d7fbd40.e8a4ac","type":"other","name":"4","xml":"<outcome value='4'>\n","comments":"","outputs":1,"x":1593.8808784484863,"y":2804.538625717163,"z":"f8904431.05f2f","wires":[["7300e5a4.7df534"]]},{"id":"50b64750.df1f68","type":"set","name":"set network-information-index to 0","xml":"<set>\n<parameter name='network-information-index' value='0' />\n","comments":"","x":1998.4521408081055,"y":2779.0624866485596,"z":"f8904431.05f2f","wires":[]},{"id":"7300e5a4.7df534","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1761.0713539123535,"y":2803.872091293335,"z":"f8904431.05f2f","wires":[["50b64750.df1f68","7a328931.d0302"]]},{"id":"7a328931.d0302","type":"set","name":"set ip-version 4, use-dhcp, and ip-count","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-version'\n   value='4' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].use-dhcp'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-count'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-count`' />\n","comments":"","x":2015.4047241210938,"y":2825.7294425964355,"z":"f8904431.05f2f","wires":[]},{"id":"341e9248.f1d036","type":"switchNode","name":"switch ipv6-ip-version","xml":"<switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`'>\n","comments":"","outputs":1,"x":1418.9286041259766,"y":2900.4911251068115,"z":"f8904431.05f2f","wires":[["917a1f23.5df0c","21565a52.dc3bee"]]},{"id":"917a1f23.5df0c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1597.7380981445312,"y":2870.728937149048,"z":"f8904431.05f2f","wires":[["30fff3e9.318f3c"]]},{"id":"21565a52.dc3bee","type":"other","name":"6","xml":"<outcome value='6'>\n","comments":"","outputs":1,"x":1599.1666526794434,"y":2935.0144939422607,"z":"f8904431.05f2f","wires":[["15c9a755.d62661"]]},{"id":"1ea53f76.1b51c1","type":"set","name":"increment network-information-index","xml":"<set>\n<parameter name='network-information-index' value='`$network-information-index + 1`' />\n","comments":"","x":2004.880744934082,"y":2909.5385236740112,"z":"f8904431.05f2f","wires":[]},{"id":"15c9a755.d62661","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1754.4048118591309,"y":2934.0622329711914,"z":"f8904431.05f2f","wires":[["1ea53f76.1b51c1","11903d81.fcc1aa"]]},{"id":"30fff3e9.318f3c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1740.404727935791,"y":2870.0625553131104,"z":"f8904431.05f2f","wires":[[]]},{"id":"d0faad95.8d7198","type":"switchNode","name":"switch network-information-index","xml":"<switch test='`$network-information-index`'>\n","comments":"","outputs":1,"x":1454.166618347168,"y":3036.919370651245,"z":"f8904431.05f2f","wires":[["8dd87e18.4728b8","8470b9d3.3688f8"]]},{"id":"8dd87e18.4728b8","type":"outcome","name":"-1","xml":"<outcome value='-1'>","comments":"","outputs":1,"x":1672.4999752044678,"y":3013.5861167907715,"z":"f8904431.05f2f","wires":[["f629d5e6.34d3a"]]},{"id":"8470b9d3.3688f8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1672.2619380950928,"y":3059.5384311676025,"z":"f8904431.05f2f","wires":[["4c260c2d.7b2034"]]},{"id":"f629d5e6.34d3a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1809.166690826416,"y":3011.919776916504,"z":"f8904431.05f2f","wires":[[]]},{"id":"4c260c2d.7b2034","type":"set","name":"set network-information-item_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length'\n   value='`$network-information-index + 1`' />\n","comments":"","x":1900.8333053588867,"y":3056.919569015503,"z":"f8904431.05f2f","wires":[]},{"id":"8874b3a6.20a57","type":"for","name":"for each vm-type","xml":"<for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":581,"y":3203.9194660186768,"z":"f8904431.05f2f","wires":[["150c6134.582a07"]]},{"id":"150c6134.582a07","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":784.5715255737305,"y":3204.1576709747314,"z":"f8904431.05f2f","wires":[["a80f048a.626ed"]]},{"id":"6716a3d8.3a7fbc","type":"set","name":"save network-id","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id'\n  value='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-id`' />\n","comments":"This isn't a node in MD-SAL, but we need to save this for later when we are doing EIPAM processing","x":1397.9761810302734,"y":2640.253023147583,"z":"f8904431.05f2f","wires":[]},{"id":"a80f048a.626ed","type":"for","name":"for each network-role","xml":"<for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\n","comments":"","outputs":1,"x":985.999885559082,"y":3203.252721786499,"z":"f8904431.05f2f","wires":[["24bbb455.36620c"]]},{"id":"24bbb455.36620c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1187.9047012329102,"y":3202.490758895874,"z":"f8904431.05f2f","wires":[["846d0839.fe7848"]]},{"id":"846d0839.fe7848","type":"for","name":"for each network-information-item","xml":"<for index='ip-version-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length`' >\n","comments":"","outputs":1,"x":1432.6665725708008,"y":3202.0151510238647,"z":"f8904431.05f2f","wires":[["8c75b71c.328668"]]},{"id":"8aa98267.f34158","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":677.666633605957,"y":3407.9195766448975,"z":"f8904431.05f2f","wires":[["238e3171.365596","352f82b5.11fc76","82635d4d.019668","dd0c75b4.eae44","1e8f073b.6f05f9"]]},{"id":"238e3171.365596","type":"get-resource","name":"get-resource EIPAM_IP_SUBNETS","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from EIPAM_IP_SUBNETS WHERE network_id = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id\n    AND address_family = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version'\n  pfx='db.eipam-ip-subnets[]'>\n\n","comments":"","outputs":1,"x":1057.6666564941406,"y":3369.586072921753,"z":"f8904431.05f2f","wires":[["6ca7b876.b272b","1ebe6c41.0f5554"]]},{"id":"ca9b8308.f4fc5","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=\"`'No entries found in EIPAM_IP_SUBNETS table for network ID '\n        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id\n        + ' and address family ' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version`\" />\n","comments":"","x":1447.6665954589844,"y":3391.2528343200684,"z":"f8904431.05f2f","wires":[]},{"id":"6ca7b876.b272b","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1273.0238647460938,"y":3347.205192565918,"z":"f8904431.05f2f","wires":[["750e22a4.077754"]]},{"id":"1ebe6c41.0f5554","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1281.5952949523926,"y":3391.4909057617188,"z":"f8904431.05f2f","wires":[["ca9b8308.f4fc5"]]},{"id":"750e22a4.077754","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 reading EIPAM_IP_SUBNETS table\" />\n","comments":"","x":1448.023796081543,"y":3346.348093032837,"z":"f8904431.05f2f","wires":[]},{"id":"352f82b5.11fc76","type":"for","name":"for each record in EIPAM_IP_SUBNETS","xml":"<for index='subnets-index' start='0' end='`$db.eipam-ip-subnets_length`' >\n","comments":"","outputs":1,"x":1076.9524688720703,"y":3674.82426071167,"z":"f8904431.05f2f","wires":[["f03262f0.3244a8"]]},{"id":"f03262f0.3244a8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1333.3810195922852,"y":3675.77654838562,"z":"f8904431.05f2f","wires":[["8536e6ca.d6b168","b6de49.9eed79b8","527933d.f5ceecc","e79d950d.15109","1e54185e.592a48"]]},{"id":"8536e6ca.d6b168","type":"get-resource","name":"get-resource EIPAM_IP_SUBNET_KEYS","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from EIPAM_IP_SUBNET_KEYS WHERE entity_id = $db.eipam-ip-subnets[$subnets-index].entity-id'\n  pfx='db.eipam-ip-subnet-keys[]'>\n\n","comments":"","outputs":1,"x":1644.809585571289,"y":3512.205156326294,"z":"f8904431.05f2f","wires":[["f9772116.0d78","43aacff5.7008c8"]]},{"id":"1bebeb4e.09292d","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=\"`'No entries found in EIPAM_IP_SUBNET_KEYS table for entity ID '\n        + $db.eipam-ip-subnets[$subnets-index].entity-id`\" />","comments":"","x":2059.809585571289,"y":3532.205156326294,"z":"f8904431.05f2f","wires":[]},{"id":"f9772116.0d78","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1885.1668548583984,"y":3488.1575145721436,"z":"f8904431.05f2f","wires":[["bf235577.aaf6"]]},{"id":"43aacff5.7008c8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1893.7382850646973,"y":3532.4432277679443,"z":"f8904431.05f2f","wires":[["1bebeb4e.09292d"]]},{"id":"bf235577.aaf6","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 reading EIPAM_IP_SUBNET_KEYS table\" />\n","comments":"","x":2060.1667861938477,"y":3487.3004150390625,"z":"f8904431.05f2f","wires":[]},{"id":"82635d4d.019668","type":"set","name":"set max-level to -1","xml":"<set>\n<parameter name='max-level' value='-1' />\n","comments":"","x":1005.7619323730469,"y":3435.538688659668,"z":"f8904431.05f2f","wires":[]},{"id":"b6de49.9eed79b8","type":"for","name":"for each record in EIPAM_IP_SUBNET_KEYS","xml":"<for index='keys-index' start='0' end='`$db.eipam-ip-subnet-keys_length`' >\n","comments":"","outputs":1,"x":1659.3334045410156,"y":3581.2529106140137,"z":"f8904431.05f2f","wires":[["d5adc7e7.c15f68"]]},{"id":"d5adc7e7.c15f68","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1946.0000534057617,"y":3579.586248397827,"z":"f8904431.05f2f","wires":[["e7f1dfec.5d311"]]},{"id":"e7f1dfec.5d311","type":"switchNode","name":"switch level > max-level?","xml":"<switch test='`$db.eipam-ip-subnet-keys[$keys-index].level &gt; $max-level`'>\n","comments":"","outputs":1,"x":2162.6666717529297,"y":3579.586166381836,"z":"f8904431.05f2f","wires":[["10d7a03a.3108b8"]]},{"id":"10d7a03a.3108b8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2354.333599090576,"y":3579.58616065979,"z":"f8904431.05f2f","wires":[["1241dc64.64d09c"]]},{"id":"1241dc64.64d09c","type":"set","name":"set max-level, selected-entity-id, selected-plan-name","xml":"<set>\n<parameter name='max-level' value='`$db.eipam-ip-subnet-keys[$keys-index].level`' />\n<parameter name='selected-entity-id' value='`$db.eipam-ip-subnet-keys[$keys-index].entity-id`' />\n<parameter name='selected-plan-name' value='`$db.eipam-ip-subnets[$subnets-index].plan-name`' />\n","comments":"","x":2646.0001068115234,"y":3577.9194173812866,"z":"f8904431.05f2f","wires":[]},{"id":"527933d.f5ceecc","type":"get-resource","name":"get-resource EIPAM_IP_SUBNET_KEYS","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from EIPAM_IP_SUBNET_KEYS WHERE entity_id = $selected-entity-id order by level'\n  pfx='db.eipam-ip-subnet-keys[]'>\n\n","comments":"","outputs":1,"x":1646.000015258789,"y":3653.157615661621,"z":"f8904431.05f2f","wires":[["7e54f81a.2f658","ad30d7cc.d7b19"]]},{"id":"a669144f.71726","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=\"`'No entries found in EIPAM_IP_SUBNET_KEYS table for entity ID '\n        + $selected-entity-id`\" />","comments":"","x":2061.000015258789,"y":3673.157615661621,"z":"f8904431.05f2f","wires":[]},{"id":"7e54f81a.2f658","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1886.3572845458984,"y":3629.1099739074707,"z":"f8904431.05f2f","wires":[["bc052b55.fad418"]]},{"id":"ad30d7cc.d7b19","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1894.9287147521973,"y":3673.3956871032715,"z":"f8904431.05f2f","wires":[["a669144f.71726"]]},{"id":"bc052b55.fad418","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 reading EIPAM_IP_SUBNET_KEYS table\" />\n","comments":"","x":2061.3572158813477,"y":3628.2528743743896,"z":"f8904431.05f2f","wires":[]},{"id":"2727a7be.f15758","type":"for","name":"for each record in EIPAM_IP_SUBNET_KEYS","xml":"<for index='level-index' start='0' end='`$db.eipam-ip-subnet-keys_length`' >\n","comments":"","outputs":1,"x":2091.952362060547,"y":3721.729072570801,"z":"f8904431.05f2f","wires":[["922cde20.d7381"]]},{"id":"2e1988ae.5b71b","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1784.8093643188477,"y":3805.5385093688965,"z":"f8904431.05f2f","wires":[["2727a7be.f15758","1fbff78a.f4d12","6383ce2f.6e26d8","99dd85c.4fc4178","dc2ef1d5.2563f8"]]},{"id":"e79d950d.15109","type":"for","name":"for each ip in ip-count","xml":"<for index='request-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-count`' >\n","comments":"","outputs":1,"x":1583.142807006836,"y":3805.5401363372803,"z":"f8904431.05f2f","wires":[["2e1988ae.5b71b"]]},{"id":"922cde20.d7381","type":"set","name":"set eipam data for level","xml":"<set>\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools[$level-index].key-name'\n   value='`$db.eipam-ip-subnet-keys[$level-index].key-name`' />\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools[$level-index].key-value'\n   value='`$db.eipam-ip-subnet-keys[$level-index].key-value`' />\n","comments":"","x":2398.8571243286133,"y":3721.4918384552,"z":"f8904431.05f2f","wires":[]},{"id":"1fbff78a.f4d12","type":"set","name":"set eipam data pools_length","xml":"<set>\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools_length'\n   value='`$db.eipam-ip-subnet-keys_length`' />\n","comments":"","x":2038.142677307129,"y":3767.2054557800293,"z":"f8904431.05f2f","wires":[]},{"id":"3e4ceafe.888eee","type":"set","name":"set plans-index to 0","xml":"<set>\n<parameter name='plans-index' value='0' />\n","comments":"","x":589.7619171142578,"y":3147.8717365264893,"z":"f8904431.05f2f","wires":[]},{"id":"dd0c75b4.eae44","type":"set","name":"increment plans-index","xml":"<set>\n<parameter name='plans-index' value='`$plans-index + 1`' />\n","comments":"","x":1021.0952224731445,"y":4066.871983528137,"z":"f8904431.05f2f","wires":[]},{"id":"1e54185e.592a48","type":"set","name":"set eipam requests_length","xml":"<set>\n<parameter name='eipam-ip-block.plans[$plans-index].requests_length'\n   value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-count`' />\n","comments":"","x":1593.6191711425781,"y":3947.2055082321167,"z":"f8904431.05f2f","wires":[]},{"id":"1e8f073b.6f05f9","type":"set","name":"set eipam plan-name, address-family","xml":"<set>\n<parameter name='eipam-ip-block.plans[$plans-index].plan-name' value='`$selected-plan-name`' />\n<parameter name='eipam-ip-block.plans[$plans-index].address-family'\n   value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version`' />\n","comments":"","x":1069.6666564941406,"y":4019.7284650802612,"z":"f8904431.05f2f","wires":[]},{"id":"11cfee21.5bdd6a","type":"set","name":"set eipam plans_length","xml":"<set>\n<parameter name='eipam-ip-block.plans_length' value='`$plans-index`' />\n","comments":"","x":593.4285697937012,"y":4091.919857978821,"z":"f8904431.05f2f","wires":[]},{"id":"963118a6.12b53","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":552.7975616455078,"y":5167.011030197144,"z":"f8904431.05f2f","wires":[]},{"id":"967fc1c3.a568d","type":"set","name":"copy input data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\n   value='$vf-module-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\n   value='$vf-module-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\n   value='$vf-module-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\n   value='$vf-module-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\n   value='$vf-module-topology-operation-input.vf-module-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\n   value='$vf-module-topology-operation-input.vf-module-request-input.' />\n\n","comments":"","x":564.5832290649414,"y":4942.990794181824,"z":"f8904431.05f2f","wires":[]},{"id":"5bb2dea5.0b2c88","type":"set","name":"copy vf-module-topology data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.' value='$tmp.vf-module-topology.' />\n","comments":"","x":609.4642333984375,"y":4894.776306152344,"z":"f8904431.05f2f","wires":[]},{"id":"a1eb3f2f.dc5878","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-vfmodule.log' />\n","comments":"","outputs":1,"x":547.6785125732422,"y":5119.240846633911,"z":"f8904431.05f2f","wires":[[]]},{"id":"753dc8b5.f46c2","type":"execute","name":"call EIPAM assignIPAddress","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"assignIPAddress\">","comments":"","outputs":1,"x":973.5952911376953,"y":4180.880926132202,"z":"f8904431.05f2f","wires":[["4b08695f.8392f"]]},{"id":"4b08695f.8392f","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1187.5952911376953,"y":4180.880926132202,"z":"f8904431.05f2f","wires":[["21aa8603.c2613a"]]},{"id":"21aa8603.c2613a","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\t<parameter name=\"error-message\" value=\"An error occured while obtaining new address blocks from EIPAM.\" />\n","comments":"","x":1326.5952911376953,"y":4180.880926132202,"z":"f8904431.05f2f","wires":[]},{"id":"6383ce2f.6e26d8","type":"set","name":"set eipam client-key, mask","xml":"<set>\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].client-key'\n   value='`$generate-unique-name-output.generated-name`' />\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].info'\n   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].mask'\n   value='32' />\n","comments":"","x":2035.2857284545898,"y":3901.015483856201,"z":"f8904431.05f2f","wires":[]},{"id":"35ae3c29.62e11c","type":"for","name":"for each vm-type","xml":"<for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":573,"y":4290.252558708191,"z":"f8904431.05f2f","wires":[["2a37ecf7.8780d4"]]},{"id":"2a37ecf7.8780d4","type":"for","name":"for each vm-network","xml":"<for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\n","comments":"","outputs":1,"x":781.6666831970215,"y":4290.252884864807,"z":"f8904431.05f2f","wires":[["47adf55b.a27c64"]]},{"id":"47adf55b.a27c64","type":"for","name":"for each network-information-item","xml":"<for index='ip-version-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length`' >\n","comments":"","outputs":1,"x":1046.6666717529297,"y":4291.919226646423,"z":"f8904431.05f2f","wires":[["a560b608.d9df"]]},{"id":"906d177a.23b878","type":"set","name":"set plans-index = 0","xml":"<set>\n<parameter name='plans-index' value='0' />\n","comments":"","x":579.9999923706055,"y":4235.252646446228,"z":"f8904431.05f2f","wires":[]},{"id":"daeb98c8.1a8c","type":"for","name":"for each eipam request","xml":"<for index='ip-index' start='0' end='`$eipam-ip-block.plans[$plans-index].requests_length`' >\n","comments":"","outputs":1,"x":1816.6666259765625,"y":4263.586531639099,"z":"f8904431.05f2f","wires":[["d7b2f5d9.8f7a68"]]},{"id":"d7b2f5d9.8f7a68","type":"set","name":"set ip address","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].network-ips.network-ip[$ip-index]'\n  value='`$eipam-ip-block.plans[$plans-index].requests[$ip-index].ip-prefix`' />\n","comments":"","x":2028.3332633972168,"y":4261.919702529907,"z":"f8904431.05f2f","wires":[]},{"id":"56f40ccc.3da3dc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1616.6664581298828,"y":4288.586045265198,"z":"f8904431.05f2f","wires":[["daeb98c8.1a8c","833d5d4d.2fde38"]]},{"id":"833d5d4d.2fde38","type":"set","name":"increment plans-index","xml":"<set>\n<parameter name='plans-index' value='`$plans-index + 1`' />\n","comments":"","x":1811.66650390625,"y":4310.252387046814,"z":"f8904431.05f2f","wires":[]},{"id":"d14590e1.bb8fd8","type":"save","name":"update vf-module","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vf-module\"\n   key=\"vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"vf-module-name\" value=\"`$tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name`\" />\n<parameter name=\"model-invariant-id\" value=\"`$tmp.vf-module-topology.onap-model-information.model-invariant-uuid`\" />\n<parameter name=\"model-version-id\" value=\"`$tmp.vf-module-topology.onap-model-information.model-uuid`\" />\n<parameter name=\"model-customization-id\" value=\"`$tmp.vf-module-topology.onap-model-information.model-customization-uuid`\" />\n<parameter name=\"selflink\" value=\"`$vf-module-object-path`\" />\n","comments":"","outputs":1,"x":574.9999694824219,"y":4435.252729415894,"z":"f8904431.05f2f","wires":[["e7fd3464.3ad97","1bf6cb7c.3e0605"]]},{"id":"27d16a6a.8a37f6","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=\"`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`\" />\n","comments":"","x":1068.333396911621,"y":4488.585899353027,"z":"f8904431.05f2f","wires":[]},{"id":"e7fd3464.3ad97","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":744.3573303222656,"y":4402.204874038696,"z":"f8904431.05f2f","wires":[["b8c0af54.5401d"]]},{"id":"1bf6cb7c.3e0605","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":752.9286842346191,"y":4464.823854446411,"z":"f8904431.05f2f","wires":[["97b79a52.c9ea08"]]},{"id":"e25600b8.fe60f","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 vf-module in AAI\" />\n","comments":"","x":1079.3572845458984,"y":4420.348430633545,"z":"f8904431.05f2f","wires":[]},{"id":"12c538f6.bac537","type":"set","name":"set vf-module-object-path","xml":"<set>\n<parameter name='vf-module-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $service-data.service-topology.service-topology-identifier.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n\n","comments":"","x":601.666633605957,"y":4360.252715110779,"z":"f8904431.05f2f","wires":[]},{"id":"9b200946.b21818","type":"save","name":"save vf-module relationships","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vf-module:relationship-list\"\n   key=\"vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"l3-network\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"l3-network.network-id\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id`\" />\n","comments":"","outputs":1,"x":1034.3094787597656,"y":4563.975717544556,"z":"f8904431.05f2f","wires":[["3a5d434.74e2a3c","cbec555a.a66e1"]]},{"id":"3a5d434.74e2a3c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1259.1428108215332,"y":4524.847640037537,"z":"f8904431.05f2f","wires":[["a7d81e5f.df835"]]},{"id":"cbec555a.a66e1","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1267.7142639160156,"y":4602.466782569885,"z":"f8904431.05f2f","wires":[["377f0d3a.fcf93a"]]},{"id":"9f618c7a.aa0268","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 vf-module relationships in AAI\" />\n","comments":"","x":1594.1429443359375,"y":4544.657536506653,"z":"f8904431.05f2f","wires":[]},{"id":"a8e24495.e3fae8","type":"for","name":"for each vm-type","xml":"<for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":575.3095092773438,"y":4565.642220497131,"z":"f8904431.05f2f","wires":[["4cd55e9f.5d4f1"]]},{"id":"4cd55e9f.5d4f1","type":"for","name":"for each vm-network","xml":"<for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\n","comments":"","outputs":1,"x":785.9761867523193,"y":4563.976043701172,"z":"f8904431.05f2f","wires":[["9b200946.b21818"]]},{"id":"ed456f28.a4419","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=\"`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`\" />\n","comments":"","x":1595.9762382507324,"y":4619.642075538635,"z":"f8904431.05f2f","wires":[]},{"id":"11903d81.fcc1aa","type":"set","name":"set ip-version 6, use-dhcp, and ip-count","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-version'\n   value='6' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].use-dhcp'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-count'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-count`' />\n","comments":"","x":2014.7857208251953,"y":2954.213849067688,"z":"f8904431.05f2f","wires":[]},{"id":"8c75b71c.328668","type":"switchNode","name":"switch use-dhcp","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].use-dhcp`'>\n","comments":"","outputs":1,"x":1680.500114440918,"y":3201.356598854065,"z":"f8904431.05f2f","wires":[["c1eef226.9da368"]]},{"id":"c1eef226.9da368","type":"outcome","name":"N","xml":"<outcome value='N'>\n","comments":"","outputs":1,"x":1850.5000267028809,"y":3199.928201675415,"z":"f8904431.05f2f","wires":[["8aa98267.f34158"]]},{"id":"a560b608.d9df","type":"switchNode","name":"switch use-dhcp","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].use-dhcp`'>\n","comments":"","outputs":1,"x":1287.642837524414,"y":4290.642521858215,"z":"f8904431.05f2f","wires":[["8253a6e.60643d8"]]},{"id":"8253a6e.60643d8","type":"outcome","name":"N","xml":"<outcome value='N'>\n","comments":"","outputs":1,"x":1457.642749786377,"y":4289.214124679565,"z":"f8904431.05f2f","wires":[["56f40ccc.3da3dc"]]},{"id":"5037a7b6.fac458","type":"for","name":"for each vm-type","xml":"<for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":574.309455871582,"y":4695.642714500427,"z":"f8904431.05f2f","wires":[["8eb4043b.a1c41"]]},{"id":"8eb4043b.a1c41","type":"for","name":"for each vm","xml":"<for index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\n","comments":"","outputs":1,"x":769.3094863891602,"y":4694.975722312927,"z":"f8904431.05f2f","wires":[["5e904a67.9da9dc"]]},{"id":"a18648aa.2dca8","type":"save","name":"save VIPR_CONFIGURATION","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"INSERT INTO VIPR_CONFIGURATION (vnf_id, vnf_name, ecomp_service_instance_id, vm_name, cloud_region_id, cloud_owner) VALUES ( $service-data.vnfs.vnf[$vnf-index].vnf-id , $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name , $service-data.service-information.service-instance-id , $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index] , $tmp.vf-module-topology.aic-cloud-region , 'CloudOwner')\" >","comments":"","outputs":1,"x":1160.976188659668,"y":4717.643372535706,"z":"f8904431.05f2f","wires":[["55737ac3.ddc7cc"]]},{"id":"2e31a72c.f726a8","type":"comment","name":"Not a failure","info":"","comments":"","x":1680.976089477539,"y":4717.643377304077,"z":"f8904431.05f2f","wires":[]},{"id":"55737ac3.ddc7cc","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1370.976173400879,"y":4717.643522262573,"z":"f8904431.05f2f","wires":[["d0a04dc7.3bc688"]]},{"id":"d0a04dc7.3bc688","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":1514.3096160888672,"y":4717.643360137939,"z":"f8904431.05f2f","wires":[[]]},{"id":"dc2ef1d5.2563f8","type":"call","name":"call GENERIC-RESOURCE-API:generate-unique-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n","comments":"","outputs":1,"x":2124.3094940185547,"y":3855.641947746277,"z":"f8904431.05f2f","wires":[["dd263b35.ab1258"]]},{"id":"dd263b35.ab1258","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2411.6905364990234,"y":3853.4993686676025,"z":"f8904431.05f2f","wires":[["8bcf10a0.8fe5e"]]},{"id":"99dd85c.4fc4178","type":"set","name":"set variables for generating unique name","xml":"<set>\n<parameter name='generate-unique-name-input.index-table-name' value='EIPAM_CLIENT_KEY_INDEX' />\n<parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />\n<parameter name='generate-unique-name-input.name-table-type' value='CLIENT_KEY' />\n<parameter name='generate-unique-name-input.prefix' value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code + ':' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id + ':' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version + ':'`\" />\n<parameter name='generate-unique-name-input.index-length' value='' />\n","comments":"","x":2077.6428260803223,"y":3810.6421089172363,"z":"f8904431.05f2f","wires":[]},{"id":"8bcf10a0.8fe5e","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=\"`$generate-unique-name-output.error-message`\" />\n","comments":"","x":2579.547649383545,"y":3852.9278802871704,"z":"f8904431.05f2f","wires":[]},{"id":"6ce4d19f.10b0a8","type":"switchNode","name":"switch ecomp-generated-naming == 'Y'","xml":"<switch test=\"$db.vfc-model.ecomp-generated-naming == 'Y'\">\n","comments":"","outputs":1,"x":1054.3095626831055,"y":2117.309280395508,"z":"f8904431.05f2f","wires":[["2de2475a.f4d5d8"]]},{"id":"2de2475a.f4d5d8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1285.976173400879,"y":2116.3089113235474,"z":"f8904431.05f2f","wires":[["112945ce.9f9c9a"]]},{"id":"112945ce.9f9c9a","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=\"`'ECOMP generated naming is not Y for VFC customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`\" />\n","comments":"","x":1432.6429138183594,"y":2115.6423664093018,"z":"f8904431.05f2f","wires":[]},{"id":"4da53680.141168","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1544.3097381591797,"y":4668.975073814392,"z":"f8904431.05f2f","wires":[["425d9ea4.3de7b"]]},{"id":"518430e6.ca6d78","type":"comment","name":"Not a failure","info":"","comments":"","x":1867.6427917480469,"y":4667.308896064758,"z":"f8904431.05f2f","wires":[]},{"id":"425d9ea4.3de7b","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":1690.3096733093262,"y":4668.975707054138,"z":"f8904431.05f2f","wires":[[]]},{"id":"5e904a67.9da9dc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":937.642879486084,"y":4693.975566864014,"z":"f8904431.05f2f","wires":[["4c365ffc.e4afc8","a18648aa.2dca8"]]},{"id":"4c365ffc.e4afc8","type":"delete","name":"delete any pre-existing 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 = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' >","comments":"","outputs":1,"x":1250.976203918457,"y":4669.309706687927,"z":"f8904431.05f2f","wires":[["4da53680.141168"]]},{"id":"1f795d99.f5ecd2","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":2957.6429481506348,"y":4305.64261007309,"z":"f8904431.05f2f","wires":[["e2da69cb.3fe94"]]},{"id":"d2cb7754.38f5","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":2827.642910003662,"y":4258.9759821891785,"z":"f8904431.05f2f","wires":[]},{"id":"e2da69cb.3fe94","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3262.6428565979004,"y":4303.97590970993,"z":"f8904431.05f2f","wires":[["78b84819.7cbd28"]]},{"id":"78b84819.7cbd28","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 on rollback\" />\n","comments":"","x":3452.6428833007812,"y":4303.785645008087,"z":"f8904431.05f2f","wires":[]},{"id":"aaf3ae90.95d7e","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":2892.6429176330566,"y":4350.642653942108,"z":"f8904431.05f2f","wires":[["3bd208da.2b5f5"]]},{"id":"3bd208da.2b5f5","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3129.309543609619,"y":4350.642596721649,"z":"f8904431.05f2f","wires":[["c853d33c.7bd92"]]},{"id":"c853d33c.7bd92","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 on rollback\" />\n","comments":"","x":3319.3095703125,"y":4350.452332019806,"z":"f8904431.05f2f","wires":[]},{"id":"1232b93c.b99bef","type":"comment","name":"roll back EIPAM","info":"","comments":"","x":2802.6429481506348,"y":4205.642935593923,"z":"f8904431.05f2f","wires":[]},{"id":"a9f936cf.48789","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2634.3095741271973,"y":4308.97610616684,"z":"f8904431.05f2f","wires":[["d2cb7754.38f5","1f795d99.f5ecd2","aaf3ae90.95d7e"]]},{"id":"b8c0af54.5401d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":902.6428985595703,"y":4401.975544929504,"z":"f8904431.05f2f","wires":[["e25600b8.fe60f","920a4d60.b8ea28"]]},{"id":"97b79a52.c9ea08","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":907.6428375244141,"y":4464.641888618469,"z":"f8904431.05f2f","wires":[["27d16a6a.8a37f6","920a4d60.b8ea28"]]},{"id":"a7d81e5f.df835","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1427.6428146362305,"y":4524.641909599304,"z":"f8904431.05f2f","wires":[["9f618c7a.aa0268","920a4d60.b8ea28"]]},{"id":"377f0d3a.fcf93a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1422.642734527588,"y":4602.641750335693,"z":"f8904431.05f2f","wires":[["ed456f28.a4419","920a4d60.b8ea28"]]},{"id":"df2d8da2.dbcdf8","type":"set","name":"set vf-module-to-vfc-mapping length to 0","xml":"<set>\n<parameter name='db.vf-module-to-vfc-mapping_length' value='0' />\n","comments":"","x":1201.500099182129,"y":1950.9280138015747,"z":"f8904431.05f2f","wires":[]},{"id":"4bea2562.d69b54","type":"set","name":"set vfc-to-network-role-mapping length to 0","xml":"<set>\n<parameter name='db.vfc-to-network-role-mapping_length' value='0' />\n","comments":"","x":1654.7857818603516,"y":2429.9280395507812,"z":"f8904431.05f2f","wires":[]},{"id":"7b68cee5.5f8108","type":"switchNode","name":"switch plans-index > 0","xml":"<switch test='`$plans-index &gt; 0`'>\n","comments":"","outputs":1,"x":590.5000762939453,"y":4181.356512069702,"z":"f8904431.05f2f","wires":[["7d5eb184.20a448"]]},{"id":"7d5eb184.20a448","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":773.3572158813477,"y":4181.356721878052,"z":"f8904431.05f2f","wires":[["753dc8b5.f46c2"]]},{"id":"920a4d60.b8ea28","type":"switchNode","name":"switch plans-index > 0","xml":"<switch test='`$plans-index &gt; 0`'>\n","comments":"","outputs":1,"x":2281.6665000915527,"y":4308.261742115021,"z":"f8904431.05f2f","wires":[["53be3d84.4c3d64"]]},{"id":"53be3d84.4c3d64","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2464.523639678955,"y":4308.26195192337,"z":"f8904431.05f2f","wires":[["a9f936cf.48789"]]},{"id":"2eeff3c5.141784","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":570.6666145324707,"y":4134.92791557312,"z":"f8904431.05f2f","wires":[]},{"id":"82cb9ccd.420d9","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value='' />\n","comments":"","x":309,"y":4892.749938964844,"z":"f8904431.05f2f","wires":[]},{"id":"81d39b95.9bfe2","type":"comment","name":"Fix $ in value","info":"","comments":"","x":814.7499465942383,"y":4898.000087738037,"z":"f8904431.05f2f","wires":[]},{"id":"59c6a4fd.868b5c","type":"call","name":"call check for VNF-API-preload and copy","xml":"<call module='GENERIC-RESOURCE-API' rpc='gw-vfmodule-update' mode='sync' >\n","comments":"","outputs":1,"x":644.1668701171875,"y":5004.9169921875,"z":"f8904431.05f2f","wires":[[]]}]
+[
+  {
+    "id":"2e8304f2.d1333c",
+    "type":"dgstart",
+    "name":"DGSTART",
+    "outputs":1,
+    "x":140,
+    "y":102,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "30732ff9.e0c76"
+      ]
+    ]
+  },
+  {
+    "id":"30732ff9.e0c76",
+    "type":"service-logic",
+    "name":"GENERIC-RESOURCE-API 1.2.0-SNAPSHOT-INT110901",
+    "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='1.2.0-SNAPSHOT-INT110901'>",
+    "outputs":1,
+    "x":253.85713577270508,
+    "y":141.80953788757324,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "9c4b6ed9.61ebe"
+      ]
+    ]
+  },
+  {
+    "id":"9c4b6ed9.61ebe",
+    "type":"method",
+    "name":"method vf-module-topology-operation-assign",
+    "xml":"<method rpc='vf-module-topology-operation-assign' mode='sync'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":253.42862701416016,
+    "y":182,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "4a26d4a8.22be7c"
+      ]
+    ]
+  },
+  {
+    "id":"5527c1d7.da9d7",
+    "type":"comment",
+    "name":"vf-module-topology-operation-assign",
+    "info":"",
+    "comments":"",
+    "x":545.3210983276367,
+    "y":44.97569942474365,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"2e530cdc.f4ef94",
+    "type":"switchNode",
+    "name":"switch request-action",
+    "xml":"<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":545.1905097961426,
+    "y":357.52382230758667,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "bfda8f90.6e24d",
+        "77f2de42.6ba9a"
+      ]
+    ]
+  },
+  {
+    "id":"bfda8f90.6e24d",
+    "type":"outcome",
+    "name":"CreateVfModuleInstance",
+    "xml":"<outcome value='CreateVfModuleInstance'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":807.2381248474121,
+    "y":334.66670846939087,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "40654d05.71fd14"
+      ]
+    ]
+  },
+  {
+    "id":"77f2de42.6ba9a",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":750.9047698974609,
+    "y":380.0476975440979,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "8b7d596e.984638"
+      ]
+    ]
+  },
+  {
+    "id":"40654d05.71fd14",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":997.0952892303467,
+    "y":334.6667399406433,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"8b7d596e.984638",
+    "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 'assign' then request-action must be 'CreateVfModuleInstance'\" />\n",
+    "comments":"",
+    "x":1015.9047775268555,
+    "y":380.381010055542,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"aea9b344.20b1b",
+    "type":"get-resource",
+    "name":"get-resource VF_MODULE_MODEL",
+    "xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODULE_MODEL WHERE customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-module-model'>\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":592.5237770080566,
+    "y":448.66677236557007,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "4b7c3e12.248ee",
+        "6ee12611.a15fe8"
+      ]
+    ]
+  },
+  {
+    "id":"f817dd96.2592f",
+    "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=\"`'No model found for VF module customization UUID ' + $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`\" />\n",
+    "comments":"",
+    "x":1033.9521980285645,
+    "y":473.09524488449097,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"4b7c3e12.248ee",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":858.3094673156738,
+    "y":429.0476031303406,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "d8b6dd53.baf73"
+      ]
+    ]
+  },
+  {
+    "id":"6ee12611.a15fe8",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":866.8808975219727,
+    "y":473.33331632614136,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "f817dd96.2592f"
+      ]
+    ]
+  },
+  {
+    "id":"d8b6dd53.baf73",
+    "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 reading VF_MODULE_MODEL table\" />\n",
+    "comments":"",
+    "x":1033.309398651123,
+    "y":428.1905035972595,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"a8ff9e79.0b468",
+    "type":"switchNode",
+    "name":"switch service-data.vnfs.vnf_length",
+    "xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":587.6190414428711,
+    "y":657.2381076812744,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "45e1ae95.939d1",
+        "5930857d.90f94c"
+      ]
+    ]
+  },
+  {
+    "id":"45e1ae95.939d1",
+    "type":"other",
+    "name":"NULL",
+    "xml":"<outcome value=''>\n",
+    "comments":"",
+    "outputs":1,
+    "x":828.3333129882812,
+    "y":634.3808479309082,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "1632f046.4d998"
+      ]
+    ]
+  },
+  {
+    "id":"5930857d.90f94c",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":828.0951538085938,
+    "y":675.333366394043,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "223ba3cb.be09fc"
+      ]
+    ]
+  },
+  {
+    "id":"4a26d4a8.22be7c",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":194.99999237060547,
+    "y":2351.9999599456787,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "2e530cdc.f4ef94",
+        "aea9b344.20b1b",
+        "a8ff9e79.0b468",
+        "358800b1.81ab1",
+        "88b7c37.4ed0e4",
+        "eac7ee4b.07efc",
+        "e57448b6.7f55b8",
+        "aaaa0574.80d838",
+        "9a073bb9.44d298",
+        "e811de1a.3c14a",
+        "ad1485f5.221e88",
+        "98b04124.336cf",
+        "cfad5308.b616e",
+        "7923367d.eb91d8",
+        "809c73eb.2a71c",
+        "a3e0954f.9194f8",
+        "a65c32d0.f1f0d",
+        "fa12b719.f97378",
+        "1f990c33.cacfc4",
+        "714310a.b7326f",
+        "69ed6361.64762c",
+        "e47d3411.0e7818",
+        "582721c4.126f6",
+        "b0ef8497.4ea668",
+        "3ab291c1.7ed19e",
+        "8923d8d0.f4b338",
+        "4f613c00.2b7644",
+        "39e9e85.a687718",
+        "dfa4db2.9778928",
+        "14f4699d.ce7016",
+        "7ae88bfe.f72b94",
+        "aa1a950e.7071b8",
+        "1f69056.fe181fb",
+        "19070089.9bb2ff",
+        "a2e18bff.138e78",
+        "454e063f.718d08",
+        "aedcd126.656c8",
+        "c314b843.e5cd58"
+      ]
+    ]
+  },
+  {
+    "id":"1632f046.4d998",
+    "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":994.999927520752,
+    "y":633.6666030883789,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"223ba3cb.be09fc",
+    "type":"for",
+    "name":"for each vnf",
+    "xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":990.3332977294922,
+    "y":674.9999847412109,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "220abc57.c6caa4"
+      ]
+    ]
+  },
+  {
+    "id":"220abc57.c6caa4",
+    "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":1241.6665153503418,
+    "y":674.6666717529297,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "8fa71765.ff25a8"
+      ]
+    ]
+  },
+  {
+    "id":"8fa71765.ff25a8",
+    "type":"outcomeTrue",
+    "name":"true",
+    "xml":"<outcome value='true'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1471.6666069030762,
+    "y":674.0000257492065,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "99e80d15.cd3ff"
+      ]
+    ]
+  },
+  {
+    "id":"358800b1.81ab1",
+    "type":"set",
+    "name":"set vnf-index to -1",
+    "xml":"<set>\n<parameter name='vnf-index' value='-1' />\n",
+    "comments":"",
+    "x":536.6666641235352,
+    "y":588.6666069030762,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"2b9d4cfa.693254",
+    "type":"set",
+    "name":"set vnf-index to idx",
+    "xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n",
+    "comments":"",
+    "x":1793.3332443237305,
+    "y":644.9999837875366,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"88b7c37.4ed0e4",
+    "type":"switchNode",
+    "name":"switch vnf-index",
+    "xml":"<switch test='`$vnf-index`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":526.6666717529297,
+    "y":725.3333034515381,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "12b4f972.baaff7"
+      ]
+    ]
+  },
+  {
+    "id":"12b4f972.baaff7",
+    "type":"outcome",
+    "name":"-1",
+    "xml":"<outcome value='-1'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":705.000057220459,
+    "y":724.6666793823242,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "a416b02e.8e4f1"
+      ]
+    ]
+  },
+  {
+    "id":"a416b02e.8e4f1",
+    "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":864.9999656677246,
+    "y":723.9999828338623,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"eac7ee4b.07efc",
+    "type":"switchNode",
+    "name":"switch vnf order status",
+    "xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":549.6666946411133,
+    "y":796.6667003631592,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "2fc04200.260dfe",
+        "bef7e5a8.884d58"
+      ]
+    ]
+  },
+  {
+    "id":"2fc04200.260dfe",
+    "type":"outcome",
+    "name":"Created",
+    "xml":"<outcome value='Created'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":749.9999961853027,
+    "y":770.3332843780518,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "3cba4216.c1fc4e"
+      ]
+    ]
+  },
+  {
+    "id":"3cba4216.c1fc4e",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":890.0000076293945,
+    "y":770.3333263397217,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"bef7e5a8.884d58",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":746.666633605957,
+    "y":811.9999618530273,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "fc26f30c.6bb1c"
+      ]
+    ]
+  },
+  {
+    "id":"fc26f30c.6bb1c",
+    "type":"returnFailure",
+    "name":"return failure",
+    "xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'VNF order status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status + ' but should be Created'`\" />\n",
+    "comments":"",
+    "x":906.666633605957,
+    "y":811.6666488647461,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"e57448b6.7f55b8",
+    "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":553.333381652832,
+    "y":888.6666212081909,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "9b350576.68ef18",
+        "22c3a3f5.72d6ac"
+      ]
+    ]
+  },
+  {
+    "id":"9b350576.68ef18",
+    "type":"other",
+    "name":"NULL",
+    "xml":"<outcome value=''>\n",
+    "comments":"",
+    "outputs":1,
+    "x":810.7143363952637,
+    "y":855.8093948364258,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "c6416be8.6fa798"
+      ]
+    ]
+  },
+  {
+    "id":"c6416be8.6fa798",
+    "type":"set",
+    "name":"set vf-module-index=0",
+    "xml":"<set>\n<parameter name='vf-module-index' value='0' />\n",
+    "comments":"",
+    "x":998.3333740234375,
+    "y":856.4761695861816,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"22c3a3f5.72d6ac",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":811.142879486084,
+    "y":920.0952529907227,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "19a7ad8a.4f2812"
+      ]
+    ]
+  },
+  {
+    "id":"421fd6a0.579bd8",
+    "type":"set",
+    "name":"set vf-module-index = vf-module_length",
+    "xml":"<set>\n<parameter name='vf-module-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n",
+    "comments":"",
+    "x":1196.3334197998047,
+    "y":900.2856483459473,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"1d996969.d26e67",
+    "type":"for",
+    "name":"for each existing 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":1155.4285125732422,
+    "y":944.3808784484863,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "a0040550.7bc5d8"
+      ]
+    ]
+  },
+  {
+    "id":"19a7ad8a.4f2812",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":947.8571586608887,
+    "y":920.095178604126,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "421fd6a0.579bd8",
+        "1d996969.d26e67"
+      ]
+    ]
+  },
+  {
+    "id":"a0040550.7bc5d8",
+    "type":"switchNode",
+    "name":"switch vf-module-information.vf-module-id == service-data.vnfs.vnf[].vf-modules.vf-module[].vf-module-id",
+    "xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.vf-module-id == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1659.0476150512695,
+    "y":943.9522895812988,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "6ba70fe.734c0f"
+      ]
+    ]
+  },
+  {
+    "id":"6ba70fe.734c0f",
+    "type":"outcomeTrue",
+    "name":"true",
+    "xml":"<outcome value='true'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":2101.666664123535,
+    "y":943.5237407684326,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "93b8e785.9fee48"
+      ]
+    ]
+  },
+  {
+    "id":"93b8e785.9fee48",
+    "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=\"`'VF module id ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id\n       + ' already exists, and status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-level-oper-status.order-status`\" />\n",
+    "comments":"",
+    "x":2253.571544647217,
+    "y":943.5237274169922,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"f56d52b4.a8261",
+    "type":"comment",
+    "name":"make sure this VF module doesn't exist already",
+    "info":"",
+    "comments":"",
+    "x":1685.4999618530273,
+    "y":898.5797815322876,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"aaaa0574.80d838",
+    "type":"set",
+    "name":"set new vf-module_length",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-module-index + 1`' />\n",
+    "comments":"",
+    "x":558.3333206176758,
+    "y":983.6665554046631,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"9a073bb9.44d298",
+    "type":"set",
+    "name":"set vf-module-topology data",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`' />\n<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-type' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-type`' />\n<parameter name='tmp.vf-module-topology.tenant' value='`$vf-module-topology-operation-input.vf-module-request-input.tenant`' />\n<parameter name='tmp.vf-module-topology.aic-cloud-region' value='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`' />\n",
+    "comments":"",
+    "x":564.8333396911621,
+    "y":1096.1666622161865,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"71021cf9.d2ce64",
+    "type":"set",
+    "name":"set aic-clli",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli'\n   value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\n",
+    "comments":"",
+    "x":1325.7855987548828,
+    "y":1255.4045886993408,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"e811de1a.3c14a",
+    "type":"switchNode",
+    "name":"switch aic-clli",
+    "xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":524.8332595825195,
+    "y":1369.3569288253784,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "c686f39d.72ab2"
+      ]
+    ]
+  },
+  {
+    "id":"c686f39d.72ab2",
+    "type":"outcome",
+    "name":"NULL",
+    "xml":"<outcome value=''>",
+    "comments":"",
+    "outputs":1,
+    "x":670.1189498901367,
+    "y":1369.3569974899292,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "6f7dc11c.49e2c"
+      ]
+    ]
+  },
+  {
+    "id":"6f7dc11c.49e2c",
+    "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 aic-clli in AAI for aic-cloud-region ' + $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`\" />\n",
+    "comments":"",
+    "x":817.2618103027344,
+    "y":1368.9284315109253,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"ad1485f5.221e88",
+    "type":"get-resource",
+    "name":"get-resource cloud region",
+    "xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"cloud-region\" \n\t\tkey=\"cloud-region.cloud-owner = 'CloudOwner' AND \n\t\t     cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\"\n        pfx='aai.cloud-region' local-only='false' >\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":563.6904754638672,
+    "y":1169.5002002716064,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "8097c203.a4e64",
+        "ef1c3461.dc92d8"
+      ]
+    ]
+  },
+  {
+    "id":"ef1c3461.dc92d8",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":777.9366683959961,
+    "y":1187.6510562896729,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "6dfc15a7.72a2bc"
+      ]
+    ]
+  },
+  {
+    "id":"6dfc15a7.72a2bc",
+    "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 retrieving cloud region from AAI\" />\n",
+    "comments":"",
+    "x":952.9366416931152,
+    "y":1187.6510925292969,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"8097c203.a4e64",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":786.8652648925781,
+    "y":1145.9367895126343,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "4786ef92.946f8"
+      ]
+    ]
+  },
+  {
+    "id":"4786ef92.946f8",
+    "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=\"Cloud region not found in AAI\" />\n",
+    "comments":"",
+    "x":953.214542388916,
+    "y":1145.2423667907715,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"98b04124.336cf",
+    "type":"set",
+    "name":"set vf-module-parameters",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-parameters.'\n  value='vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.' />\n",
+    "comments":"",
+    "x":560.595287322998,
+    "y":1818.7860202789307,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"cfad5308.b616e",
+    "type":"set",
+    "name":"set order-status to PendingCreate",
+    "xml":"<set>\n<parameter name='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  value='PendingCreate' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n",
+    "comments":"",
+    "x":576.2262573242188,
+    "y":5020.3927001953125,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"7923367d.eb91d8",
+    "type":"get-resource",
+    "name":"get-resource VF_MODULE_TO_VFC_MAPPING",
+    "xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODULE_TO_VFC_MAPPING WHERE vf_module_customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-module-to-vfc-mapping[]'>\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":633.9286880493164,
+    "y":1872.642807006836,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "61dd146a.6f14fc",
+        "cfdcc8b2.a45fb8"
+      ]
+    ]
+  },
+  {
+    "id":"61dd146a.6f14fc",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":899.7143783569336,
+    "y":1853.0236377716064,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "3ca0362b.6e2f9a"
+      ]
+    ]
+  },
+  {
+    "id":"cfdcc8b2.a45fb8",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":908.2858085632324,
+    "y":1897.3093509674072,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "f2ed6314.ee329"
+      ]
+    ]
+  },
+  {
+    "id":"3ca0362b.6e2f9a",
+    "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 reading VF_MODULE_TO_VFC_MAPPING table\" />\n",
+    "comments":"",
+    "x":1074.7143096923828,
+    "y":1852.1665382385254,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"809c73eb.2a71c",
+    "type":"for",
+    "name":"for each vm-type",
+    "xml":"<for index='vm-type-index' start='0' end='`$db.vf-module-to-vfc-mapping_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":534.0476989746094,
+    "y":2501.6430587768555,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "1f699ee5.b89dd1"
+      ]
+    ]
+  },
+  {
+    "id":"ae4ef538.4223c8",
+    "type":"get-resource",
+    "name":"get-resource VFC_MODEL",
+    "xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VFC_MODEL WHERE customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\n  pfx='db.vfc-model'>\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":975.9524993896484,
+    "y":1993.5477199554443,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "c1a94592.ef7dc8",
+        "36c932eb.81f9ae"
+      ]
+    ]
+  },
+  {
+    "id":"2749f807.59cbd8",
+    "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=\"`'No entries found in VFC_MODEL table for customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`\" />\n",
+    "comments":"",
+    "x":1346.3808479309082,
+    "y":2017.9761123657227,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"c1a94592.ef7dc8",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1171.7381172180176,
+    "y":1973.9284706115723,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "480721a9.59fc5"
+      ]
+    ]
+  },
+  {
+    "id":"36c932eb.81f9ae",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1180.3095474243164,
+    "y":2018.214183807373,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "2749f807.59cbd8"
+      ]
+    ]
+  },
+  {
+    "id":"480721a9.59fc5",
+    "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 reading VFC_MODEL table\" />\n",
+    "comments":"",
+    "x":1346.7380485534668,
+    "y":1973.0713710784912,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"1f699ee5.b89dd1",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":725.9524917602539,
+    "y":2500.214427947998,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "ae4ef538.4223c8",
+        "96edef9a.d3b33",
+        "dc43de7f.70791",
+        "c2deb4af.5c58c8",
+        "8101c46.e2ef238",
+        "f5bdc66c.11bd78",
+        "4f18de56.831f8",
+        "18e532bb.94aa6d"
+      ]
+    ]
+  },
+  {
+    "id":"69ed6361.64762c",
+    "type":"set",
+    "name":"set vm_length",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm_length'\n  value='`$db.vf-module-to-vfc-mapping_length`' />\n",
+    "comments":"",
+    "x":525.833366394043,
+    "y":1932.8334846496582,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"96edef9a.d3b33",
+    "type":"set",
+    "name":"set vm data",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type'\n   value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code'\n   value='`$db.vfc-model.nfc-naming-code`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type-tag'\n   value='`$db.vfc-model.vm-type-tag`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count'\n   value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\n",
+    "comments":"",
+    "x":926.6667518615723,
+    "y":2119.5001974105835,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"99e80d15.cd3ff",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":1620.0000686645508,
+    "y":672.9197244644165,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "2b9d4cfa.693254",
+        "e08ffaca.0297f8"
+      ]
+    ]
+  },
+  {
+    "id":"e08ffaca.0297f8",
+    "type":"break",
+    "name":"break",
+    "xml":"<break>",
+    "comments":"",
+    "x":1755.0000343322754,
+    "y":694.5863103866577,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"d743beeb.1dbe5",
+    "type":"set",
+    "name":"set from DB",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\n  value='`$db.vf-module-model.invariant-uuid`' />\n",
+    "comments":"",
+    "x":939.1665992736816,
+    "y":1410.7529220581055,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"a3e0954f.9194f8",
+    "type":"switchNode",
+    "name":"switch input model-invariant-uuid",
+    "xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":583.0236740112305,
+    "y":1433.5773658752441,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "2c1d02c0.78dd0e",
+        "a95a3eca.03f4"
+      ]
+    ]
+  },
+  {
+    "id":"2c1d02c0.78dd0e",
+    "type":"outcome",
+    "name":"NULL",
+    "xml":"<outcome value=''>",
+    "comments":"",
+    "outputs":1,
+    "x":788.6903457641602,
+    "y":1410.720329284668,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "d743beeb.1dbe5"
+      ]
+    ]
+  },
+  {
+    "id":"a95a3eca.03f4",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":790.1189422607422,
+    "y":1455.0059204101562,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "25dab957.580636"
+      ]
+    ]
+  },
+  {
+    "id":"25dab957.580636",
+    "type":"set",
+    "name":"set from input",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\n",
+    "comments":"",
+    "x":944.4046783447266,
+    "y":1454.4344925880432,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"638901d0.ce1ec",
+    "type":"set",
+    "name":"set from DB",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\n  value='`$db.vf-module-model.uuid`' />\n",
+    "comments":"",
+    "x":940.1188697814941,
+    "y":1499.2915983200073,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"a65c32d0.f1f0d",
+    "type":"switchNode",
+    "name":"switch input model-uuid",
+    "xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":555.642692565918,
+    "y":1522.1161031723022,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "ed142f55.1f70c",
+        "75273d61.353b14"
+      ]
+    ]
+  },
+  {
+    "id":"ed142f55.1f70c",
+    "type":"outcome",
+    "name":"NULL",
+    "xml":"<outcome value=''>",
+    "comments":"",
+    "outputs":1,
+    "x":789.6426658630371,
+    "y":1499.2590351104736,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "638901d0.ce1ec"
+      ]
+    ]
+  },
+  {
+    "id":"75273d61.353b14",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":791.0712623596191,
+    "y":1543.544626235962,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "da1cfb23.9a25e8"
+      ]
+    ]
+  },
+  {
+    "id":"da1cfb23.9a25e8",
+    "type":"set",
+    "name":"set from input",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`' />\n",
+    "comments":"",
+    "x":945.3569984436035,
+    "y":1542.9731984138489,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"65429406.6c6b9c",
+    "type":"set",
+    "name":"set from DB",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-version'\n  value='`$db.vf-module-model.version`' />\n",
+    "comments":"",
+    "x":937.2618026733398,
+    "y":1588.1488056182861,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"fa12b719.f97378",
+    "type":"switchNode",
+    "name":"switch input model-version",
+    "xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":563.7855644226074,
+    "y":1610.9732503890991,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "1200d2f5.494f9d",
+        "f5147fc0.bfa5e"
+      ]
+    ]
+  },
+  {
+    "id":"1200d2f5.494f9d",
+    "type":"outcome",
+    "name":"NULL",
+    "xml":"<outcome value=''>",
+    "comments":"",
+    "outputs":1,
+    "x":786.7855491638184,
+    "y":1588.1162128448486,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "65429406.6c6b9c"
+      ]
+    ]
+  },
+  {
+    "id":"f5147fc0.bfa5e",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":788.2141456604004,
+    "y":1632.401803970337,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "d74f65ed.78d448"
+      ]
+    ]
+  },
+  {
+    "id":"d74f65ed.78d448",
+    "type":"set",
+    "name":"set from input",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-version'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\n",
+    "comments":"",
+    "x":942.4998817443848,
+    "y":1631.8303761482239,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"da71a3e1.3185a",
+    "type":"set",
+    "name":"set from DB",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-name'\n  value='`$db.vf-module-model.name`' />\n",
+    "comments":"",
+    "x":937.2618026733398,
+    "y":1675.2916278839111,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"1f990c33.cacfc4",
+    "type":"switchNode",
+    "name":"switch input model-name",
+    "xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":558.7855644226074,
+    "y":1698.1160726547241,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "647b0438.ab102c",
+        "663c8c44.ce20c4"
+      ]
+    ]
+  },
+  {
+    "id":"647b0438.ab102c",
+    "type":"outcome",
+    "name":"NULL",
+    "xml":"<outcome value=''>",
+    "comments":"",
+    "outputs":1,
+    "x":786.7855491638184,
+    "y":1675.2590351104736,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "da71a3e1.3185a"
+      ]
+    ]
+  },
+  {
+    "id":"663c8c44.ce20c4",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":788.2141456604004,
+    "y":1719.544626235962,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "e84c9dce.744b8"
+      ]
+    ]
+  },
+  {
+    "id":"e84c9dce.744b8",
+    "type":"set",
+    "name":"set from input",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-name'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`' />\n",
+    "comments":"",
+    "x":942.4998817443848,
+    "y":1718.9731984138489,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"714310a.b7326f",
+    "type":"set",
+    "name":"set model-customization-uuid",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-customization-uuid'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\n",
+    "comments":"",
+    "x":573.2378997802734,
+    "y":1770.6250619888306,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"dc43de7f.70791",
+    "type":"for",
+    "name":"for each vm",
+    "xml":"<for index='vm-index' start='0' end='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":928.3332405090332,
+    "y":2228.7531156539917,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "7505754.7087a8c"
+      ]
+    ]
+  },
+  {
+    "id":"c2deb4af.5c58c8",
+    "type":"set",
+    "name":"set vm-name-length",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length'\n  value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\n",
+    "comments":"",
+    "x":951.6666946411133,
+    "y":2163.753373146057,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"2f06bc6e.cdf504",
+    "type":"call",
+    "name":"call GENERIC-RESOURCE-API:generate-unique-name",
+    "xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":1394.761863708496,
+    "y":2251.3722620010376,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "6c48629.77e939c",
+        "a3fd6e6d.5788b"
+      ]
+    ]
+  },
+  {
+    "id":"6c48629.77e939c",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1690.4761517842617,
+    "y":2224.2295246124268,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "8b35adee.43478"
+      ]
+    ]
+  },
+  {
+    "id":"a3fd6e6d.5788b",
+    "type":"success",
+    "name":"success",
+    "xml":"<outcome value='success'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1693.8095016479492,
+    "y":2275.896167755127,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "a8057f80.cfbdb"
+      ]
+    ]
+  },
+  {
+    "id":"18ce2f16.816031",
+    "type":"set",
+    "name":"set variables for generating unique name",
+    "xml":"<set>\n<parameter name='generate-unique-name-input.index-table-name' value='VM_NAME_INDEX' />\n<parameter name='generate-unique-name-input.index-table-prefix-column' value='vm_name_prefix' />\n<parameter name='generate-unique-name-input.name-table-type' value='VM_INSTANCE' />\n<parameter name='generate-unique-name-input.prefix' value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-name + $db.vfc-model.nfc-naming-code`\" />\n<parameter name='generate-unique-name-input.index-length' value='3' />\n",
+    "comments":"",
+    "x":1351.4285774230957,
+    "y":2199.7055883407593,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"a8057f80.cfbdb",
+    "type":"set",
+    "name":"set generated name",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' value='`$generate-unique-name-output.generated-name`' />\n",
+    "comments":"",
+    "x":1878.3332176208496,
+    "y":2275.3721857070923,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"8b35adee.43478",
+    "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=\"`$generate-unique-name-output.error-message`\" />\n",
+    "comments":"",
+    "x":1858.3332646687832,
+    "y":2223.6580362319946,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"e47d3411.0e7818",
+    "type":"set",
+    "name":"set vf-module-id",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'\n   value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n",
+    "comments":"",
+    "x":526.4285469055176,
+    "y":1039.348237991333,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"7505754.7087a8c",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":1092.738182067871,
+    "y":2228.396019935608,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "18ce2f16.816031",
+        "2f06bc6e.cdf504"
+      ]
+    ]
+  },
+  {
+    "id":"8101c46.e2ef238",
+    "type":"get-resource",
+    "name":"get-resource VFC_TO_NETWORK_ROLE_MAPPING",
+    "xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VFC_TO_NETWORK_ROLE_MAPPING WHERE vfc_customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\n  pfx='db.vfc-to-network-role-mapping[]'>\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":1055.595329284668,
+    "y":2351.253088951111,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "61785549.e0849c",
+        "5224b8ad.063668"
+      ]
+    ]
+  },
+  {
+    "id":"61785549.e0849c",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1342.8095321655273,
+    "y":2331.6339359283447,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "58d75d53.d15634"
+      ]
+    ]
+  },
+  {
+    "id":"5224b8ad.063668",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1351.3809623718262,
+    "y":2375.9196491241455,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "16f89ad6.193655"
+      ]
+    ]
+  },
+  {
+    "id":"58d75d53.d15634",
+    "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 reading VFC_TO_NETWORK_ROLE_MAPPING table\" />\n",
+    "comments":"",
+    "x":1517.8094635009766,
+    "y":2330.7768363952637,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"f5bdc66c.11bd78",
+    "type":"for",
+    "name":"for each network-role",
+    "xml":"<for index='network-role-index' start='0' end='`$db.vfc-to-network-role-mapping_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":948.6906204223633,
+    "y":2662.4439306259155,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "f495fb98.6c0a18"
+      ]
+    ]
+  },
+  {
+    "id":"f495fb98.6c0a18",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":1155.1190719604492,
+    "y":2659.11043548584,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "8d2e0b.55c471f8",
+        "b8d6dab7.8f19b8",
+        "46e547.478a3ab8",
+        "1da90578.6d8f2b",
+        "415ccc2d.a04f44",
+        "5a0fce27.0cc5",
+        "2cebaf.8e65f452",
+        "c8e0f30f.8d5d8"
+      ]
+    ]
+  },
+  {
+    "id":"8d2e0b.55c471f8",
+    "type":"for",
+    "name":"for each network",
+    "xml":"<for silentFailure='true' index='idx' start='0' end='`$service-data.networks.network_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":1364.166633605957,
+    "y":2491.253191947937,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "e2ef30d6.1b483"
+      ]
+    ]
+  },
+  {
+    "id":"b8d6dab7.8f19b8",
+    "type":"set",
+    "name":"set network-index to -1",
+    "xml":"<set>\n<parameter name='network-index' value='-1' />\n",
+    "comments":"",
+    "x":1384.1667022705078,
+    "y":2448.396188735962,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"e2ef30d6.1b483",
+    "type":"switchNode",
+    "name":"switch network-role matches",
+    "xml":"<switch test='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-role == $db.vfc-to-network-role-mapping[$network-role-index].network-role`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1592.737907409668,
+    "y":2489.824381828308,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "79eba1ee.46b8"
+      ]
+    ]
+  },
+  {
+    "id":"79eba1ee.46b8",
+    "type":"outcomeTrue",
+    "name":"true",
+    "xml":"<outcome value='true'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1791.3095741271973,
+    "y":2489.824585914612,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "52d952.2163c6b"
+      ]
+    ]
+  },
+  {
+    "id":"52d952.2163c6b",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":1932.7381420135498,
+    "y":2488.396014213562,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "19d3b2d3.0314cd",
+        "b934653f.8e9748"
+      ]
+    ]
+  },
+  {
+    "id":"19d3b2d3.0314cd",
+    "type":"set",
+    "name":"set network-index to idx",
+    "xml":"<set>\n<parameter name='network-index' value='`$idx`' />\n",
+    "comments":"",
+    "x":2111.30965423584,
+    "y":2465.5390100479126,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"b934653f.8e9748",
+    "type":"break",
+    "name":"break",
+    "xml":"<break>",
+    "comments":"",
+    "x":2059.8808937072754,
+    "y":2511.2531900405884,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"46e547.478a3ab8",
+    "type":"switchNode",
+    "name":"switch network-index",
+    "xml":"<switch test='`$network-index`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1376.0714721679688,
+    "y":2540.062829017639,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "d2ba67f.cc23298"
+      ]
+    ]
+  },
+  {
+    "id":"d2ba67f.cc23298",
+    "type":"outcomeTrue",
+    "name":"-1",
+    "xml":"<outcome value='-1'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1570.3571968078613,
+    "y":2540.062726020813,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "78f92d17.cec774"
+      ]
+    ]
+  },
+  {
+    "id":"78f92d17.cec774",
+    "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=\"`'No network found in MD-SAL with network-role ' + $db.vfc-to-network-role-mapping[$network-role-index].network-role`\" />\n",
+    "comments":"",
+    "x":1727.5000457763672,
+    "y":2538.634196281433,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"582721c4.126f6",
+    "type":"for",
+    "name":"for each cloud-region relationship",
+    "xml":"<for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":585.9442901611328,
+    "y":1258.0068836212158,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "f632bc1b.960e"
+      ]
+    ]
+  },
+  {
+    "id":"f632bc1b.960e",
+    "type":"switchNode",
+    "name":"switch related-to",
+    "xml":"<switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":833.6228332519531,
+    "y":1257.7568130493164,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "c5ce5df.fba4ea"
+      ]
+    ]
+  },
+  {
+    "id":"c5ce5df.fba4ea",
+    "type":"outcome",
+    "name":"complex",
+    "xml":"<outcome value='complex'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1003.0871543884277,
+    "y":1257.1496353149414,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "36cd2be.f10ccd4"
+      ]
+    ]
+  },
+  {
+    "id":"af57b732.5de4d8",
+    "type":"execute",
+    "name":"split related-link",
+    "xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='aai-uid-split' />\n   <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\n   <parameter name='regex' value='/' />\n",
+    "comments":"",
+    "outputs":1,
+    "x":1343.1823120117188,
+    "y":1211.5782108306885,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"36cd2be.f10ccd4",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":1162.8490142822266,
+    "y":1258.2449989318848,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "af57b732.5de4d8",
+        "e276c8d3.3ab668",
+        "71021cf9.d2ce64"
+      ]
+    ]
+  },
+  {
+    "id":"e276c8d3.3ab668",
+    "type":"break",
+    "name":"break",
+    "xml":"<break>",
+    "comments":"",
+    "x":1312.848976135254,
+    "y":1301.5782957077026,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"1da90578.6d8f2b",
+    "type":"set",
+    "name":"set network-role and tag",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role-tag'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role-tag`' />\n",
+    "comments":"",
+    "x":1385.8333549499512,
+    "y":2636.2530155181885,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"4f18de56.831f8",
+    "type":"set",
+    "name":"set vm-network-length",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\n  value='`$db.vfc-to-network-role-mapping_length`' />\n",
+    "comments":"",
+    "x":942.4999465942383,
+    "y":3051.2532806396484,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"415ccc2d.a04f44",
+    "type":"switchNode",
+    "name":"switch ipv4-ip-version",
+    "xml":"<switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1378.452407836914,
+    "y":2719.5863428115845,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "eff505c0.4d80a8",
+        "7ba4a75.88aab58"
+      ]
+    ]
+  },
+  {
+    "id":"15f50ec8.ae15e1",
+    "type":"set",
+    "name":"set network-information-index to -1",
+    "xml":"<set>\n<parameter name='network-information-index' value='-1' />\n\n",
+    "comments":"",
+    "x":1787.97603225708,
+    "y":2684.5864477157593,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"eff505c0.4d80a8",
+    "type":"outcome",
+    "name":"NULL",
+    "xml":"<outcome value=''>",
+    "comments":"",
+    "outputs":1,
+    "x":1555.1189270019531,
+    "y":2684.586483001709,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "15f50ec8.ae15e1"
+      ]
+    ]
+  },
+  {
+    "id":"7ba4a75.88aab58",
+    "type":"other",
+    "name":"4",
+    "xml":"<outcome value='4'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1553.8808784484863,
+    "y":2750.538625717163,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "77d24f8f.dfe93"
+      ]
+    ]
+  },
+  {
+    "id":"9db64306.b784b",
+    "type":"set",
+    "name":"set network-information-index to 0",
+    "xml":"<set>\n<parameter name='network-information-index' value='0' />\n",
+    "comments":"",
+    "x":1958.4521408081055,
+    "y":2725.0624866485596,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"77d24f8f.dfe93",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":1721.0713539123535,
+    "y":2749.872091293335,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "9db64306.b784b",
+        "ae06599.ab8ada8"
+      ]
+    ]
+  },
+  {
+    "id":"ae06599.ab8ada8",
+    "type":"set",
+    "name":"set ip-version 4, use-dhcp, and ip-count",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-version'\n   value='4' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].use-dhcp'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-count'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-count`' />\n",
+    "comments":"",
+    "x":1975.4047241210938,
+    "y":2771.7294425964355,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"5a0fce27.0cc5",
+    "type":"switchNode",
+    "name":"switch ipv6-ip-version",
+    "xml":"<switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1378.9286041259766,
+    "y":2846.4911251068115,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "c42cc110.b1b6c",
+        "3f79e3b9.76574c"
+      ]
+    ]
+  },
+  {
+    "id":"c42cc110.b1b6c",
+    "type":"outcome",
+    "name":"NULL",
+    "xml":"<outcome value=''>",
+    "comments":"",
+    "outputs":1,
+    "x":1557.7380981445312,
+    "y":2816.728937149048,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "804f081a.ae1078"
+      ]
+    ]
+  },
+  {
+    "id":"3f79e3b9.76574c",
+    "type":"other",
+    "name":"6",
+    "xml":"<outcome value='6'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1559.1666526794434,
+    "y":2881.0144939422607,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "a9db339d.d7ff6"
+      ]
+    ]
+  },
+  {
+    "id":"dae18443.96dc88",
+    "type":"set",
+    "name":"increment network-information-index",
+    "xml":"<set>\n<parameter name='network-information-index' value='`$network-information-index + 1`' />\n",
+    "comments":"",
+    "x":1964.880744934082,
+    "y":2855.5385236740112,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"a9db339d.d7ff6",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":1714.4048118591309,
+    "y":2880.0622329711914,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "dae18443.96dc88",
+        "d1e2a302.f2a79"
+      ]
+    ]
+  },
+  {
+    "id":"804f081a.ae1078",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":1700.404727935791,
+    "y":2816.0625553131104,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"2cebaf.8e65f452",
+    "type":"switchNode",
+    "name":"switch network-information-index",
+    "xml":"<switch test='`$network-information-index`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1414.166618347168,
+    "y":2982.919370651245,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "65a0822f.ef5c1c",
+        "83f08e39.d6a15"
+      ]
+    ]
+  },
+  {
+    "id":"65a0822f.ef5c1c",
+    "type":"outcome",
+    "name":"-1",
+    "xml":"<outcome value='-1'>",
+    "comments":"",
+    "outputs":1,
+    "x":1632.4999752044678,
+    "y":2959.5861167907715,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "19418e05.1e8042"
+      ]
+    ]
+  },
+  {
+    "id":"83f08e39.d6a15",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1632.2619380950928,
+    "y":3005.5384311676025,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "5955caa.70cc334"
+      ]
+    ]
+  },
+  {
+    "id":"19418e05.1e8042",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":1769.166690826416,
+    "y":2957.919776916504,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"5955caa.70cc334",
+    "type":"set",
+    "name":"set network-information-item_length",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length'\n   value='`$network-information-index + 1`' />\n",
+    "comments":"",
+    "x":1860.8333053588867,
+    "y":3002.919569015503,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"b0ef8497.4ea668",
+    "type":"for",
+    "name":"for each vm-type",
+    "xml":"<for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":541,
+    "y":3149.9194660186768,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "fe06fed9.aff3e"
+      ]
+    ]
+  },
+  {
+    "id":"fe06fed9.aff3e",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":744.5715255737305,
+    "y":3150.1576709747314,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "d04bd80b.387cf8"
+      ]
+    ]
+  },
+  {
+    "id":"c8e0f30f.8d5d8",
+    "type":"set",
+    "name":"save network-id",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id'\n  value='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-id`' />\n",
+    "comments":"This isn't a node in MD-SAL, but we need to save this for later when we are doing EIPAM processing",
+    "x":1357.9761810302734,
+    "y":2586.253023147583,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"d04bd80b.387cf8",
+    "type":"for",
+    "name":"for each network-role",
+    "xml":"<for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":945.999885559082,
+    "y":3149.252721786499,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "5ff438d4.980868"
+      ]
+    ]
+  },
+  {
+    "id":"5ff438d4.980868",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":1147.9047012329102,
+    "y":3148.490758895874,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "5c7949ed.12f198"
+      ]
+    ]
+  },
+  {
+    "id":"5c7949ed.12f198",
+    "type":"for",
+    "name":"for each network-information-item",
+    "xml":"<for index='ip-version-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":1392.6665725708008,
+    "y":3148.0151510238647,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "3c49e4a4.13796c"
+      ]
+    ]
+  },
+  {
+    "id":"97b8ba37.35fdb8",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":637.666633605957,
+    "y":3353.9195766448975,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "c20748cc.14a758",
+        "f73ba212.a9db1",
+        "eccb2ab1.4ecf58",
+        "6c51c35e.c8107c",
+        "373238a0.60e488"
+      ]
+    ]
+  },
+  {
+    "id":"c20748cc.14a758",
+    "type":"get-resource",
+    "name":"get-resource EIPAM_IP_SUBNETS",
+    "xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from EIPAM_IP_SUBNETS WHERE network_id = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id\n    AND address_family = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version'\n  pfx='db.eipam-ip-subnets[]'>\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":1017.6666564941406,
+    "y":3315.586072921753,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "e7cc33.f38f63d",
+        "6e4ec0e0.26982"
+      ]
+    ]
+  },
+  {
+    "id":"1c2857df.d8b0a8",
+    "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=\"`'No entries found in EIPAM_IP_SUBNETS table for network ID '\n        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id\n        + ' and address family ' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version`\" />\n",
+    "comments":"",
+    "x":1407.6665954589844,
+    "y":3337.2528343200684,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"e7cc33.f38f63d",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1233.0238647460938,
+    "y":3293.205192565918,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "6c1c41f9.cb5ac"
+      ]
+    ]
+  },
+  {
+    "id":"6e4ec0e0.26982",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1241.5952949523926,
+    "y":3337.4909057617188,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "1c2857df.d8b0a8"
+      ]
+    ]
+  },
+  {
+    "id":"6c1c41f9.cb5ac",
+    "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 reading EIPAM_IP_SUBNETS table\" />\n",
+    "comments":"",
+    "x":1408.023796081543,
+    "y":3292.348093032837,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"f73ba212.a9db1",
+    "type":"for",
+    "name":"for each record in EIPAM_IP_SUBNETS",
+    "xml":"<for index='subnets-index' start='0' end='`$db.eipam-ip-subnets_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":1036.9524688720703,
+    "y":3620.82426071167,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "48786485.afdfcc"
+      ]
+    ]
+  },
+  {
+    "id":"48786485.afdfcc",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":1293.3810195922852,
+    "y":3621.77654838562,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "76f82048.a92cb",
+        "564032f0.dfbc3c",
+        "a8b83f38.2b35f",
+        "802baf6d.dddb5",
+        "d69aacbb.b1933"
+      ]
+    ]
+  },
+  {
+    "id":"76f82048.a92cb",
+    "type":"get-resource",
+    "name":"get-resource EIPAM_IP_SUBNET_KEYS",
+    "xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from EIPAM_IP_SUBNET_KEYS WHERE entity_id = $db.eipam-ip-subnets[$subnets-index].entity-id'\n  pfx='db.eipam-ip-subnet-keys[]'>\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":1604.809585571289,
+    "y":3458.205156326294,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "5c773ab4.c1c354",
+        "76282e7d.401a9"
+      ]
+    ]
+  },
+  {
+    "id":"ea3f166e.9742f8",
+    "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=\"`'No entries found in EIPAM_IP_SUBNET_KEYS table for entity ID '\n        + $db.eipam-ip-subnets[$subnets-index].entity-id`\" />",
+    "comments":"",
+    "x":2019.809585571289,
+    "y":3478.205156326294,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"5c773ab4.c1c354",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1845.1668548583984,
+    "y":3434.1575145721436,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "a89d01a.87957"
+      ]
+    ]
+  },
+  {
+    "id":"76282e7d.401a9",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1853.7382850646973,
+    "y":3478.4432277679443,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "ea3f166e.9742f8"
+      ]
+    ]
+  },
+  {
+    "id":"a89d01a.87957",
+    "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 reading EIPAM_IP_SUBNET_KEYS table\" />\n",
+    "comments":"",
+    "x":2020.1667861938477,
+    "y":3433.3004150390625,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"eccb2ab1.4ecf58",
+    "type":"set",
+    "name":"set max-level to -1",
+    "xml":"<set>\n<parameter name='max-level' value='-1' />\n",
+    "comments":"",
+    "x":965.7619323730469,
+    "y":3381.538688659668,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"564032f0.dfbc3c",
+    "type":"for",
+    "name":"for each record in EIPAM_IP_SUBNET_KEYS",
+    "xml":"<for index='keys-index' start='0' end='`$db.eipam-ip-subnet-keys_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":1619.3334045410156,
+    "y":3527.2529106140137,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "96321389.4c73f"
+      ]
+    ]
+  },
+  {
+    "id":"96321389.4c73f",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":1906.0000534057617,
+    "y":3525.586248397827,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "2d3eea0b.50e1e6"
+      ]
+    ]
+  },
+  {
+    "id":"2d3eea0b.50e1e6",
+    "type":"switchNode",
+    "name":"switch level > max-level?",
+    "xml":"<switch test='`$db.eipam-ip-subnet-keys[$keys-index].level &gt; $max-level`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":2122.6666717529297,
+    "y":3525.586166381836,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "c87a6e6.e044e9"
+      ]
+    ]
+  },
+  {
+    "id":"c87a6e6.e044e9",
+    "type":"outcomeTrue",
+    "name":"true",
+    "xml":"<outcome value='true'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":2314.333599090576,
+    "y":3525.58616065979,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "f7e5553.b6c1fa8"
+      ]
+    ]
+  },
+  {
+    "id":"f7e5553.b6c1fa8",
+    "type":"set",
+    "name":"set max-level, selected-entity-id, selected-plan-name",
+    "xml":"<set>\n<parameter name='max-level' value='`$db.eipam-ip-subnet-keys[$keys-index].level`' />\n<parameter name='selected-entity-id' value='`$db.eipam-ip-subnet-keys[$keys-index].entity-id`' />\n<parameter name='selected-plan-name' value='`$db.eipam-ip-subnets[$subnets-index].plan-name`' />\n",
+    "comments":"",
+    "x":2606.0001068115234,
+    "y":3523.9194173812866,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"a8b83f38.2b35f",
+    "type":"get-resource",
+    "name":"get-resource EIPAM_IP_SUBNET_KEYS",
+    "xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from EIPAM_IP_SUBNET_KEYS WHERE entity_id = $selected-entity-id order by level'\n  pfx='db.eipam-ip-subnet-keys[]'>\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":1606.000015258789,
+    "y":3599.157615661621,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "d369bc07.5b51d",
+        "ce7c7e60.3e34b"
+      ]
+    ]
+  },
+  {
+    "id":"7b19e8c7.72e078",
+    "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=\"`'No entries found in EIPAM_IP_SUBNET_KEYS table for entity ID '\n        + $selected-entity-id`\" />",
+    "comments":"",
+    "x":2021.000015258789,
+    "y":3619.157615661621,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"d369bc07.5b51d",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1846.3572845458984,
+    "y":3575.1099739074707,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "404aa28f.128f4c"
+      ]
+    ]
+  },
+  {
+    "id":"ce7c7e60.3e34b",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1854.9287147521973,
+    "y":3619.3956871032715,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "7b19e8c7.72e078"
+      ]
+    ]
+  },
+  {
+    "id":"404aa28f.128f4c",
+    "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 reading EIPAM_IP_SUBNET_KEYS table\" />\n",
+    "comments":"",
+    "x":2021.3572158813477,
+    "y":3574.2528743743896,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"f31caaf8.dddbb8",
+    "type":"for",
+    "name":"for each record in EIPAM_IP_SUBNET_KEYS",
+    "xml":"<for index='level-index' start='0' end='`$db.eipam-ip-subnet-keys_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":2051.952362060547,
+    "y":3667.729072570801,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "b8b8da21.b44008"
+      ]
+    ]
+  },
+  {
+    "id":"b21661ec.87447",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":1744.8093643188477,
+    "y":3751.5385093688965,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "f31caaf8.dddbb8",
+        "18077655.54097a",
+        "b9fd5f75.b5e8a",
+        "df5529a.8c63fd8",
+        "863bfcf2.a453f"
+      ]
+    ]
+  },
+  {
+    "id":"802baf6d.dddb5",
+    "type":"for",
+    "name":"for each ip in ip-count",
+    "xml":"<for index='request-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-count`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":1543.142807006836,
+    "y":3751.5401363372803,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "b21661ec.87447"
+      ]
+    ]
+  },
+  {
+    "id":"b8b8da21.b44008",
+    "type":"set",
+    "name":"set eipam data for level",
+    "xml":"<set>\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools[$level-index].key-name'\n   value='`$db.eipam-ip-subnet-keys[$level-index].key-name`' />\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools[$level-index].key-value'\n   value='`$db.eipam-ip-subnet-keys[$level-index].key-value`' />\n",
+    "comments":"",
+    "x":2358.8571243286133,
+    "y":3667.4918384552,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"18077655.54097a",
+    "type":"set",
+    "name":"set eipam data pools_length",
+    "xml":"<set>\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools_length'\n   value='`$db.eipam-ip-subnet-keys_length`' />\n",
+    "comments":"",
+    "x":1998.142677307129,
+    "y":3713.2054557800293,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"3ab291c1.7ed19e",
+    "type":"set",
+    "name":"set plans-index to 0",
+    "xml":"<set>\n<parameter name='plans-index' value='0' />\n",
+    "comments":"",
+    "x":549.7619171142578,
+    "y":3093.8717365264893,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"6c51c35e.c8107c",
+    "type":"set",
+    "name":"increment plans-index",
+    "xml":"<set>\n<parameter name='plans-index' value='`$plans-index + 1`' />\n",
+    "comments":"",
+    "x":981.0952224731445,
+    "y":4012.871983528137,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"d69aacbb.b1933",
+    "type":"set",
+    "name":"set eipam requests_length",
+    "xml":"<set>\n<parameter name='eipam-ip-block.plans[$plans-index].requests_length'\n   value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-count`' />\n",
+    "comments":"",
+    "x":1553.6191711425781,
+    "y":3893.2055082321167,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"373238a0.60e488",
+    "type":"set",
+    "name":"set eipam plan-name, address-family",
+    "xml":"<set>\n<parameter name='eipam-ip-block.plans[$plans-index].plan-name' value='`$selected-plan-name`' />\n<parameter name='eipam-ip-block.plans[$plans-index].address-family'\n   value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version`' />\n",
+    "comments":"",
+    "x":1029.6666564941406,
+    "y":3965.7284650802612,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"8923d8d0.f4b338",
+    "type":"set",
+    "name":"set eipam plans_length",
+    "xml":"<set>\n<parameter name='eipam-ip-block.plans_length' value='`$plans-index`' />\n",
+    "comments":"",
+    "x":553.4285697937012,
+    "y":4037.919857978821,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"4f613c00.2b7644",
+    "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":512.7975616455078,
+    "y":5113.011030197144,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"39e9e85.a687718",
+    "type":"set",
+    "name":"copy input data",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\n   value='$vf-module-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\n   value='$vf-module-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\n   value='$vf-module-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\n   value='$vf-module-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\n   value='$vf-module-topology-operation-input.vf-module-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\n   value='$vf-module-topology-operation-input.vf-module-request-input.' />\n\n",
+    "comments":"",
+    "x":524.5832290649414,
+    "y":4888.990794181824,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"dfa4db2.9778928",
+    "type":"set",
+    "name":"copy vf-module-topology data",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.' value='$tmp.vf-module-topology.' />\n",
+    "comments":"",
+    "x":569.4642333984375,
+    "y":4840.776306152344,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"ff59520e.ec557",
+    "type":"execute",
+    "name":"printContext",
+    "xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-vfmodule.log' />\n",
+    "comments":"",
+    "outputs":1,
+    "x":507.6785125732422,
+    "y":5065.240846633911,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"26166f96.2f2dc",
+    "type":"execute",
+    "name":"call EIPAM assignIPAddress",
+    "xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"assignIPAddress\">",
+    "comments":"",
+    "outputs":1,
+    "x":933.5952911376953,
+    "y":4126.880926132202,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "3cca0436.97a71c"
+      ]
+    ]
+  },
+  {
+    "id":"3cca0436.97a71c",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>",
+    "outputs":1,
+    "x":1147.5952911376953,
+    "y":4126.880926132202,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "3c2970af.d2cab"
+      ]
+    ]
+  },
+  {
+    "id":"3c2970af.d2cab",
+    "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\t<parameter name=\"error-message\" value=\"An error occured while obtaining new address blocks from EIPAM.\" />\n",
+    "comments":"",
+    "x":1286.5952911376953,
+    "y":4126.880926132202,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"b9fd5f75.b5e8a",
+    "type":"set",
+    "name":"set eipam client-key, mask",
+    "xml":"<set>\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].client-key'\n   value='`$generate-unique-name-output.generated-name`' />\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].info'\n   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].mask'\n   value='32' />\n",
+    "comments":"",
+    "x":1995.2857284545898,
+    "y":3847.015483856201,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"7ae88bfe.f72b94",
+    "type":"for",
+    "name":"for each vm-type",
+    "xml":"<for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":533,
+    "y":4236.252558708191,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "42f93af5.a0fff4"
+      ]
+    ]
+  },
+  {
+    "id":"42f93af5.a0fff4",
+    "type":"for",
+    "name":"for each vm-network",
+    "xml":"<for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":741.6666831970215,
+    "y":4236.252884864807,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "75df27a.fd89ad8"
+      ]
+    ]
+  },
+  {
+    "id":"75df27a.fd89ad8",
+    "type":"for",
+    "name":"for each network-information-item",
+    "xml":"<for index='ip-version-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":1006.6666717529297,
+    "y":4237.919226646423,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "fd735d1.2d1f0a"
+      ]
+    ]
+  },
+  {
+    "id":"14f4699d.ce7016",
+    "type":"set",
+    "name":"set plans-index = 0",
+    "xml":"<set>\n<parameter name='plans-index' value='0' />\n",
+    "comments":"",
+    "x":539.9999923706055,
+    "y":4181.252646446228,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"2d342044.e7473",
+    "type":"for",
+    "name":"for each eipam request",
+    "xml":"<for index='ip-index' start='0' end='`$eipam-ip-block.plans[$plans-index].requests_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":1776.6666259765625,
+    "y":4209.586531639099,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "c211fc94.3e7ba"
+      ]
+    ]
+  },
+  {
+    "id":"c211fc94.3e7ba",
+    "type":"set",
+    "name":"set ip address",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].network-ips.network-ip[$ip-index]'\n  value='`$eipam-ip-block.plans[$plans-index].requests[$ip-index].ip-prefix`' />\n",
+    "comments":"",
+    "x":1988.3332633972168,
+    "y":4207.919702529907,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"bffc2bb7.1135f8",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":1576.6664581298828,
+    "y":4234.586045265198,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "2d342044.e7473",
+        "2cedc5a4.ab6bba"
+      ]
+    ]
+  },
+  {
+    "id":"2cedc5a4.ab6bba",
+    "type":"set",
+    "name":"increment plans-index",
+    "xml":"<set>\n<parameter name='plans-index' value='`$plans-index + 1`' />\n",
+    "comments":"",
+    "x":1771.66650390625,
+    "y":4256.252387046814,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"1f69056.fe181fb",
+    "type":"save",
+    "name":"update vf-module",
+    "xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vf-module\"\n   key=\"vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"vf-module-name\" value=\"`$tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name`\" />\n<parameter name=\"model-invariant-id\" value=\"`$tmp.vf-module-topology.onap-model-information.model-invariant-uuid`\" />\n<parameter name=\"model-version-id\" value=\"`$tmp.vf-module-topology.onap-model-information.model-uuid`\" />\n<parameter name=\"model-customization-id\" value=\"`$tmp.vf-module-topology.onap-model-information.model-customization-uuid`\" />\n<parameter name=\"selflink\" value=\"`$vf-module-object-path`\" />\n",
+    "comments":"",
+    "outputs":1,
+    "x":534.9999694824219,
+    "y":4381.252729415894,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "80694bdc.1daa28",
+        "7fffbd12.aef484"
+      ]
+    ]
+  },
+  {
+    "id":"753f20c5.bbede",
+    "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=\"`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`\" />\n",
+    "comments":"",
+    "x":1028.333396911621,
+    "y":4434.585899353027,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"80694bdc.1daa28",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":704.3573303222656,
+    "y":4348.204874038696,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "1dc4fe5.fac6902"
+      ]
+    ]
+  },
+  {
+    "id":"7fffbd12.aef484",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":712.9286842346191,
+    "y":4410.823854446411,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "34139b45.2d0504"
+      ]
+    ]
+  },
+  {
+    "id":"8f30d2e9.eb03c",
+    "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 vf-module in AAI\" />\n",
+    "comments":"",
+    "x":1039.3572845458984,
+    "y":4366.348430633545,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"aa1a950e.7071b8",
+    "type":"set",
+    "name":"set vf-module-object-path",
+    "xml":"<set>\n<parameter name='vf-module-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $service-data.service-topology.service-topology-identifier.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n\n",
+    "comments":"",
+    "x":561.666633605957,
+    "y":4306.252715110779,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"df808ad1.2e9658",
+    "type":"save",
+    "name":"save vf-module relationships",
+    "xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vf-module:relationship-list\"\n   key=\"vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"l3-network\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"l3-network.network-id\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id`\" />\n",
+    "comments":"",
+    "outputs":1,
+    "x":994.3094787597656,
+    "y":4509.975717544556,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "64c1b4ac.c2087c",
+        "f9da1963.2589e8"
+      ]
+    ]
+  },
+  {
+    "id":"64c1b4ac.c2087c",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1219.1428108215332,
+    "y":4470.847640037537,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "e705dca.d8b482"
+      ]
+    ]
+  },
+  {
+    "id":"f9da1963.2589e8",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1227.7142639160156,
+    "y":4548.466782569885,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "76421cc4.4bff94"
+      ]
+    ]
+  },
+  {
+    "id":"8b99afe7.e214",
+    "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 vf-module relationships in AAI\" />\n",
+    "comments":"",
+    "x":1554.1429443359375,
+    "y":4490.657536506653,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"19070089.9bb2ff",
+    "type":"for",
+    "name":"for each vm-type",
+    "xml":"<for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":535.3095092773438,
+    "y":4511.642220497131,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "4fc0dd78.6aaf84"
+      ]
+    ]
+  },
+  {
+    "id":"4fc0dd78.6aaf84",
+    "type":"for",
+    "name":"for each vm-network",
+    "xml":"<for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":745.9761867523193,
+    "y":4509.976043701172,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "df808ad1.2e9658"
+      ]
+    ]
+  },
+  {
+    "id":"a464ded4.4fcf4",
+    "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=\"`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`\" />\n",
+    "comments":"",
+    "x":1555.9762382507324,
+    "y":4565.642075538635,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"d1e2a302.f2a79",
+    "type":"set",
+    "name":"set ip-version 6, use-dhcp, and ip-count",
+    "xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-version'\n   value='6' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].use-dhcp'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-count'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-count`' />\n",
+    "comments":"",
+    "x":1974.7857208251953,
+    "y":2900.213849067688,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"3c49e4a4.13796c",
+    "type":"switchNode",
+    "name":"switch use-dhcp",
+    "xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].use-dhcp`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1640.500114440918,
+    "y":3147.356598854065,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "2413eb81.677464"
+      ]
+    ]
+  },
+  {
+    "id":"2413eb81.677464",
+    "type":"outcome",
+    "name":"N",
+    "xml":"<outcome value='N'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1810.5000267028809,
+    "y":3145.928201675415,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "97b8ba37.35fdb8"
+      ]
+    ]
+  },
+  {
+    "id":"fd735d1.2d1f0a",
+    "type":"switchNode",
+    "name":"switch use-dhcp",
+    "xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].use-dhcp`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1247.642837524414,
+    "y":4236.642521858215,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "b5446bac.ef4728"
+      ]
+    ]
+  },
+  {
+    "id":"b5446bac.ef4728",
+    "type":"outcome",
+    "name":"N",
+    "xml":"<outcome value='N'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1417.642749786377,
+    "y":4235.214124679565,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "bffc2bb7.1135f8"
+      ]
+    ]
+  },
+  {
+    "id":"a2e18bff.138e78",
+    "type":"for",
+    "name":"for each vm-type",
+    "xml":"<for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":534.309455871582,
+    "y":4641.642714500427,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "2e24847f.54fa9c"
+      ]
+    ]
+  },
+  {
+    "id":"2e24847f.54fa9c",
+    "type":"for",
+    "name":"for each vm",
+    "xml":"<for index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":729.3094863891602,
+    "y":4640.975722312927,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "2284873e.c8dbc8"
+      ]
+    ]
+  },
+  {
+    "id":"cae20484.4fdb28",
+    "type":"save",
+    "name":"save VIPR_CONFIGURATION",
+    "xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"INSERT INTO VIPR_CONFIGURATION (vnf_id, vnf_name, ecomp_service_instance_id, vm_name, cloud_region_id, cloud_owner) VALUES ( $service-data.vnfs.vnf[$vnf-index].vnf-id , $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name , $service-data.service-information.service-instance-id , $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index] , $tmp.vf-module-topology.aic-cloud-region , 'CloudOwner')\" >",
+    "comments":"",
+    "outputs":1,
+    "x":1120.976188659668,
+    "y":4663.643372535706,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "4d4ebb0a.8e16a4"
+      ]
+    ]
+  },
+  {
+    "id":"317d3d10.b08102",
+    "type":"comment",
+    "name":"Not a failure",
+    "info":"",
+    "comments":"",
+    "x":1640.976089477539,
+    "y":4663.643377304077,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"4d4ebb0a.8e16a4",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1330.976173400879,
+    "y":4663.643522262573,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "6df75797.6cb868"
+      ]
+    ]
+  },
+  {
+    "id":"6df75797.6cb868",
+    "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":1474.3096160888672,
+    "y":4663.643360137939,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"863bfcf2.a453f",
+    "type":"call",
+    "name":"call GENERIC-RESOURCE-API:generate-unique-name",
+    "xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":2084.3094940185547,
+    "y":3801.641947746277,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "41e4565d.44f878"
+      ]
+    ]
+  },
+  {
+    "id":"41e4565d.44f878",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":2371.6905364990234,
+    "y":3799.4993686676025,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "892fb77a.70d198"
+      ]
+    ]
+  },
+  {
+    "id":"df5529a.8c63fd8",
+    "type":"set",
+    "name":"set variables for generating unique name",
+    "xml":"<set>\n<parameter name='generate-unique-name-input.index-table-name' value='EIPAM_CLIENT_KEY_INDEX' />\n<parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />\n<parameter name='generate-unique-name-input.name-table-type' value='CLIENT_KEY' />\n<parameter name='generate-unique-name-input.prefix' value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code + ':' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id + ':' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version + ':'`\" />\n<parameter name='generate-unique-name-input.index-length' value='' />\n",
+    "comments":"",
+    "x":2037.6428260803223,
+    "y":3756.6421089172363,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"892fb77a.70d198",
+    "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=\"`$generate-unique-name-output.error-message`\" />\n",
+    "comments":"",
+    "x":2539.547649383545,
+    "y":3798.9278802871704,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"18e532bb.94aa6d",
+    "type":"switchNode",
+    "name":"switch ecomp-generated-naming == 'Y'",
+    "xml":"<switch test=\"$db.vfc-model.ecomp-generated-naming == 'Y'\">\n",
+    "comments":"",
+    "outputs":1,
+    "x":1014.3095626831055,
+    "y":2063.309280395508,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "87402ff0.1c134"
+      ]
+    ]
+  },
+  {
+    "id":"87402ff0.1c134",
+    "type":"outcomeFalse",
+    "name":"false",
+    "xml":"<outcome value='false'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1245.976173400879,
+    "y":2062.3089113235474,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "92edfbd1.110d28"
+      ]
+    ]
+  },
+  {
+    "id":"92edfbd1.110d28",
+    "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=\"`'ECOMP generated naming is not Y for VFC customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`\" />\n",
+    "comments":"",
+    "x":1392.6429138183594,
+    "y":2061.6423664093018,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"127d9e0e.3be312",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1504.3097381591797,
+    "y":4614.975073814392,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "d222b70d.a58a58"
+      ]
+    ]
+  },
+  {
+    "id":"4cc71899.b3ae38",
+    "type":"comment",
+    "name":"Not a failure",
+    "info":"",
+    "comments":"",
+    "x":1827.6427917480469,
+    "y":4613.308896064758,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"d222b70d.a58a58",
+    "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":1650.3096733093262,
+    "y":4614.975707054138,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"2284873e.c8dbc8",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":897.642879486084,
+    "y":4639.975566864014,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "a73701c2.3e09c",
+        "cae20484.4fdb28"
+      ]
+    ]
+  },
+  {
+    "id":"a73701c2.3e09c",
+    "type":"delete",
+    "name":"delete any pre-existing 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 = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' >",
+    "comments":"",
+    "outputs":1,
+    "x":1210.976203918457,
+    "y":4615.309706687927,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "127d9e0e.3be312"
+      ]
+    ]
+  },
+  {
+    "id":"68800eba.46188",
+    "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":2917.6429481506348,
+    "y":4251.64261007309,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "7301d98d.3c90a8"
+      ]
+    ]
+  },
+  {
+    "id":"b6002bec.a5ed88",
+    "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":2787.642910003662,
+    "y":4204.9759821891785,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"7301d98d.3c90a8",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":3222.6428565979004,
+    "y":4249.97590970993,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "4d39b53.eeb304c"
+      ]
+    ]
+  },
+  {
+    "id":"4d39b53.eeb304c",
+    "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 on rollback\" />\n",
+    "comments":"",
+    "x":3412.6428833007812,
+    "y":4249.785645008087,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"72df2a3e.4251b4",
+    "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":2852.6429176330566,
+    "y":4296.642653942108,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "77b8e820.4a3988"
+      ]
+    ]
+  },
+  {
+    "id":"77b8e820.4a3988",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":3089.309543609619,
+    "y":4296.642596721649,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "89dbd50f.fd7c38"
+      ]
+    ]
+  },
+  {
+    "id":"89dbd50f.fd7c38",
+    "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 on rollback\" />\n",
+    "comments":"",
+    "x":3279.3095703125,
+    "y":4296.452332019806,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"54652b75.46fe04",
+    "type":"comment",
+    "name":"roll back EIPAM",
+    "info":"",
+    "comments":"",
+    "x":2762.6429481506348,
+    "y":4151.642935593923,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"2bdf3ccf.849b44",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":2594.3095741271973,
+    "y":4254.97610616684,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "b6002bec.a5ed88",
+        "68800eba.46188",
+        "72df2a3e.4251b4"
+      ]
+    ]
+  },
+  {
+    "id":"1dc4fe5.fac6902",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":862.6428985595703,
+    "y":4347.975544929504,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "8f30d2e9.eb03c",
+        "b9241d04.9c139"
+      ]
+    ]
+  },
+  {
+    "id":"34139b45.2d0504",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":867.6428375244141,
+    "y":4410.641888618469,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "753f20c5.bbede",
+        "b9241d04.9c139"
+      ]
+    ]
+  },
+  {
+    "id":"e705dca.d8b482",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":1387.6428146362305,
+    "y":4470.641909599304,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "8b99afe7.e214",
+        "b9241d04.9c139"
+      ]
+    ]
+  },
+  {
+    "id":"76421cc4.4bff94",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":1382.642734527588,
+    "y":4548.641750335693,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "a464ded4.4fcf4",
+        "b9241d04.9c139"
+      ]
+    ]
+  },
+  {
+    "id":"f2ed6314.ee329",
+    "type":"set",
+    "name":"set vf-module-to-vfc-mapping length to 0",
+    "xml":"<set>\n<parameter name='db.vf-module-to-vfc-mapping_length' value='0' />\n",
+    "comments":"",
+    "x":1161.500099182129,
+    "y":1896.9280138015747,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"16f89ad6.193655",
+    "type":"set",
+    "name":"set vfc-to-network-role-mapping length to 0",
+    "xml":"<set>\n<parameter name='db.vfc-to-network-role-mapping_length' value='0' />\n",
+    "comments":"",
+    "x":1614.7857818603516,
+    "y":2375.9280395507812,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"454e063f.718d08",
+    "type":"switchNode",
+    "name":"switch plans-index > 0",
+    "xml":"<switch test='`$plans-index &gt; 0`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":550.5000762939453,
+    "y":4127.356512069702,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "7b0f806f.b0b31"
+      ]
+    ]
+  },
+  {
+    "id":"7b0f806f.b0b31",
+    "type":"outcomeTrue",
+    "name":"true",
+    "xml":"<outcome value='true'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":733.3572158813477,
+    "y":4127.356721878052,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "26166f96.2f2dc"
+      ]
+    ]
+  },
+  {
+    "id":"b9241d04.9c139",
+    "type":"switchNode",
+    "name":"switch plans-index > 0",
+    "xml":"<switch test='`$plans-index &gt; 0`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":2241.6665000915527,
+    "y":4254.261742115021,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "d4e55b39.4088b8"
+      ]
+    ]
+  },
+  {
+    "id":"d4e55b39.4088b8",
+    "type":"outcomeTrue",
+    "name":"true",
+    "xml":"<outcome value='true'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":2424.523639678955,
+    "y":4254.26195192337,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+        "2bdf3ccf.849b44"
+      ]
+    ]
+  },
+  {
+    "id":"aedcd126.656c8",
+    "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":530.6666145324707,
+    "y":4080.92791557312,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"47f3a0dd.9d94b",
+    "type":"returnFailure",
+    "name":"return failure",
+    "xml":"<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value='' />\n",
+    "comments":"",
+    "x":269,
+    "y":4838.749938964844,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"eba5daaf.aa8698",
+    "type":"comment",
+    "name":"Fix $ in value",
+    "info":"",
+    "comments":"",
+    "x":774.7499465942383,
+    "y":4844.000087738037,
+    "z":"e6090836.aef008",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"c314b843.e5cd58",
+    "type":"call",
+    "name":"call check for VNF-API-preload and copy",
+    "xml":"<call module='GENERIC-RESOURCE-API' rpc='gw-vfmodule-update' mode='sync' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":604.1668701171875,
+    "y":4950.9169921875,
+    "z":"e6090836.aef008",
+    "wires":[
+      [
+
+      ]
+    ]
+  }
+]
\ No newline at end of file
index 99dc9e7..a4bef39 100755 (executable)
@@ -1 +1,2668 @@
-[{"id":"8241aacb.08cdd8","type":"dgstart","name":"DGSTART","outputs":1,"x":115,"y":90,"z":"5083bb91.cbb384","wires":[["6555006a.2f30f"]]},{"id":"6555006a.2f30f","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":228.61902618408203,"y":130.2381134033203,"z":"5083bb91.cbb384","wires":[["eeb39a2.ad04a68"]]},{"id":"eeb39a2.ad04a68","type":"method","name":"method vnf-topology-operation-assign","xml":"<method rpc='vnf-topology-operation-assign' mode='sync'>\n","comments":"","outputs":1,"x":206.42862701416016,"y":170,"z":"5083bb91.cbb384","wires":[["6a42140c.de8f7c"]]},{"id":"34ceabd.5e7b554","type":"comment","name":"vnf-topology-operation-assign","info":"","comments":"","x":509.34485626220703,"y":37.58634376525879,"z":"5083bb91.cbb384","wires":[]},{"id":"77d708f5.8001e8","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":516.8571395874023,"y":367.19043922424316,"z":"5083bb91.cbb384","wires":[["b5d89b76.8690d8","3602a403.88e53c"]]},{"id":"b5d89b76.8690d8","type":"outcome","name":"CreateVnfInstance","xml":"<outcome value='CreateVnfInstance'>\n","comments":"","outputs":1,"x":770.5714340209961,"y":344.3333206176758,"z":"5083bb91.cbb384","wires":[["2f2a6b54.bc4ad4"]]},{"id":"3602a403.88e53c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":732.5713996887207,"y":390.0476484298706,"z":"5083bb91.cbb384","wires":[["9d45573f.a70cf8"]]},{"id":"2f2a6b54.bc4ad4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":955.4285621643066,"y":344.3333501815796,"z":"5083bb91.cbb384","wires":[[]]},{"id":"9d45573f.a70cf8","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 'assign' then request-action must be 'CreateVnfInstance'\" />\n","comments":"","x":972.5714073181152,"y":390.0476064682007,"z":"5083bb91.cbb384","wires":[]},{"id":"6a42140c.de8f7c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":145.11905670166016,"y":1701.7857055664062,"z":"5083bb91.cbb384","wires":[["77d708f5.8001e8","aa948e3b.dc6f4","70905004.44daf","db6678a0.606738","a8c695f6.0babf8","b4d76448.66e818","d6dc9daa.dab27","d09af1c.f6ecc1","59e68b20.a9f1d4","ee6fbe81.c9b8d","e15d873e.f3a578","859c6fc2.42cc1","161882c2.0524bd","e0aec656.73c228","fb26450c.7d69d8","8fe9a7cd.91ae28","92cd0a7d.aee888","b405840f.b908e8","555188e7.5bae08","c7f99789.bdf418","ed2bee8b.f19af","10b2b5e7.5b556a","b6894e3b.427f7","7eb11b41.3e53d4","76228b8.6690274","bf0a4f73.3427c","780bff7b.fe23","b4297c00.0fc6b8","74cb887a.748ed8","83344e86.aa812","a6739756.d975f8","b3f8a06f.e304d"]]},{"id":"aa948e3b.dc6f4","type":"get-resource","name":"get-resource VF_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODEL WHERE customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-model'>\n\n","comments":"","outputs":1,"x":529.1904449462891,"y":458.333309173584,"z":"5083bb91.cbb384","wires":[["fd105869.f2cd08","af0a7eb5.ee8e2"]]},{"id":"ec0cf350.8477c","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=\"`'No model found for VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`\" />\n","comments":"","x":970.6189231872559,"y":481.7617950439453,"z":"5083bb91.cbb384","wires":[]},{"id":"fd105869.f2cd08","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":729.9761428833008,"y":438.7141466140747,"z":"5083bb91.cbb384","wires":[["12a688b3.3440a7"]]},{"id":"af0a7eb5.ee8e2","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":738.5475730895996,"y":482.9998598098755,"z":"5083bb91.cbb384","wires":[["ec0cf350.8477c"]]},{"id":"12a688b3.3440a7","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 reading VF_MODEL table\" />\n","comments":"","x":969.9761238098145,"y":436.85705375671387,"z":"5083bb91.cbb384","wires":[]},{"id":"70905004.44daf","type":"switchNode","name":"switch service-data.vnfs.vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":559.2857131958008,"y":648.5714282989502,"z":"5083bb91.cbb384","wires":[["84321624.bc90b8","e6e198eb.7d5308"]]},{"id":"84321624.bc90b8","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":785.0000419616699,"y":615.7142162322998,"z":"5083bb91.cbb384","wires":[["df34205c.2330c"]]},{"id":"df34205c.2330c","type":"set","name":"set vnf-index=0","xml":"<set>\n<parameter name='vnf-index' value='0' />\n","comments":"","x":949.2857627868652,"y":614.7142944335938,"z":"5083bb91.cbb384","wires":[]},{"id":"e6e198eb.7d5308","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":786.4286041259766,"y":680.0000343322754,"z":"5083bb91.cbb384","wires":[["910f819c.16efe"]]},{"id":"e34a45aa.608f38","type":"set","name":"set vnf-index = vnf_length","xml":"<set>\n<parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\n","comments":"","x":1125.285758972168,"y":658.285722732544,"z":"5083bb91.cbb384","wires":[]},{"id":"4446fa6b.76c4b4","type":"for","name":"for each existing VNF","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":1110.7142715454102,"y":704.2856616973877,"z":"5083bb91.cbb384","wires":[["9e71792a.51a8b8"]]},{"id":"910f819c.16efe","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":922.1428642272949,"y":680,"z":"5083bb91.cbb384","wires":[["e34a45aa.608f38","4446fa6b.76c4b4"]]},{"id":"9e71792a.51a8b8","type":"switchNode","name":"switch vnf-information.vnf-id == service-data.vnfs.vnf[].vnf-id","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>\n","comments":"","outputs":1,"x":1465.0000381469727,"y":703.857141494751,"z":"5083bb91.cbb384","wires":[["ca44cc94.301af"]]},{"id":"ca44cc94.301af","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1759.2857475280762,"y":703.4286136627197,"z":"5083bb91.cbb384","wires":[["e7127b80.39ffd8"]]},{"id":"e7127b80.39ffd8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'VNF id ' + $service-data.vnfs.vnf[$idx].vnf-id\n      + ' already exists, and has order status ' + $service-data.vnfs.vnf[$idx].vnf-data.vnf-level-oper-status.order-status`\" />\n","comments":"","x":1907.8571548461914,"y":703.4285736083984,"z":"5083bb91.cbb384","wires":[]},{"id":"2ca7efa9.3b66e","type":"comment","name":"make sure this VNF doesn't exist already","info":"","comments":"","x":1452.1427688598633,"y":661.4285717010498,"z":"5083bb91.cbb384","wires":[]},{"id":"db6678a0.606738","type":"set","name":"set vnf-topology data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id'\n value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-type'\n value='`$vnf-topology-operation-input.vnf-information.vnf-type`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-type'\n value='`$db.vf-model.nf-type`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role'\n value='`$db.vf-model.nf-role`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-function'\n value='`$db.vf-model.nf-function`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-code'\n value='`$db.vf-model.nf-code`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.tenant'\n value='`$vnf-topology-operation-input.vnf-request-input.tenant`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-cloud-region'\n value='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`' />\n \n","comments":"","x":514.9999694824219,"y":810.238115310669,"z":"5083bb91.cbb384","wires":[]},{"id":"a8c695f6.0babf8","type":"switchNode","name":"switch input vnf-name","xml":"<switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-name`'>\n","comments":"","outputs":1,"x":521.4285507202148,"y":1052.8571615219116,"z":"5083bb91.cbb384","wires":[["487e7f2b.8ad47","68310aa2.d2de84"]]},{"id":"487e7f2b.8ad47","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":789.6427726745605,"y":975.8333864212036,"z":"5083bb91.cbb384","wires":[["c340356a.783268"]]},{"id":"429caac2.6d56a4","type":"switchNode","name":"switch ecomp-generated-naming","xml":"<switch test='`$db.vf-model.ecomp-generated-naming`'>\n","comments":"","outputs":1,"x":1206.071662902832,"y":882.5002059936523,"z":"5083bb91.cbb384","wires":[["2e7aef6.82a371","9b8210cc.7778e","8ab384c2.20be78"]]},{"id":"c340356a.783268","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":935.3572692871094,"y":975.833498954773,"z":"5083bb91.cbb384","wires":[["9fd7e5b5.625518","ed228289.17a95","429caac2.6d56a4"]]},{"id":"9b8210cc.7778e","type":"outcome","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1455.357322692871,"y":884.404914855957,"z":"5083bb91.cbb384","wires":[["1d994a90.016b85"]]},{"id":"1d994a90.016b85","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=\"No vnf-name was received but ecomp-generated-naming is not Y\" />\n","comments":"","x":1609.64310836792,"y":902.9763593673706,"z":"5083bb91.cbb384","wires":[]},{"id":"2e7aef6.82a371","type":"outcome","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1455.3572883605957,"y":840.1192359924316,"z":"5083bb91.cbb384","wires":[["45a6a073.f42c1"]]},{"id":"8ab384c2.20be78","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1455.357250213623,"y":930.119234085083,"z":"5083bb91.cbb384","wires":[["1d994a90.016b85"]]},{"id":"45a6a073.f42c1","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1592.5002326965332,"y":840.1192359924316,"z":"5083bb91.cbb384","wires":[[]]},{"id":"68310aa2.d2de84","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":792.2144546508789,"y":1122.119125366211,"z":"5083bb91.cbb384","wires":[["e79898f0.209a58"]]},{"id":"9ffe9f0c.29d4f","type":"set","name":"set tmp.vnf-name","xml":"<set>\n<parameter name='tmp.vnf-name' value=\"`$vnf-topology-operation-input.vnf-request-input.vnf-name`\" />\n","comments":"","x":1751.0715306599936,"y":1189.5476417541504,"z":"5083bb91.cbb384","wires":[]},{"id":"9fd7e5b5.625518","type":"call","name":"call GENERIC-RESOURCE-API:generate-unique-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n","comments":"","outputs":1,"x":1274.4763259887695,"y":1048.8333959579468,"z":"5083bb91.cbb384","wires":[["d8e6a254.be4f7","6860527.6c3eeac"]]},{"id":"d8e6a254.be4f7","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1570.1906140645347,"y":1021.6906585693359,"z":"5083bb91.cbb384","wires":[["6bce88ea.dd4c08"]]},{"id":"6860527.6c3eeac","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1573.5239639282227,"y":1073.3573017120361,"z":"5083bb91.cbb384","wires":[["ec3565fb.6ebb98"]]},{"id":"ed228289.17a95","type":"set","name":"set variables for generating unique name","xml":"<set>\n<parameter name='generate-unique-name-input.index-table-name' value='VNF_NAME_INDEX' />\n<parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />\n<parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />\n<parameter name='generate-unique-name-input.prefix' value=\"`'z' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + $db.vf-model.nf-code`\" />\n<parameter name='generate-unique-name-input.index-length' value='2' />\n","comments":"","x":1231.1430130004883,"y":997.1668043136597,"z":"5083bb91.cbb384","wires":[]},{"id":"ec3565fb.6ebb98","type":"set","name":"set tmp.vnf-name to generated name","xml":"<set>\n<parameter name='tmp.vnf-name' value='`$generate-unique-name-output.generated-name`' />\n","comments":"","x":1814.7143491109214,"y":1073.8333930969238,"z":"5083bb91.cbb384","wires":[]},{"id":"6bce88ea.dd4c08","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=\"`$generate-unique-name-output.error-message`\" />\n","comments":"","x":1738.0477269490561,"y":1021.1191701889038,"z":"5083bb91.cbb384","wires":[]},{"id":"e79898f0.209a58","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":940.1429824829102,"y":1120.7858123779297,"z":"5083bb91.cbb384","wires":[["1af0159f.6f1e5a","5ec1ca2.9ad0934"]]},{"id":"5ec1ca2.9ad0934","type":"call","name":"call GENERIC-RESOURCE-API:generate-unique-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n","comments":"","outputs":1,"x":1270.1429824829102,"y":1168.7858123779297,"z":"5083bb91.cbb384","wires":[["2aa25520.67d72a","37668d9a.952f52"]]},{"id":"2aa25520.67d72a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1568.7143987019858,"y":1138.785837173462,"z":"5083bb91.cbb384","wires":[["ab10d68f.515008"]]},{"id":"37668d9a.952f52","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1572.0477485656738,"y":1190.452480316162,"z":"5083bb91.cbb384","wires":[["9ffe9f0c.29d4f"]]},{"id":"1af0159f.6f1e5a","type":"set","name":"set variables for generating unique name","xml":"<set>\n<parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />\n<parameter name='generate-unique-name-input.supplied-name' value='`$vnf-topology-operation-input.vnf-request-input.vnf-name`' />\n","comments":"","x":1226.8096542358398,"y":1117.1191844940186,"z":"5083bb91.cbb384","wires":[]},{"id":"ab10d68f.515008","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=\"`$generate-unique-name-output.error-message`\" />\n","comments":"","x":1736.5715115865073,"y":1138.2143487930298,"z":"5083bb91.cbb384","wires":[]},{"id":"b4d76448.66e818","type":"get-resource","name":"get-resource cloud region","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"cloud-region\" \n\t\tkey=\"cloud-region.cloud-owner = 'CloudOwner' AND \n\t\t     cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND\n\t\t     depth='0'\"\n        pfx='aai.cloud-region' local-only='false' >\n\n","comments":"","outputs":1,"x":543.5714492797852,"y":1730.8569984436035,"z":"5083bb91.cbb384","wires":[["63136ca0.2aa6a4","38b39166.261e2e"]]},{"id":"38b39166.261e2e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":768.8176422119141,"y":1749.00785446167,"z":"5083bb91.cbb384","wires":[["c8785277.db74c"]]},{"id":"c8785277.db74c","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 retrieving cloud region from AAI\" />\n","comments":"","x":943.8176155090332,"y":1749.007890701294,"z":"5083bb91.cbb384","wires":[]},{"id":"63136ca0.2aa6a4","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":777.7462387084961,"y":1707.2935876846313,"z":"5083bb91.cbb384","wires":[["734e45d0.a54dbc"]]},{"id":"734e45d0.a54dbc","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=\"Cloud region not found in AAI\" />\n","comments":"","x":944.095516204834,"y":1706.5991649627686,"z":"5083bb91.cbb384","wires":[]},{"id":"d6dc9daa.dab27","type":"get-resource","name":"get-resource VF_TO_NETWORK_ROLE_MAPPING","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_TO_NETWORK_ROLE_MAPPING WHERE vf_customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-network-role-mapping[]'>\n\n","comments":"","outputs":1,"x":608.8095321655273,"y":2041.9045181274414,"z":"5083bb91.cbb384","wires":[["fb8ff7f3.9c6578","21c9fd46.cdb8b2"]]},{"id":"2a8c3297.b95dbe","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=\"`'No entries found in VF_TO_NETWORK_ROLE_MAPPING for VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`\" />\n","comments":"","x":1344.5237121582031,"y":2059.618698120117,"z":"5083bb91.cbb384","wires":[]},{"id":"fb8ff7f3.9c6578","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":904.5952033996582,"y":2020.6186828613281,"z":"5083bb91.cbb384","wires":[["3531361a.0233ba"]]},{"id":"21c9fd46.cdb8b2","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":913.166633605957,"y":2064.904396057129,"z":"5083bb91.cbb384","wires":[["bf344dbf.57e7d"]]},{"id":"3531361a.0233ba","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 reading VF_TO_NETWORK_ROLE_MAPPING table\" />\n","comments":"","x":1079.5951843261719,"y":2020.4283332824707,"z":"5083bb91.cbb384","wires":[]},{"id":"e1fffb5d.139e58","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":709.5715866088867,"y":2490.71391582489,"z":"5083bb91.cbb384","wires":[["611b38f2.51f0b8","37408b0a.59aa74","8956c374.edb43","fbd0fea8.b0301","dd0ec04d.0901","c56cd3a7.e3e8d","8d1a1df.f9acde","1905c415.59545c"]]},{"id":"8956c374.edb43","type":"get-resource","name":"get-resource l3-network","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"l3-networks\" \n\t\tkey=\"l3-network.network-role = $db.vf-network-role-mapping[$role-index].network-role\"\n        pfx='aai.l3-network' local-only='false'\n>\n","comments":"","outputs":1,"x":942.4286041259766,"y":2169.999779701233,"z":"5083bb91.cbb384","wires":[["c79e82cf.08146","59d32d05.f01e74"]]},{"id":"59d32d05.f01e74","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1146.476318359375,"y":2192.1426191329956,"z":"5083bb91.cbb384","wires":[["7d74e0ae.ec3dc"]]},{"id":"7d74e0ae.ec3dc","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 retrieving l3-network from AAI\" />\n","comments":"","x":1321.4762916564941,"y":2192.1426553726196,"z":"5083bb91.cbb384","wires":[]},{"id":"c79e82cf.08146","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1155.404914855957,"y":2150.428352355957,"z":"5083bb91.cbb384","wires":[["a3dc9d39.f743"]]},{"id":"a3dc9d39.f743","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=\"`'No active l3-network found in AAI with cloud_region_id '\n          + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + ' and network_role '\n          + $db.vf-network-role-mapping[$network-index].network-role`\" />\n","comments":"","x":1321.754192352295,"y":2149.7339296340942,"z":"5083bb91.cbb384","wires":[]},{"id":"611b38f2.51f0b8","type":"set","name":"set vnf-network data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-role'\n    value='`$db.vf-network-role-mapping[$role-index].network-role`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-name'\n    value='`$aai.l3-network.l3-network[$db-network-index].network-name`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].neutron-id'\n    value='`$aai.l3-network.l3-network[$db-network-index].neutron-network-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-id'\n    value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].contrail-network-fqdn'\n    value='`$aai.l3-network.l3-network[$db-network-index].contrail-network-fqdn`' />\n","comments":"","x":931.6191940307617,"y":2657.0000228881836,"z":"5083bb91.cbb384","wires":[]},{"id":"e15d873e.f3a578","type":"for","name":"for each cloud-region availability zone","xml":"<for index='idx' start='0' end='`$aai.az.availability-zone_length`' >\n","comments":"","outputs":1,"x":543.3335571289062,"y":3071.618803024292,"z":"5083bb91.cbb384","wires":[["e9252ccb.d2705"]]},{"id":"b1db1f98.d448e","type":"set","name":"set availability-zone","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[$idx]'\n  value='`$aai.az.availability-zone[$idx].availability-zone-name`' />\n","comments":"","x":1005.0002403259277,"y":3040.952217102051,"z":"5083bb91.cbb384","wires":[]},{"id":"859c6fc2.42cc1","type":"set","name":"set vnf-parameters-data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.'\n  value='vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.' />\n","comments":"","x":502.9524841308594,"y":2921.5711631774902,"z":"5083bb91.cbb384","wires":[]},{"id":"15c078e.5c6e387","type":"save","name":"save generic-vnf l3-network relationships","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"generic-vnf:relationship-list\"\n   key=\"generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"l3-network\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"l3-network.network-id\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-nw-index].network-id`\" />\n","comments":"","outputs":1,"x":969.5240173339844,"y":3215.381015777588,"z":"5083bb91.cbb384","wires":[["8c9a1ab5.ce5b08","e70903d4.4bb15"]]},{"id":"fb26450c.7d69d8","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":466.0953674316406,"y":3602.1901140213013,"z":"5083bb91.cbb384","wires":[]},{"id":"e0aec656.73c228","type":"set","name":"set vnf-level-oper-status to PendingCreate","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\n","comments":"","x":555.9088134765625,"y":3504.527594566345,"z":"5083bb91.cbb384","wires":[]},{"id":"59e68b20.a9f1d4","type":"for","name":"for each network-role","xml":"<for index='role-index' start='0' end='`$db.vf-network-role-mapping_length`'>","comments":"","outputs":1,"x":492.90489196777344,"y":2490.7141189575195,"z":"5083bb91.cbb384","wires":[["e1fffb5d.139e58"]]},{"id":"d09af1c.f6ecc1","type":"set","name":"set network-index = 0","xml":"<set>\n<parameter name='network-index' value='0' />\n","comments":"","x":511.2380676269531,"y":2108.8094577789307,"z":"5083bb91.cbb384","wires":[]},{"id":"37408b0a.59aa74","type":"set","name":"increment network-index","xml":"<set>\n<parameter name='network-index' value='`$network-index + 1`' />\n","comments":"","x":941.9525146484375,"y":2794.6189250946045,"z":"5083bb91.cbb384","wires":[]},{"id":"ee6fbe81.c9b8d","type":"set","name":"set vnf-network_length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'\n  value='`$network-index`' />\n","comments":"","x":501.8095703125,"y":2871.571207046509,"z":"5083bb91.cbb384","wires":[]},{"id":"161882c2.0524bd","type":"set","name":"copy input data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\n\n","comments":"","x":471.4286422729492,"y":3452.1904258728027,"z":"5083bb91.cbb384","wires":[]},{"id":"8fe9a7cd.91ae28","type":"for","name":"for each vnf-network","xml":"<for index='vnf-nw-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\n","comments":"","outputs":1,"x":492.52392578125,"y":3214.380931854248,"z":"5083bb91.cbb384","wires":[["e79df5e2.3bfb98"]]},{"id":"e79df5e2.3bfb98","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":696.1905670166016,"y":3214.380892753601,"z":"5083bb91.cbb384","wires":[["15c078e.5c6e387"]]},{"id":"92cd0a7d.aee888","type":"set","name":"set new vnf_length","xml":"<set>\n<parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />\n","comments":"","x":507.0952491760254,"y":764.7619781494141,"z":"5083bb91.cbb384","wires":[]},{"id":"b405840f.b908e8","type":"for","name":"for each cloud-region relationship","xml":"<for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\n","comments":"","outputs":1,"x":556.4285736083984,"y":1818.0951700210571,"z":"5083bb91.cbb384","wires":[["c203a95d.692928"]]},{"id":"c203a95d.692928","type":"switchNode","name":"switch related-to","xml":"<switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\n","comments":"","outputs":1,"x":804.1071166992188,"y":1817.8450994491577,"z":"5083bb91.cbb384","wires":[["f1cc745c.42f608"]]},{"id":"f1cc745c.42f608","type":"outcome","name":"complex","xml":"<outcome value='complex'>\n","comments":"","outputs":1,"x":973.5714378356934,"y":1817.2379217147827,"z":"5083bb91.cbb384","wires":[["7ed2b7fb.548078"]]},{"id":"d747b0d7.af821","type":"set","name":"set aic-clli","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli'\n  value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\n","comments":"","x":1294.2857360839844,"y":1816.9045791625977,"z":"5083bb91.cbb384","wires":[]},{"id":"555188e7.5bae08","type":"switchNode","name":"switch aic-clli","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli`'>\n","comments":"","outputs":1,"x":492.3333511352539,"y":1974.0474872589111,"z":"5083bb91.cbb384","wires":[["20f33836.314ae8"]]},{"id":"20f33836.314ae8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":640.4761848449707,"y":1974.0474700927734,"z":"5083bb91.cbb384","wires":[["dd195a67.9e4528"]]},{"id":"dd195a67.9e4528","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 aic-clli in AAI for aic-cloud-region ' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`\" />\n","comments":"","x":787.6190452575684,"y":1973.6189041137695,"z":"5083bb91.cbb384","wires":[]},{"id":"3b4ed31b.2aa0ec","type":"set","name":"set from DB","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\n  value='`$db.vf-model.invariant-uuid`' />\n","comments":"","x":915.9287452697754,"y":1290.0475587844849,"z":"5083bb91.cbb384","wires":[]},{"id":"84e4b6d4.cddc08","type":"for","name":"for each l3-network","xml":"<for index='db-network-index' start='0' end='`$aai.l3-network.l3-network_length`' >\n","comments":"","outputs":1,"x":1049.8811492919922,"y":2413.571388244629,"z":"5083bb91.cbb384","wires":[["6477f1c9.11cbd"]]},{"id":"6477f1c9.11cbd","type":"switchNode","name":"switch orchestration-status","xml":"<switch test='`$aai.l3-network.l3-network[$db-network-index].orchestration-status`'>\n","comments":"","outputs":1,"x":1278.452350616455,"y":2412.142815589905,"z":"5083bb91.cbb384","wires":[["2d02e762.92bf68","a48ca1a4.9260d","b6321bf9.9a57b8","a22ac71b.7c92f8","f6d8dcbb.95d7e"]]},{"id":"2d02e762.92bf68","type":"outcome","name":"Pending Delete","xml":"<outcome value='Pending Delete'>\n","comments":"","outputs":1,"x":1515.1192626953125,"y":2457.8095235824585,"z":"5083bb91.cbb384","wires":[["a5e2243e.79eec8"]]},{"id":"a48ca1a4.9260d","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1487.9764022827148,"y":2508.809504508972,"z":"5083bb91.cbb384","wires":[["6842d9dd.26f8c8"]]},{"id":"1bfffb3d.8635e5","type":"switchNode","name":"switch related-to","xml":"<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].related-to`'>\n","comments":"","outputs":1,"x":1853.6907539367676,"y":2507.3808450698853,"z":"5083bb91.cbb384","wires":[["105409f.8c324f6"]]},{"id":"6842d9dd.26f8c8","type":"for","name":"for each relationship","xml":"<for silentFailure='true' index='db-rel-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship_length`' >\n","comments":"","outputs":1,"x":1657.9763145446777,"y":2508.3808813095093,"z":"5083bb91.cbb384","wires":[["1bfffb3d.8635e5"]]},{"id":"105409f.8c324f6","type":"outcome","name":"cloud-region","xml":"<outcome value='cloud-region'>\n","comments":"","outputs":1,"x":2027.9763946533203,"y":2506.9522914886475,"z":"5083bb91.cbb384","wires":[["8c0fac20.7b6d4"]]},{"id":"8c0fac20.7b6d4","type":"for","name":"for each relationship data","xml":"<for silentFailure='true' index='db-data-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data_length`' >\n","comments":"","outputs":1,"x":2225.119094848633,"y":2507.380759239197,"z":"5083bb91.cbb384","wires":[["23b4c525.ad999a"]]},{"id":"23b4c525.ad999a","type":"switchNode","name":"switch relationship-key","xml":"<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>\n","comments":"","outputs":1,"x":2456.547695159912,"y":2506.9521341323853,"z":"5083bb91.cbb384","wires":[["ad4b7c5c.5ff53"]]},{"id":"ad4b7c5c.5ff53","type":"outcome","name":"cloud-region.cloud-region-id","xml":"<outcome value='cloud-region.cloud-region-id'>\n","comments":"","outputs":1,"x":2697.9762268066406,"y":2506.95223903656,"z":"5083bb91.cbb384","wires":[["8b527005.34699"]]},{"id":"8b527005.34699","type":"switchNode","name":"switch relationship-value == cloud-region-id","xml":"<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-value == $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`'>\n","comments":"","outputs":1,"x":3002.2621459960938,"y":2506.8092947006226,"z":"5083bb91.cbb384","wires":[["1ee4a77a.9542e9"]]},{"id":"1ee4a77a.9542e9","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3242.262176513672,"y":2506.9522399902344,"z":"5083bb91.cbb384","wires":[["ea9b8e4a.f0362"]]},{"id":"fbd0fea8.b0301","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":888.0953330993652,"y":2481.4284858703613,"z":"5083bb91.cbb384","wires":[["84e4b6d4.cddc08","640fc2e9.3ee98c"]]},{"id":"640fc2e9.3ee98c","type":"returnSuccess","name":"CATCH BREAK","xml":"<return status='success'>\n\n","comments":"","x":1039.4287414550781,"y":2554.7617197036743,"z":"5083bb91.cbb384","wires":[]},{"id":"c702789.b589088","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>\n","comments":"","x":3543.095157623291,"y":2524.761643409729,"z":"5083bb91.cbb384","wires":[]},{"id":"dd0ec04d.0901","type":"set","name":"set l3-network-id = -1","xml":"<set>\n<parameter name='l3-network-id' value='-1' />\n","comments":"","x":932.4287033081055,"y":2284.7616996765137,"z":"5083bb91.cbb384","wires":[]},{"id":"ea9b8e4a.f0362","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3388.0951538085938,"y":2506.4283485412598,"z":"5083bb91.cbb384","wires":[["d78ad9d8.5d8c78","c702789.b589088"]]},{"id":"d78ad9d8.5d8c78","type":"set","name":"set l3-network-id = this l3-network","xml":"<set>\n<parameter name='l3-network-id' value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\n","comments":"","x":3624.7618255615234,"y":2481.4283475875854,"z":"5083bb91.cbb384","wires":[]},{"id":"c56cd3a7.e3e8d","type":"switchNode","name":"switch l3-network-id","xml":"<switch test='`$l3-network-id`'>\n","comments":"","outputs":1,"x":929.4286270141602,"y":2608.428741455078,"z":"5083bb91.cbb384","wires":[["36280e92.ad7cb2"]]},{"id":"36280e92.ad7cb2","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":1099.4285774230957,"y":2608.428497314453,"z":"5083bb91.cbb384","wires":[["3be921aa.df808e"]]},{"id":"3be921aa.df808e","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 l3-network in AAI for network role ' + $db.vf-network-role-mapping[$role-index].network-role`\" />\n","comments":"","x":1247.7619400024414,"y":2608.4286346435547,"z":"5083bb91.cbb384","wires":[]},{"id":"c7f99789.bdf418","type":"switchNode","name":"switch input model-invariant-uuid","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`'>\n","comments":"","outputs":1,"x":559.7858200073242,"y":1312.8720026016235,"z":"5083bb91.cbb384","wires":[["47b49582.d69f7c","c9c231d.a31acd"]]},{"id":"47b49582.d69f7c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":765.4524917602539,"y":1290.0149660110474,"z":"5083bb91.cbb384","wires":[["3b4ed31b.2aa0ec"]]},{"id":"c9c231d.a31acd","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":766.8810882568359,"y":1334.3005571365356,"z":"5083bb91.cbb384","wires":[["d6283c1d.df5e5"]]},{"id":"d6283c1d.df5e5","type":"set","name":"set from input","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />\n","comments":"","x":921.1668243408203,"y":1333.7291293144226,"z":"5083bb91.cbb384","wires":[]},{"id":"1204474.d3b3db9","type":"set","name":"set from DB","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\n  value='`$db.vf-model.uuid`' />\n","comments":"","x":916.8810157775879,"y":1378.5862350463867,"z":"5083bb91.cbb384","wires":[]},{"id":"ed2bee8b.f19af","type":"switchNode","name":"switch input model-uuid","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`'>\n","comments":"","outputs":1,"x":532.4048385620117,"y":1401.4107398986816,"z":"5083bb91.cbb384","wires":[["2399ff70.6432c","2e93ac0a.a66e94"]]},{"id":"2399ff70.6432c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":766.4048118591309,"y":1378.553671836853,"z":"5083bb91.cbb384","wires":[["1204474.d3b3db9"]]},{"id":"2e93ac0a.a66e94","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":767.8334083557129,"y":1422.8392629623413,"z":"5083bb91.cbb384","wires":[["79226175.2b687"]]},{"id":"79226175.2b687","type":"set","name":"set from input","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />\n","comments":"","x":922.1191444396973,"y":1422.2678351402283,"z":"5083bb91.cbb384","wires":[]},{"id":"83a56bac.491658","type":"set","name":"set from DB","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\n  value='`$db.vf-model.version`' />\n","comments":"","x":914.0239486694336,"y":1467.4434423446655,"z":"5083bb91.cbb384","wires":[]},{"id":"10b2b5e7.5b556a","type":"switchNode","name":"switch input model-version","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`'>\n","comments":"","outputs":1,"x":540.5477104187012,"y":1490.2678871154785,"z":"5083bb91.cbb384","wires":[["2f9db03f.c491c","1978d9cb.d98de6"]]},{"id":"2f9db03f.c491c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":763.5476951599121,"y":1467.410849571228,"z":"5083bb91.cbb384","wires":[["83a56bac.491658"]]},{"id":"1978d9cb.d98de6","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":764.9762916564941,"y":1511.6964406967163,"z":"5083bb91.cbb384","wires":[["7d30ca25.4b3c44"]]},{"id":"7d30ca25.4b3c44","type":"set","name":"set from input","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`' />\n","comments":"","x":919.2620277404785,"y":1511.1250128746033,"z":"5083bb91.cbb384","wires":[]},{"id":"30711380.8e3a9c","type":"set","name":"set from DB","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\n  value='`$db.vf-model.name`' />\n","comments":"","x":914.0239486694336,"y":1554.5862646102905,"z":"5083bb91.cbb384","wires":[]},{"id":"b6894e3b.427f7","type":"switchNode","name":"switch input model-name","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`'>\n","comments":"","outputs":1,"x":535.5477104187012,"y":1577.4107093811035,"z":"5083bb91.cbb384","wires":[["d278d695.c74378","48c0ba5a.c19a64"]]},{"id":"d278d695.c74378","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":763.5476951599121,"y":1554.553671836853,"z":"5083bb91.cbb384","wires":[["30711380.8e3a9c"]]},{"id":"48c0ba5a.c19a64","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":764.9762916564941,"y":1598.8392629623413,"z":"5083bb91.cbb384","wires":[["a7528ae.1a9da78"]]},{"id":"a7528ae.1a9da78","type":"set","name":"set from input","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`' />\n","comments":"","x":919.2620277404785,"y":1598.2678351402283,"z":"5083bb91.cbb384","wires":[]},{"id":"a5e2243e.79eec8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1668.3333549499512,"y":2458.586400985718,"z":"5083bb91.cbb384","wires":[[]]},{"id":"f6d8dcbb.95d7e","type":"outcome","name":"PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":1512.9999961853027,"y":2413.5863151550293,"z":"5083bb91.cbb384","wires":[["9951c6e.9aa9138"]]},{"id":"9951c6e.9aa9138","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1668.2140884399414,"y":2414.3631925582886,"z":"5083bb91.cbb384","wires":[[]]},{"id":"a22ac71b.7c92f8","type":"outcome","name":"Pending Create","xml":"<outcome value='Pending Create'>\n","comments":"","outputs":1,"x":1514.9999961853027,"y":2370.2528190612793,"z":"5083bb91.cbb384","wires":[["6fce3bd5.f4e834"]]},{"id":"6fce3bd5.f4e834","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1668.2140884399414,"y":2371.0296964645386,"z":"5083bb91.cbb384","wires":[[]]},{"id":"b6321bf9.9a57b8","type":"outcome","name":"PendingCreate","xml":"<outcome value='PendingCreate'>\n","comments":"","outputs":1,"x":1514.9999961853027,"y":2326.9195671081543,"z":"5083bb91.cbb384","wires":[["b2172720.159c18"]]},{"id":"b2172720.159c18","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1668.2140884399414,"y":2327.6964445114136,"z":"5083bb91.cbb384","wires":[[]]},{"id":"8d1a1df.f9acde","type":"for","name":"for each A&AI subnet","xml":"<for index='subnet-index' start='0' end='`$aai.l3-network.l3-network[0].subnets.subnet_length`' >\n","comments":"","outputs":1,"x":931.6667633056641,"y":2701.919626235962,"z":"5083bb91.cbb384","wires":[["38d73ded.fd6fe2"]]},{"id":"38d73ded.fd6fe2","type":"set","name":"set subnet data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].ip-version'\n   value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].ip-version`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-id'\n   value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-id`' />\n","comments":"","x":1129.9999389648438,"y":2700.2532052993774,"z":"5083bb91.cbb384","wires":[]},{"id":"1905c415.59545c","type":"set","name":"set subnet_length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data_length'\n   value='`$aai.l3-network.l3-network[0].subnets.subnet_length`' />\n","comments":"","x":920.3333282470703,"y":2746.919708251953,"z":"5083bb91.cbb384","wires":[]},{"id":"7eb11b41.3e53d4","type":"set","name":"set availability-zones.max-count and length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.max-count'\n   value='`$db.vf-model.avail-zone-max-count`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone_length'\n   value='`$aai.az.availability-zone_length`' />\n","comments":"","x":563.0000610351562,"y":3159.6342582702637,"z":"5083bb91.cbb384","wires":[]},{"id":"76228b8.6690274","type":"set","name":"set vnf-name","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name'\n   value='`$tmp.vnf-name`' />\n","comments":"","x":496.66663360595703,"y":1246.9197664260864,"z":"5083bb91.cbb384","wires":[]},{"id":"bf0a4f73.3427c","type":"save","name":"update generic-vnf","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"generic-vnf\"\n   key=\"generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"vnf-name\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name`\" />\n<parameter name=\"prov-status\" value=\"PREPROV\" />\n<parameter name=\"operational-status\" value=\"out-of-service-path\" />\n<parameter name=\"equipment-role\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`\" />\n<parameter name=\"model-invariant-id\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid`\" />\n<parameter name=\"model-version-id\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid`\" />\n<parameter name=\"model-customization-id\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`\" />\n<parameter name=\"selflink\" value=\"`$vnf-object-path`\" />\n","comments":"","outputs":1,"x":483.3333282470703,"y":3369.300033569336,"z":"5083bb91.cbb384","wires":[["69da107b.fb799","7a401d78.a37844"]]},{"id":"780bff7b.fe23","type":"set","name":"set vnf-object-path","xml":"<set>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vnf-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology'`\"/>\n\n","comments":"","x":483.33336639404297,"y":3299.30051612854,"z":"5083bb91.cbb384","wires":[]},{"id":"b4297c00.0fc6b8","type":"set","name":"set vnf-id","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id'\n   value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n","comments":"","x":484.9999771118164,"y":1198.5863094329834,"z":"5083bb91.cbb384","wires":[]},{"id":"74cb887a.748ed8","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-viprend.log' />\n","comments":"","outputs":1,"x":461.00009536743164,"y":3550.967363357544,"z":"5083bb91.cbb384","wires":[[]]},{"id":"9b1367c3.3e1fd8","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=\"`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n","comments":"","x":1406.666805267334,"y":3235.9671211242676,"z":"5083bb91.cbb384","wires":[]},{"id":"8c9a1ab5.ce5b08","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1219.3573722839355,"y":3192.919590950012,"z":"5083bb91.cbb384","wires":[["3dcbea4.1096316"]]},{"id":"e70903d4.4bb15","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1227.9288024902344,"y":3237.205304145813,"z":"5083bb91.cbb384","wires":[["9b1367c3.3e1fd8"]]},{"id":"3dcbea4.1096316","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 generic-vnf in AAI\" />\n","comments":"","x":1409.3573989868164,"y":3192.729326248169,"z":"5083bb91.cbb384","wires":[]},{"id":"31bdedf0.2bef82","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=\"`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n","comments":"","x":886.6667442321777,"y":3390.967043876648,"z":"5083bb91.cbb384","wires":[]},{"id":"69da107b.fb799","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":699.3573112487793,"y":3347.9195137023926,"z":"5083bb91.cbb384","wires":[["b5e15cb2.cab62"]]},{"id":"7a401d78.a37844","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":707.9287414550781,"y":3392.2052268981934,"z":"5083bb91.cbb384","wires":[["31bdedf0.2bef82"]]},{"id":"b5e15cb2.cab62","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 selflink in generic-vnf in AAI\" />\n","comments":"","x":889.3573379516602,"y":3347.7292490005493,"z":"5083bb91.cbb384","wires":[]},{"id":"83344e86.aa812","type":"set","name":"set model-customization-uuid","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\n","comments":"","x":548.3332977294922,"y":1650.2529134750366,"z":"5083bb91.cbb384","wires":[]},{"id":"f66871af.e5692","type":"execute","name":"split related-link","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='aai-uid-split' />\n   <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\n   <parameter name='regex' value='/' />\n","comments":"","outputs":1,"x":1313.6665954589844,"y":1771.6664972305298,"z":"5083bb91.cbb384","wires":[[]]},{"id":"7ed2b7fb.548078","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1133.3332977294922,"y":1818.333285331726,"z":"5083bb91.cbb384","wires":[["f66871af.e5692","d747b0d7.af821","399a4263.6a360e"]]},{"id":"399a4263.6a360e","type":"break","name":"break","xml":"<break>\n","comments":"","x":1283.3332595825195,"y":1861.666582107544,"z":"5083bb91.cbb384","wires":[]},{"id":"e9252ccb.d2705","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":795,"y":3070.7143869400024,"z":"5083bb91.cbb384","wires":[["b1db1f98.d448e","d45ddc40.768c2"]]},{"id":"d45ddc40.768c2","type":"save","name":"save generic-vnf availability-zone relationship","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"generic-vnf:relationship-list\"\n   key=\"generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"availability-zone\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"cloud-region.cloud-owner\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"CloudOwner\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-key\" value=\"cloud-region.cloud-region-id\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-value\" value=\"`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-key\" value=\"availability-zone.availability-zone-name\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-value\" value=\"`$aai.az.availability-zone[$idx].availability-zone-name`\" />\n","comments":"","outputs":1,"x":1086.9048156738281,"y":3094.0478343963623,"z":"5083bb91.cbb384","wires":[["a2d3128e.390bf","8b3808e2.f32948"]]},{"id":"a97c0980.2d72a8","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=\"`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n","comments":"","x":1540.47607421875,"y":3117.9671936035156,"z":"5083bb91.cbb384","wires":[]},{"id":"a2d3128e.390bf","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1353.1666412353516,"y":3074.9196634292603,"z":"5083bb91.cbb384","wires":[["e7b70608.415b38"]]},{"id":"8b3808e2.f32948","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1361.7380714416504,"y":3119.205376625061,"z":"5083bb91.cbb384","wires":[["a97c0980.2d72a8"]]},{"id":"e7b70608.415b38","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 generic-vnf in AAI\" />\n","comments":"","x":1543.1666679382324,"y":3074.729398727417,"z":"5083bb91.cbb384","wires":[]},{"id":"bf344dbf.57e7d","type":"set","name":"set mapping rows to 0","xml":"<set>\n<parameter name='db.vf-network-role-mapping_length' value='0' />\n","comments":"","x":1107.1427688598633,"y":2064.52388381958,"z":"5083bb91.cbb384","wires":[]},{"id":"a6739756.d975f8","type":"switchNode","name":"switch AAI availability-zone_length","xml":"<switch test='`$aai.az.availability-zone_length`'>\n","comments":"","outputs":1,"x":535.7142868041992,"y":2974.523973464966,"z":"5083bb91.cbb384","wires":[["2876e97f.ae3916"]]},{"id":"2876e97f.ae3916","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":754.2857055664062,"y":2974.0953826904297,"z":"5083bb91.cbb384","wires":[["32c7e4de.36637c"]]},{"id":"ea591bcc.24cec8","type":"set","name":"set availability-zone_length to 0","xml":"<set>\n<parameter name='aai.az.availability-zone_length' value='0' />\n","comments":"","x":1355.7143478393555,"y":2992.6666202545166,"z":"5083bb91.cbb384","wires":[]},{"id":"32c7e4de.36637c","type":"switchNode","name":"switch AZ max count > 0","xml":"<switch test='`$db.vf-model.avail-zone-max-count &gt; 0`'>\n","comments":"","outputs":1,"x":942.857177734375,"y":2974.5236945152283,"z":"5083bb91.cbb384","wires":[["a4226dd4.17547","29731a8a.ed2356"]]},{"id":"a4226dd4.17547","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1145.7142848968506,"y":2948.8094444274902,"z":"5083bb91.cbb384","wires":[["7e365163.fc36a"]]},{"id":"29731a8a.ed2356","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1147.1429061889648,"y":2993.0951919555664,"z":"5083bb91.cbb384","wires":[["ea591bcc.24cec8"]]},{"id":"7e365163.fc36a","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=\"`'No availability zones found in AAI for cloud region '\n       + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`\" />\n","comments":"","x":1297.142822265625,"y":2948.5238494873047,"z":"5083bb91.cbb384","wires":[]},{"id":"b3f8a06f.e304d","type":"get-resource","name":"get-resource availability zones","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"availability-zones\" \n\t\tkey=\"cloud-region.cloud-owner = 'CloudOwner' AND \n\t\t     cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND\n\t\t     depth='0'\"\n        pfx='aai.az' local-only='false' >\n\n","comments":"","outputs":1,"x":545.7143096923828,"y":1901.4286441802979,"z":"5083bb91.cbb384","wires":[["c6cdd578.1d9f88"]]},{"id":"c6cdd578.1d9f88","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":770.9605255126953,"y":1900.829496383667,"z":"5083bb91.cbb384","wires":[["450c32ab.82b7bc"]]},{"id":"450c32ab.82b7bc","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 retrieving availability zones from AAI\" />\n","comments":"","x":944.7104644775391,"y":1899.5796184539795,"z":"5083bb91.cbb384","wires":[]}]
+[
+  {
+    "id":"9ccf5f2f.39236",
+    "type":"dgstart",
+    "name":"DGSTART",
+    "outputs":1,
+    "x":116,
+    "y":91,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "6691cc73.e873a4"
+      ]
+    ]
+  },
+  {
+    "id":"6691cc73.e873a4",
+    "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":229.61902618408203,
+    "y":131.2381134033203,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "cc1c0bf8.946078"
+      ]
+    ]
+  },
+  {
+    "id":"cc1c0bf8.946078",
+    "type":"method",
+    "name":"method vnf-topology-operation-assign",
+    "xml":"<method rpc='vnf-topology-operation-assign' mode='sync'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":207.42862701416016,
+    "y":171,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "640dc66a.a29d78"
+      ]
+    ]
+  },
+  {
+    "id":"4433df34.49523",
+    "type":"comment",
+    "name":"vnf-topology-operation-assign",
+    "info":"",
+    "comments":"",
+    "x":510.34485626220703,
+    "y":38.58634376525879,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"69555d22.201ae4",
+    "type":"switchNode",
+    "name":"switch request-action",
+    "xml":"<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":517.8571395874023,
+    "y":368.19043922424316,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "21e7c9f9.301dc6",
+        "4592f6ea.c358a8"
+      ]
+    ]
+  },
+  {
+    "id":"21e7c9f9.301dc6",
+    "type":"outcome",
+    "name":"CreateVnfInstance",
+    "xml":"<outcome value='CreateVnfInstance'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":771.5714340209961,
+    "y":345.3333206176758,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "68be9a6d.905a74"
+      ]
+    ]
+  },
+  {
+    "id":"4592f6ea.c358a8",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":733.5713996887207,
+    "y":391.0476484298706,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "f9f1fcba.f8b9a"
+      ]
+    ]
+  },
+  {
+    "id":"68be9a6d.905a74",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":956.4285621643066,
+    "y":345.3333501815796,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"f9f1fcba.f8b9a",
+    "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 'assign' then request-action must be 'CreateVnfInstance'\" />\n",
+    "comments":"",
+    "x":973.5714073181152,
+    "y":391.0476064682007,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"640dc66a.a29d78",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":146.11905670166016,
+    "y":1702.7857055664062,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "69555d22.201ae4",
+        "8493543d.d5add8",
+        "44e96447.88a55c",
+        "60a9b28e.fdbd6c",
+        "a2f5b96a.0efe28",
+        "38295564.a1749a",
+        "4b89c8dc.b86128",
+        "fdb92e2f.a354e",
+        "2a1ab274.7c2bee",
+        "992ab3fb.83b44",
+        "181944c4.0d0f9b",
+        "41755ac8.072364",
+        "e106d4bd.0d1078",
+        "1b1ec882.086847",
+        "2567269e.02750a",
+        "da9c0753.0051f8",
+        "e38c22e2.cce52",
+        "66001fe6.d89e4",
+        "99ebc7f4.ea5d68",
+        "c1d69c5f.488e1",
+        "71b9cf5e.13115",
+        "4bbcb529.9daacc",
+        "12e97c5b.66ee84",
+        "3d1f814c.368f2e",
+        "3315c9d5.fbc886",
+        "435802ab.cae41c",
+        "79756539.60282c",
+        "ca1ff11f.a4d9c",
+        "a7335a29.c13d48",
+        "ffd11c87.313e8",
+        "c8f006fe.b172c8"
+      ]
+    ]
+  },
+  {
+    "id":"8493543d.d5add8",
+    "type":"get-resource",
+    "name":"get-resource VF_MODEL",
+    "xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODEL WHERE customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-model'>\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":530.1904449462891,
+    "y":459.333309173584,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "d5535827.ea8598",
+        "48a8f1af.2c0e6"
+      ]
+    ]
+  },
+  {
+    "id":"6f7a7f57.b3d91",
+    "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=\"`'No model found for VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`\" />\n",
+    "comments":"",
+    "x":971.6189231872559,
+    "y":482.7617950439453,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"d5535827.ea8598",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":730.9761428833008,
+    "y":439.7141466140747,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "6cb659f6.a3ccc8"
+      ]
+    ]
+  },
+  {
+    "id":"48a8f1af.2c0e6",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":739.5475730895996,
+    "y":483.9998598098755,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "6f7a7f57.b3d91"
+      ]
+    ]
+  },
+  {
+    "id":"6cb659f6.a3ccc8",
+    "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 reading VF_MODEL table\" />\n",
+    "comments":"",
+    "x":970.9761238098145,
+    "y":437.85705375671387,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"44e96447.88a55c",
+    "type":"switchNode",
+    "name":"switch service-data.vnfs.vnf_length",
+    "xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":560.2857131958008,
+    "y":649.5714282989502,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "b5587c41.e56ce",
+        "7e264606.a0c498"
+      ]
+    ]
+  },
+  {
+    "id":"b5587c41.e56ce",
+    "type":"other",
+    "name":"NULL",
+    "xml":"<outcome value=''>\n",
+    "comments":"",
+    "outputs":1,
+    "x":786.0000419616699,
+    "y":616.7142162322998,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "35287950.3f0336"
+      ]
+    ]
+  },
+  {
+    "id":"35287950.3f0336",
+    "type":"set",
+    "name":"set vnf-index=0",
+    "xml":"<set>\n<parameter name='vnf-index' value='0' />\n",
+    "comments":"",
+    "x":950.2857627868652,
+    "y":615.7142944335938,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"7e264606.a0c498",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":787.4286041259766,
+    "y":681.0000343322754,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "1e55cf6a.800ac1"
+      ]
+    ]
+  },
+  {
+    "id":"f93c00a3.b52d2",
+    "type":"set",
+    "name":"set vnf-index = vnf_length",
+    "xml":"<set>\n<parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\n",
+    "comments":"",
+    "x":1126.285758972168,
+    "y":659.285722732544,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"c5a883a5.29173",
+    "type":"for",
+    "name":"for each existing VNF",
+    "xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":1111.7142715454102,
+    "y":705.2856616973877,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "a2daf07b.6ee38"
+      ]
+    ]
+  },
+  {
+    "id":"1e55cf6a.800ac1",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":923.1428642272949,
+    "y":681,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "f93c00a3.b52d2",
+        "c5a883a5.29173"
+      ]
+    ]
+  },
+  {
+    "id":"a2daf07b.6ee38",
+    "type":"switchNode",
+    "name":"switch vnf-information.vnf-id == service-data.vnfs.vnf[].vnf-id",
+    "xml":"<switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1466.0000381469727,
+    "y":704.857141494751,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "a768ca3d.d2e178"
+      ]
+    ]
+  },
+  {
+    "id":"a768ca3d.d2e178",
+    "type":"outcomeTrue",
+    "name":"true",
+    "xml":"<outcome value='true'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1760.2857475280762,
+    "y":704.4286136627197,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "4be53ad3.39d424"
+      ]
+    ]
+  },
+  {
+    "id":"4be53ad3.39d424",
+    "type":"returnFailure",
+    "name":"return failure",
+    "xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'VNF id ' + $service-data.vnfs.vnf[$idx].vnf-id\n      + ' already exists, and has order status ' + $service-data.vnfs.vnf[$idx].vnf-data.vnf-level-oper-status.order-status`\" />\n",
+    "comments":"",
+    "x":1908.8571548461914,
+    "y":704.4285736083984,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"5528274.a4ca8d8",
+    "type":"comment",
+    "name":"make sure this VNF doesn't exist already",
+    "info":"",
+    "comments":"",
+    "x":1453.1427688598633,
+    "y":662.4285717010498,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"60a9b28e.fdbd6c",
+    "type":"set",
+    "name":"set vnf-topology data",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id'\n value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-type'\n value='`$vnf-topology-operation-input.vnf-information.vnf-type`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-type'\n value='`$db.vf-model.nf-type`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role'\n value='`$db.vf-model.nf-role`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-function'\n value='`$db.vf-model.nf-function`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-code'\n value='`$db.vf-model.nf-code`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.tenant'\n value='`$vnf-topology-operation-input.vnf-request-input.tenant`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-cloud-region'\n value='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`' />\n \n",
+    "comments":"",
+    "x":515.9999694824219,
+    "y":811.238115310669,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"a2f5b96a.0efe28",
+    "type":"switchNode",
+    "name":"switch input vnf-name",
+    "xml":"<switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-name`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":522.4285507202148,
+    "y":1053.8571615219116,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "a74ff6a8.d70078",
+        "5026858f.a2940c"
+      ]
+    ]
+  },
+  {
+    "id":"a74ff6a8.d70078",
+    "type":"outcome",
+    "name":"NULL",
+    "xml":"<outcome value=''>",
+    "comments":"",
+    "outputs":1,
+    "x":790.6427726745605,
+    "y":976.8333864212036,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "a1df7746.405bc8"
+      ]
+    ]
+  },
+  {
+    "id":"a535733d.56088",
+    "type":"switchNode",
+    "name":"switch ecomp-generated-naming",
+    "xml":"<switch test='`$db.vf-model.ecomp-generated-naming`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1207.071662902832,
+    "y":883.5002059936523,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "c481f2.a0820e1",
+        "fed6ce07.f1c9b",
+        "3606bd75.f9d982"
+      ]
+    ]
+  },
+  {
+    "id":"a1df7746.405bc8",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":936.3572692871094,
+    "y":976.833498954773,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "ba81df66.145ca",
+        "a99511f6.3ff61",
+        "a535733d.56088"
+      ]
+    ]
+  },
+  {
+    "id":"fed6ce07.f1c9b",
+    "type":"outcome",
+    "name":"N",
+    "xml":"<outcome value='N'>",
+    "comments":"",
+    "outputs":1,
+    "x":1456.357322692871,
+    "y":885.404914855957,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "10b3babc.98e1d5"
+      ]
+    ]
+  },
+  {
+    "id":"10b3babc.98e1d5",
+    "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=\"No vnf-name was received but ecomp-generated-naming is not Y\" />\n",
+    "comments":"",
+    "x":1610.64310836792,
+    "y":903.9763593673706,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"c481f2.a0820e1",
+    "type":"outcome",
+    "name":"Y",
+    "xml":"<outcome value='Y'>",
+    "comments":"",
+    "outputs":1,
+    "x":1456.3572883605957,
+    "y":841.1192359924316,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "785bb471.695f2c"
+      ]
+    ]
+  },
+  {
+    "id":"3606bd75.f9d982",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1456.357250213623,
+    "y":931.119234085083,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "10b3babc.98e1d5"
+      ]
+    ]
+  },
+  {
+    "id":"785bb471.695f2c",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":1593.5002326965332,
+    "y":841.1192359924316,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"5026858f.a2940c",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":793.2144546508789,
+    "y":1123.119125366211,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "14a356a5.aabd79"
+      ]
+    ]
+  },
+  {
+    "id":"3f38f6a8.e8ae7a",
+    "type":"set",
+    "name":"set tmp.vnf-name",
+    "xml":"<set>\n<parameter name='tmp.vnf-name' value=\"`$vnf-topology-operation-input.vnf-request-input.vnf-name`\" />\n",
+    "comments":"",
+    "x":1752.0715306599936,
+    "y":1190.5476417541504,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"ba81df66.145ca",
+    "type":"call",
+    "name":"call GENERIC-RESOURCE-API:generate-unique-name",
+    "xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":1275.4763259887695,
+    "y":1049.8333959579468,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "d2300850.ff9928",
+        "88893e9e.26f3"
+      ]
+    ]
+  },
+  {
+    "id":"d2300850.ff9928",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1571.1906140645347,
+    "y":1022.6906585693359,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "a2f8f6ce.0d9048"
+      ]
+    ]
+  },
+  {
+    "id":"88893e9e.26f3",
+    "type":"success",
+    "name":"success",
+    "xml":"<outcome value='success'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1574.5239639282227,
+    "y":1074.3573017120361,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "e379d995.8d07c8"
+      ]
+    ]
+  },
+  {
+    "id":"a99511f6.3ff61",
+    "type":"set",
+    "name":"set variables for generating unique name",
+    "xml":"<set>\n<parameter name='generate-unique-name-input.index-table-name' value='VNF_NAME_INDEX' />\n<parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />\n<parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />\n<parameter name='generate-unique-name-input.prefix' value=\"`'z' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + $db.vf-model.nf-code`\" />\n<parameter name='generate-unique-name-input.index-length' value='2' />\n",
+    "comments":"",
+    "x":1232.1430130004883,
+    "y":998.1668043136597,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"e379d995.8d07c8",
+    "type":"set",
+    "name":"set tmp.vnf-name to generated name",
+    "xml":"<set>\n<parameter name='tmp.vnf-name' value='`$generate-unique-name-output.generated-name`' />\n",
+    "comments":"",
+    "x":1815.7143491109214,
+    "y":1074.8333930969238,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"a2f8f6ce.0d9048",
+    "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=\"`$generate-unique-name-output.error-message`\" />\n",
+    "comments":"",
+    "x":1739.0477269490561,
+    "y":1022.1191701889038,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"14a356a5.aabd79",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":941.1429824829102,
+    "y":1121.7858123779297,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "ddf542b0.c6011",
+        "fea292da.2d62c"
+      ]
+    ]
+  },
+  {
+    "id":"fea292da.2d62c",
+    "type":"call",
+    "name":"call GENERIC-RESOURCE-API:generate-unique-name",
+    "xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":1271.1429824829102,
+    "y":1169.7858123779297,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "fe79a9ce.cff238",
+        "854320f4.a6951"
+      ]
+    ]
+  },
+  {
+    "id":"fe79a9ce.cff238",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1569.7143987019858,
+    "y":1139.785837173462,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "c71b771e.d085f8"
+      ]
+    ]
+  },
+  {
+    "id":"854320f4.a6951",
+    "type":"success",
+    "name":"success",
+    "xml":"<outcome value='success'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1573.0477485656738,
+    "y":1191.452480316162,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "3f38f6a8.e8ae7a"
+      ]
+    ]
+  },
+  {
+    "id":"ddf542b0.c6011",
+    "type":"set",
+    "name":"set variables for generating unique name",
+    "xml":"<set>\n<parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />\n<parameter name='generate-unique-name-input.supplied-name' value='`$vnf-topology-operation-input.vnf-request-input.vnf-name`' />\n",
+    "comments":"",
+    "x":1227.8096542358398,
+    "y":1118.1191844940186,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"c71b771e.d085f8",
+    "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=\"`$generate-unique-name-output.error-message`\" />\n",
+    "comments":"",
+    "x":1737.5715115865073,
+    "y":1139.2143487930298,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"38295564.a1749a",
+    "type":"get-resource",
+    "name":"get-resource cloud region",
+    "xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"cloud-region\" \n\t\tkey=\"cloud-region.cloud-owner = 'CloudOwner' AND \n\t\t     cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND\n\t\t     depth='0'\"\n        pfx='aai.cloud-region' local-only='false' >\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":544.5714492797852,
+    "y":1731.8569984436035,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "705615f3.8b4c9c",
+        "ad2a9079.440fb"
+      ]
+    ]
+  },
+  {
+    "id":"ad2a9079.440fb",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":769.8176422119141,
+    "y":1750.00785446167,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "2721b55e.e28fda"
+      ]
+    ]
+  },
+  {
+    "id":"2721b55e.e28fda",
+    "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 retrieving cloud region from AAI\" />\n",
+    "comments":"",
+    "x":944.8176155090332,
+    "y":1750.007890701294,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"705615f3.8b4c9c",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":778.7462387084961,
+    "y":1708.2935876846313,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "5e971bd2.c85374"
+      ]
+    ]
+  },
+  {
+    "id":"5e971bd2.c85374",
+    "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=\"Cloud region not found in AAI\" />\n",
+    "comments":"",
+    "x":945.095516204834,
+    "y":1707.5991649627686,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"4b89c8dc.b86128",
+    "type":"get-resource",
+    "name":"get-resource VF_TO_NETWORK_ROLE_MAPPING",
+    "xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_TO_NETWORK_ROLE_MAPPING WHERE vf_customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-network-role-mapping[]'>\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":609.8095321655273,
+    "y":2042.9045181274414,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "54fe96c4.2ade08",
+        "73ebe04c.8877"
+      ]
+    ]
+  },
+  {
+    "id":"fc2923af.cfa16",
+    "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=\"`'No entries found in VF_TO_NETWORK_ROLE_MAPPING for VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`\" />\n",
+    "comments":"",
+    "x":1345.5237121582031,
+    "y":2060.618698120117,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"54fe96c4.2ade08",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":905.5952033996582,
+    "y":2021.6186828613281,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "359e53d8.b8194c"
+      ]
+    ]
+  },
+  {
+    "id":"73ebe04c.8877",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":914.166633605957,
+    "y":2065.904396057129,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "ce44b8cb.59b0b8"
+      ]
+    ]
+  },
+  {
+    "id":"359e53d8.b8194c",
+    "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 reading VF_TO_NETWORK_ROLE_MAPPING table\" />\n",
+    "comments":"",
+    "x":1080.5951843261719,
+    "y":2021.4283332824707,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"256b9444.46e22c",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":710.5715866088867,
+    "y":2491.71391582489,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "94f38af4.602b28",
+        "94677688.71e6b8",
+        "adf1fe7e.9a17b",
+        "aae66b2d.04c758",
+        "f2668cde.bd454",
+        "2eaed654.44544a",
+        "ebe74367.6c98d",
+        "a16a767c.1d4a58"
+      ]
+    ]
+  },
+  {
+    "id":"adf1fe7e.9a17b",
+    "type":"get-resource",
+    "name":"get-resource l3-network",
+    "xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"l3-networks\" \n\t\tkey=\"l3-network.network-role = $db.vf-network-role-mapping[$role-index].network-role\"\n        pfx='aai.l3-network' local-only='false'\n>\n",
+    "comments":"",
+    "outputs":1,
+    "x":943.4286041259766,
+    "y":2170.999779701233,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "e410cae.f805538",
+        "d30ae5a6.b9bd78"
+      ]
+    ]
+  },
+  {
+    "id":"d30ae5a6.b9bd78",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1147.476318359375,
+    "y":2193.1426191329956,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "3ac2e1b4.70cbce"
+      ]
+    ]
+  },
+  {
+    "id":"3ac2e1b4.70cbce",
+    "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 retrieving l3-network from AAI\" />\n",
+    "comments":"",
+    "x":1322.4762916564941,
+    "y":2193.1426553726196,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"e410cae.f805538",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1156.404914855957,
+    "y":2151.428352355957,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "5d3fbb26.bfed54"
+      ]
+    ]
+  },
+  {
+    "id":"5d3fbb26.bfed54",
+    "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=\"`'No active l3-network found in AAI with cloud_region_id '\n          + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + ' and network_role '\n          + $db.vf-network-role-mapping[$network-index].network-role`\" />\n",
+    "comments":"",
+    "x":1322.754192352295,
+    "y":2150.7339296340942,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"94f38af4.602b28",
+    "type":"set",
+    "name":"set vnf-network data",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-role'\n    value='`$db.vf-network-role-mapping[$role-index].network-role`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-name'\n    value='`$aai.l3-network.l3-network[$db-network-index].network-name`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].neutron-id'\n    value='`$aai.l3-network.l3-network[$db-network-index].neutron-network-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-id'\n    value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].contrail-network-fqdn'\n    value='`$aai.l3-network.l3-network[$db-network-index].contrail-network-fqdn`' />\n",
+    "comments":"",
+    "x":932.6191940307617,
+    "y":2658.0000228881836,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"181944c4.0d0f9b",
+    "type":"for",
+    "name":"for each cloud-region availability zone",
+    "xml":"<for index='idx' start='0' end='`$aai.az.availability-zone_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":544.3335571289062,
+    "y":3072.618803024292,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "7193ae4f.a03bb"
+      ]
+    ]
+  },
+  {
+    "id":"bec7777f.49caa8",
+    "type":"set",
+    "name":"set availability-zone",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[$idx]'\n  value='`$aai.az.availability-zone[$idx].availability-zone-name`' />\n",
+    "comments":"",
+    "x":1006.0002403259277,
+    "y":3041.952217102051,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"41755ac8.072364",
+    "type":"set",
+    "name":"set vnf-parameters-data",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.'\n  value='vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.' />\n",
+    "comments":"",
+    "x":503.9524841308594,
+    "y":2922.5711631774902,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"4fed1d67.892644",
+    "type":"save",
+    "name":"save generic-vnf l3-network relationships",
+    "xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"generic-vnf:relationship-list\"\n   key=\"generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"l3-network\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"l3-network.network-id\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-nw-index].network-id`\" />\n",
+    "comments":"",
+    "outputs":1,
+    "x":970.5240173339844,
+    "y":3216.381015777588,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "b6fac54b.97ab18",
+        "8f7c44dc.2bfaf8"
+      ]
+    ]
+  },
+  {
+    "id":"2567269e.02750a",
+    "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":467.0953674316406,
+    "y":3603.1901140213013,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"1b1ec882.086847",
+    "type":"set",
+    "name":"set vnf-level-oper-status to PendingCreate",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\n",
+    "comments":"",
+    "x":556.9088134765625,
+    "y":3505.527594566345,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"2a1ab274.7c2bee",
+    "type":"for",
+    "name":"for each network-role",
+    "xml":"<for index='role-index' start='0' end='`$db.vf-network-role-mapping_length`'>",
+    "comments":"",
+    "outputs":1,
+    "x":493.90489196777344,
+    "y":2491.7141189575195,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "256b9444.46e22c"
+      ]
+    ]
+  },
+  {
+    "id":"fdb92e2f.a354e",
+    "type":"set",
+    "name":"set network-index = 0",
+    "xml":"<set>\n<parameter name='network-index' value='0' />\n",
+    "comments":"",
+    "x":512.2380676269531,
+    "y":2109.8094577789307,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"94677688.71e6b8",
+    "type":"set",
+    "name":"increment network-index",
+    "xml":"<set>\n<parameter name='network-index' value='`$network-index + 1`' />\n",
+    "comments":"",
+    "x":942.9525146484375,
+    "y":2795.6189250946045,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"992ab3fb.83b44",
+    "type":"set",
+    "name":"set vnf-network_length",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'\n  value='`$network-index`' />\n",
+    "comments":"",
+    "x":502.8095703125,
+    "y":2872.571207046509,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"e106d4bd.0d1078",
+    "type":"set",
+    "name":"copy input data",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\n\n",
+    "comments":"",
+    "x":472.4286422729492,
+    "y":3453.1904258728027,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"da9c0753.0051f8",
+    "type":"for",
+    "name":"for each vnf-network",
+    "xml":"<for index='vnf-nw-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":493.52392578125,
+    "y":3215.380931854248,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "4dd068e4.b72dc8"
+      ]
+    ]
+  },
+  {
+    "id":"4dd068e4.b72dc8",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":697.1905670166016,
+    "y":3215.380892753601,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "4fed1d67.892644"
+      ]
+    ]
+  },
+  {
+    "id":"e38c22e2.cce52",
+    "type":"set",
+    "name":"set new vnf_length",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />\n",
+    "comments":"",
+    "x":508.0952491760254,
+    "y":765.7619781494141,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"66001fe6.d89e4",
+    "type":"for",
+    "name":"for each cloud-region relationship",
+    "xml":"<for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":557.4285736083984,
+    "y":1819.0951700210571,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "c5d7b884.059e78"
+      ]
+    ]
+  },
+  {
+    "id":"c5d7b884.059e78",
+    "type":"switchNode",
+    "name":"switch related-to",
+    "xml":"<switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":805.1071166992188,
+    "y":1818.8450994491577,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "2d88636e.c052fc"
+      ]
+    ]
+  },
+  {
+    "id":"2d88636e.c052fc",
+    "type":"outcome",
+    "name":"complex",
+    "xml":"<outcome value='complex'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":974.5714378356934,
+    "y":1818.2379217147827,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "7c602050.7b0ac"
+      ]
+    ]
+  },
+  {
+    "id":"cbda08be.5e00d8",
+    "type":"set",
+    "name":"set aic-clli",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli'\n  value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\n",
+    "comments":"",
+    "x":1295.2857360839844,
+    "y":1817.9045791625977,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"99ebc7f4.ea5d68",
+    "type":"switchNode",
+    "name":"switch aic-clli",
+    "xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":493.3333511352539,
+    "y":1975.0474872589111,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "1bb0c6a6.aa0059"
+      ]
+    ]
+  },
+  {
+    "id":"1bb0c6a6.aa0059",
+    "type":"outcome",
+    "name":"NULL",
+    "xml":"<outcome value=''>",
+    "comments":"",
+    "outputs":1,
+    "x":641.4761848449707,
+    "y":1975.0474700927734,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "9d910b9.8f160f8"
+      ]
+    ]
+  },
+  {
+    "id":"9d910b9.8f160f8",
+    "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 aic-clli in AAI for aic-cloud-region ' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`\" />\n",
+    "comments":"",
+    "x":788.6190452575684,
+    "y":1974.6189041137695,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"911708ca.a4ec28",
+    "type":"set",
+    "name":"set from DB",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\n  value='`$db.vf-model.invariant-uuid`' />\n",
+    "comments":"",
+    "x":916.9287452697754,
+    "y":1291.0475587844849,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"b87037e6.eb7448",
+    "type":"for",
+    "name":"for each l3-network",
+    "xml":"<for index='db-network-index' start='0' end='`$aai.l3-network.l3-network_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":1050.8811492919922,
+    "y":2414.571388244629,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "4cb7a54f.4eeccc"
+      ]
+    ]
+  },
+  {
+    "id":"4cb7a54f.4eeccc",
+    "type":"switchNode",
+    "name":"switch orchestration-status",
+    "xml":"<switch test='`$aai.l3-network.l3-network[$db-network-index].orchestration-status`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1279.452350616455,
+    "y":2413.142815589905,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "65732b9e.885204",
+        "f80fc6c2.030438",
+        "265b5201.897f0e",
+        "f51d095f.d31e98",
+        "41d53be7.1f6d94"
+      ]
+    ]
+  },
+  {
+    "id":"65732b9e.885204",
+    "type":"outcome",
+    "name":"Pending Delete",
+    "xml":"<outcome value='Pending Delete'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1516.1192626953125,
+    "y":2458.8095235824585,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "716a882.9ab7178"
+      ]
+    ]
+  },
+  {
+    "id":"f80fc6c2.030438",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1488.9764022827148,
+    "y":2509.809504508972,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "c6e8990a.ebd138"
+      ]
+    ]
+  },
+  {
+    "id":"3a777e92.27b412",
+    "type":"switchNode",
+    "name":"switch related-to",
+    "xml":"<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].related-to`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1854.6907539367676,
+    "y":2508.3808450698853,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "7ebd2a2d.1adc64"
+      ]
+    ]
+  },
+  {
+    "id":"c6e8990a.ebd138",
+    "type":"for",
+    "name":"for each relationship",
+    "xml":"<for silentFailure='true' index='db-rel-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":1658.9763145446777,
+    "y":2509.3808813095093,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "3a777e92.27b412"
+      ]
+    ]
+  },
+  {
+    "id":"7ebd2a2d.1adc64",
+    "type":"outcome",
+    "name":"cloud-region",
+    "xml":"<outcome value='cloud-region'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":2028.9763946533203,
+    "y":2507.9522914886475,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "91da1633.e19528"
+      ]
+    ]
+  },
+  {
+    "id":"91da1633.e19528",
+    "type":"for",
+    "name":"for each relationship data",
+    "xml":"<for silentFailure='true' index='db-data-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":2226.119094848633,
+    "y":2508.380759239197,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "7571e6bb.7c1e98"
+      ]
+    ]
+  },
+  {
+    "id":"7571e6bb.7c1e98",
+    "type":"switchNode",
+    "name":"switch relationship-key",
+    "xml":"<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":2457.547695159912,
+    "y":2507.9521341323853,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "99351695.fbd508"
+      ]
+    ]
+  },
+  {
+    "id":"99351695.fbd508",
+    "type":"outcome",
+    "name":"cloud-region.cloud-region-id",
+    "xml":"<outcome value='cloud-region.cloud-region-id'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":2698.9762268066406,
+    "y":2507.95223903656,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "52fbb392.9ae0fc"
+      ]
+    ]
+  },
+  {
+    "id":"52fbb392.9ae0fc",
+    "type":"switchNode",
+    "name":"switch relationship-value == cloud-region-id",
+    "xml":"<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-value == $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":3003.2621459960938,
+    "y":2507.8092947006226,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "30d6670a.932068"
+      ]
+    ]
+  },
+  {
+    "id":"30d6670a.932068",
+    "type":"outcomeTrue",
+    "name":"true",
+    "xml":"<outcome value='true'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":3243.262176513672,
+    "y":2507.9522399902344,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "f3bd4d0.b8b78b"
+      ]
+    ]
+  },
+  {
+    "id":"aae66b2d.04c758",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":889.0953330993652,
+    "y":2482.4284858703613,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "b87037e6.eb7448",
+        "c901ec1c.1186a"
+      ]
+    ]
+  },
+  {
+    "id":"c901ec1c.1186a",
+    "type":"returnSuccess",
+    "name":"CATCH BREAK",
+    "xml":"<return status='success'>\n\n",
+    "comments":"",
+    "x":1040.4287414550781,
+    "y":2555.7617197036743,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"4cb4ba60.e5ecf4",
+    "type":"returnFailure",
+    "name":"BREAK",
+    "xml":"<return status='failure'>\n",
+    "comments":"",
+    "x":3544.095157623291,
+    "y":2525.761643409729,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"f2668cde.bd454",
+    "type":"set",
+    "name":"set l3-network-id = -1",
+    "xml":"<set>\n<parameter name='l3-network-id' value='-1' />\n",
+    "comments":"",
+    "x":933.4287033081055,
+    "y":2285.7616996765137,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"f3bd4d0.b8b78b",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":3389.0951538085938,
+    "y":2507.4283485412598,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "26d1bdef.32da62",
+        "4cb4ba60.e5ecf4"
+      ]
+    ]
+  },
+  {
+    "id":"26d1bdef.32da62",
+    "type":"set",
+    "name":"set l3-network-id = this l3-network",
+    "xml":"<set>\n<parameter name='l3-network-id' value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\n",
+    "comments":"",
+    "x":3625.7618255615234,
+    "y":2482.4283475875854,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"2eaed654.44544a",
+    "type":"switchNode",
+    "name":"switch l3-network-id",
+    "xml":"<switch test='`$l3-network-id`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":930.4286270141602,
+    "y":2609.428741455078,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "94d5eb5b.9dfb28"
+      ]
+    ]
+  },
+  {
+    "id":"94d5eb5b.9dfb28",
+    "type":"outcome",
+    "name":"-1",
+    "xml":"<outcome value='-1'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1100.4285774230957,
+    "y":2609.428497314453,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "819df612.f478a8"
+      ]
+    ]
+  },
+  {
+    "id":"819df612.f478a8",
+    "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 l3-network in AAI for network role ' + $db.vf-network-role-mapping[$role-index].network-role`\" />\n",
+    "comments":"",
+    "x":1248.7619400024414,
+    "y":2609.4286346435547,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"c1d69c5f.488e1",
+    "type":"switchNode",
+    "name":"switch input model-invariant-uuid",
+    "xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":560.7858200073242,
+    "y":1313.8720026016235,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "81712284.6061f",
+        "bbef1dff.d32a1"
+      ]
+    ]
+  },
+  {
+    "id":"81712284.6061f",
+    "type":"outcome",
+    "name":"NULL",
+    "xml":"<outcome value=''>",
+    "comments":"",
+    "outputs":1,
+    "x":766.4524917602539,
+    "y":1291.0149660110474,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "911708ca.a4ec28"
+      ]
+    ]
+  },
+  {
+    "id":"bbef1dff.d32a1",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":767.8810882568359,
+    "y":1335.3005571365356,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "9d361538.39a998"
+      ]
+    ]
+  },
+  {
+    "id":"9d361538.39a998",
+    "type":"set",
+    "name":"set from input",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />\n",
+    "comments":"",
+    "x":922.1668243408203,
+    "y":1334.7291293144226,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"c01c75b7.d771a8",
+    "type":"set",
+    "name":"set from DB",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\n  value='`$db.vf-model.uuid`' />\n",
+    "comments":"",
+    "x":917.8810157775879,
+    "y":1379.5862350463867,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"71b9cf5e.13115",
+    "type":"switchNode",
+    "name":"switch input model-uuid",
+    "xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":533.4048385620117,
+    "y":1402.4107398986816,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "cb6c4216.48671",
+        "51d9dbfe.50eec4"
+      ]
+    ]
+  },
+  {
+    "id":"cb6c4216.48671",
+    "type":"outcome",
+    "name":"NULL",
+    "xml":"<outcome value=''>",
+    "comments":"",
+    "outputs":1,
+    "x":767.4048118591309,
+    "y":1379.553671836853,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "c01c75b7.d771a8"
+      ]
+    ]
+  },
+  {
+    "id":"51d9dbfe.50eec4",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":768.8334083557129,
+    "y":1423.8392629623413,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "8668309.94373d"
+      ]
+    ]
+  },
+  {
+    "id":"8668309.94373d",
+    "type":"set",
+    "name":"set from input",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />\n",
+    "comments":"",
+    "x":923.1191444396973,
+    "y":1423.2678351402283,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"f9c5e77b.b35768",
+    "type":"set",
+    "name":"set from DB",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\n  value='`$db.vf-model.version`' />\n",
+    "comments":"",
+    "x":915.0239486694336,
+    "y":1468.4434423446655,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"4bbcb529.9daacc",
+    "type":"switchNode",
+    "name":"switch input model-version",
+    "xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":541.5477104187012,
+    "y":1491.2678871154785,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "a7d107ab.83c758",
+        "78b9d8ab.538148"
+      ]
+    ]
+  },
+  {
+    "id":"a7d107ab.83c758",
+    "type":"outcome",
+    "name":"NULL",
+    "xml":"<outcome value=''>",
+    "comments":"",
+    "outputs":1,
+    "x":764.5476951599121,
+    "y":1468.410849571228,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "f9c5e77b.b35768"
+      ]
+    ]
+  },
+  {
+    "id":"78b9d8ab.538148",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":765.9762916564941,
+    "y":1512.6964406967163,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "e7c733ab.83255"
+      ]
+    ]
+  },
+  {
+    "id":"e7c733ab.83255",
+    "type":"set",
+    "name":"set from input",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`' />\n",
+    "comments":"",
+    "x":920.2620277404785,
+    "y":1512.1250128746033,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"5c05bbe1.d44bc4",
+    "type":"set",
+    "name":"set from DB",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\n  value='`$db.vf-model.name`' />\n",
+    "comments":"",
+    "x":915.0239486694336,
+    "y":1555.5862646102905,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"12e97c5b.66ee84",
+    "type":"switchNode",
+    "name":"switch input model-name",
+    "xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":536.5477104187012,
+    "y":1578.4107093811035,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "af70cdb.ef6023",
+        "f3d34dfc.cbd31"
+      ]
+    ]
+  },
+  {
+    "id":"af70cdb.ef6023",
+    "type":"outcome",
+    "name":"NULL",
+    "xml":"<outcome value=''>",
+    "comments":"",
+    "outputs":1,
+    "x":764.5476951599121,
+    "y":1555.553671836853,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "5c05bbe1.d44bc4"
+      ]
+    ]
+  },
+  {
+    "id":"f3d34dfc.cbd31",
+    "type":"other",
+    "name":"other",
+    "xml":"<outcome value='Other'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":765.9762916564941,
+    "y":1599.8392629623413,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "ba8a085e.f15f18"
+      ]
+    ]
+  },
+  {
+    "id":"ba8a085e.f15f18",
+    "type":"set",
+    "name":"set from input",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`' />\n",
+    "comments":"",
+    "x":920.2620277404785,
+    "y":1599.2678351402283,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"716a882.9ab7178",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":1669.3333549499512,
+    "y":2459.586400985718,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"41d53be7.1f6d94",
+    "type":"outcome",
+    "name":"PendingDelete",
+    "xml":"<outcome value='PendingDelete'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1513.9999961853027,
+    "y":2414.5863151550293,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "88ce6156.79525"
+      ]
+    ]
+  },
+  {
+    "id":"88ce6156.79525",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":1669.2140884399414,
+    "y":2415.3631925582886,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"f51d095f.d31e98",
+    "type":"outcome",
+    "name":"Pending Create",
+    "xml":"<outcome value='Pending Create'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1515.9999961853027,
+    "y":2371.2528190612793,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "1d66b0a7.bf415f"
+      ]
+    ]
+  },
+  {
+    "id":"1d66b0a7.bf415f",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":1669.2140884399414,
+    "y":2372.0296964645386,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"265b5201.897f0e",
+    "type":"outcome",
+    "name":"PendingCreate",
+    "xml":"<outcome value='PendingCreate'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1515.9999961853027,
+    "y":2327.9195671081543,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "569d335c.bf6c3c"
+      ]
+    ]
+  },
+  {
+    "id":"569d335c.bf6c3c",
+    "type":"block",
+    "name":"block",
+    "xml":"<block>\n",
+    "atomic":"false",
+    "comments":"",
+    "outputs":1,
+    "x":1669.2140884399414,
+    "y":2328.6964445114136,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"ebe74367.6c98d",
+    "type":"for",
+    "name":"for each A&AI subnet",
+    "xml":"<for index='subnet-index' start='0' end='`$aai.l3-network.l3-network[0].subnets.subnet_length`' >\n",
+    "comments":"",
+    "outputs":1,
+    "x":932.6667633056641,
+    "y":2702.919626235962,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "cfa19178.3c2c3"
+      ]
+    ]
+  },
+  {
+    "id":"cfa19178.3c2c3",
+    "type":"set",
+    "name":"set subnet data",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].ip-version'\n   value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].ip-version`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-id'\n   value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-id`' />\n",
+    "comments":"",
+    "x":1130.9999389648438,
+    "y":2701.2532052993774,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"a16a767c.1d4a58",
+    "type":"set",
+    "name":"set subnet_length",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data_length'\n   value='`$aai.l3-network.l3-network[0].subnets.subnet_length`' />\n",
+    "comments":"",
+    "x":921.3333282470703,
+    "y":2747.919708251953,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"3d1f814c.368f2e",
+    "type":"set",
+    "name":"set availability-zones.max-count and length",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.max-count'\n   value='`$db.vf-model.avail-zone-max-count`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone_length'\n   value='`$aai.az.availability-zone_length`' />\n",
+    "comments":"",
+    "x":564.0000610351562,
+    "y":3160.6342582702637,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"3315c9d5.fbc886",
+    "type":"set",
+    "name":"set vnf-name",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name'\n   value='`$tmp.vnf-name`' />\n",
+    "comments":"",
+    "x":497.66663360595703,
+    "y":1247.9197664260864,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"435802ab.cae41c",
+    "type":"save",
+    "name":"update generic-vnf",
+    "xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"generic-vnf\"\n   key=\"generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"vnf-name\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name`\" />\n<parameter name=\"prov-status\" value=\"PREPROV\" />\n<parameter name=\"operational-status\" value=\"out-of-service-path\" />\n<parameter name=\"equipment-role\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`\" />\n<parameter name=\"model-invariant-id\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid`\" />\n<parameter name=\"model-version-id\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid`\" />\n<parameter name=\"model-customization-id\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`\" />\n<parameter name=\"selflink\" value=\"`$vnf-object-path`\" />\n",
+    "comments":"",
+    "outputs":1,
+    "x":484.3333282470703,
+    "y":3370.300033569336,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "a1a2ecfe.5a9f7",
+        "63cf7c2e.6403d4"
+      ]
+    ]
+  },
+  {
+    "id":"79756539.60282c",
+    "type":"set",
+    "name":"set vnf-object-path",
+    "xml":"<set>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vnf-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology'`\"/>\n\n",
+    "comments":"",
+    "x":484.33336639404297,
+    "y":3300.30051612854,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"ca1ff11f.a4d9c",
+    "type":"set",
+    "name":"set vnf-id",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id'\n   value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n",
+    "comments":"",
+    "x":485.9999771118164,
+    "y":1199.5863094329834,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"858218a8.523588",
+    "type":"execute",
+    "name":"printContext",
+    "xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-viprend.log' />\n",
+    "comments":"",
+    "outputs":1,
+    "x":462.00009536743164,
+    "y":3551.967363357544,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"90fb466f.03aa88",
+    "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=\"`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n",
+    "comments":"",
+    "x":1407.666805267334,
+    "y":3236.9671211242676,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"b6fac54b.97ab18",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1220.3573722839355,
+    "y":3193.919590950012,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "3c644fce.dbe83"
+      ]
+    ]
+  },
+  {
+    "id":"8f7c44dc.2bfaf8",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1228.9288024902344,
+    "y":3238.205304145813,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "90fb466f.03aa88"
+      ]
+    ]
+  },
+  {
+    "id":"3c644fce.dbe83",
+    "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 generic-vnf in AAI\" />\n",
+    "comments":"",
+    "x":1410.3573989868164,
+    "y":3193.729326248169,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"635e0959.ef5968",
+    "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=\"`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n",
+    "comments":"",
+    "x":887.6667442321777,
+    "y":3391.967043876648,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"a1a2ecfe.5a9f7",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":700.3573112487793,
+    "y":3348.9195137023926,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "dc15263a.8bf0c8"
+      ]
+    ]
+  },
+  {
+    "id":"63cf7c2e.6403d4",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":708.9287414550781,
+    "y":3393.2052268981934,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "635e0959.ef5968"
+      ]
+    ]
+  },
+  {
+    "id":"dc15263a.8bf0c8",
+    "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 selflink in generic-vnf in AAI\" />\n",
+    "comments":"",
+    "x":890.3573379516602,
+    "y":3348.7292490005493,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"a7335a29.c13d48",
+    "type":"set",
+    "name":"set model-customization-uuid",
+    "xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\n",
+    "comments":"",
+    "x":549.3332977294922,
+    "y":1651.2529134750366,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"f96ea41d.1ff208",
+    "type":"execute",
+    "name":"split related-link",
+    "xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='aai-uid-split' />\n   <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\n   <parameter name='regex' value='/' />\n",
+    "comments":"",
+    "outputs":1,
+    "x":1314.6665954589844,
+    "y":1772.6664972305298,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+
+      ]
+    ]
+  },
+  {
+    "id":"7c602050.7b0ac",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":1134.3332977294922,
+    "y":1819.333285331726,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "f96ea41d.1ff208",
+        "cbda08be.5e00d8",
+        "b2382668.d3f318"
+      ]
+    ]
+  },
+  {
+    "id":"b2382668.d3f318",
+    "type":"break",
+    "name":"break",
+    "xml":"<break>\n",
+    "comments":"",
+    "x":1284.3332595825195,
+    "y":1862.666582107544,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"7193ae4f.a03bb",
+    "type":"block",
+    "name":"block : atomic",
+    "xml":"<block atomic=\"true\">",
+    "atomic":"true",
+    "outputs":1,
+    "x":796,
+    "y":3071.7143869400024,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "bec7777f.49caa8",
+        "2fe66adc.46b646"
+      ]
+    ]
+  },
+  {
+    "id":"2fe66adc.46b646",
+    "type":"save",
+    "name":"save generic-vnf availability-zone relationship",
+    "xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"generic-vnf:relationship-list\"\n   key=\"generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"availability-zone\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"cloud-region.cloud-owner\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"CloudOwner\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-key\" value=\"cloud-region.cloud-region-id\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-value\" value=\"`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-key\" value=\"availability-zone.availability-zone-name\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-value\" value=\"`$aai.az.availability-zone[$idx].availability-zone-name`\" />\n",
+    "comments":"",
+    "outputs":1,
+    "x":1087.9048156738281,
+    "y":3095.0478343963623,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "31eeede2.e6b5f2",
+        "9e258d80.f8a09"
+      ]
+    ]
+  },
+  {
+    "id":"51e42555.9814cc",
+    "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=\"`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n",
+    "comments":"",
+    "x":1541.47607421875,
+    "y":3118.9671936035156,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"31eeede2.e6b5f2",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1354.1666412353516,
+    "y":3075.9196634292603,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "e9675503.f145d8"
+      ]
+    ]
+  },
+  {
+    "id":"9e258d80.f8a09",
+    "type":"not-found",
+    "name":"not-found",
+    "xml":"<outcome value='not-found'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1362.7380714416504,
+    "y":3120.205376625061,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "51e42555.9814cc"
+      ]
+    ]
+  },
+  {
+    "id":"e9675503.f145d8",
+    "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 generic-vnf in AAI\" />\n",
+    "comments":"",
+    "x":1544.1666679382324,
+    "y":3075.729398727417,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"ce44b8cb.59b0b8",
+    "type":"set",
+    "name":"set mapping rows to 0",
+    "xml":"<set>\n<parameter name='db.vf-network-role-mapping_length' value='0' />\n",
+    "comments":"",
+    "x":1108.1427688598633,
+    "y":2065.52388381958,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"ffd11c87.313e8",
+    "type":"switchNode",
+    "name":"switch AAI availability-zone_length",
+    "xml":"<switch test='`$aai.az.availability-zone_length`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":536.7142868041992,
+    "y":2975.523973464966,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "f7464066.4b3d4"
+      ]
+    ]
+  },
+  {
+    "id":"f7464066.4b3d4",
+    "type":"outcome",
+    "name":"NULL",
+    "xml":"<outcome value=''>",
+    "comments":"",
+    "outputs":1,
+    "x":755.2857055664062,
+    "y":2975.0953826904297,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "632fea45.95b4c4"
+      ]
+    ]
+  },
+  {
+    "id":"797aa504.5376fc",
+    "type":"set",
+    "name":"set availability-zone_length to 0",
+    "xml":"<set>\n<parameter name='aai.az.availability-zone_length' value='0' />\n",
+    "comments":"",
+    "x":1356.7143478393555,
+    "y":2993.6666202545166,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"632fea45.95b4c4",
+    "type":"switchNode",
+    "name":"switch AZ max count > 0",
+    "xml":"<switch test='`$db.vf-model.avail-zone-max-count &gt; 0`'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":943.857177734375,
+    "y":2975.5236945152283,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "c29ececd.4b1d9",
+        "1e15158e.a3fbea"
+      ]
+    ]
+  },
+  {
+    "id":"c29ececd.4b1d9",
+    "type":"outcomeTrue",
+    "name":"true",
+    "xml":"<outcome value='true'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1146.7142848968506,
+    "y":2949.8094444274902,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "66595a0d.b7fbd4"
+      ]
+    ]
+  },
+  {
+    "id":"1e15158e.a3fbea",
+    "type":"outcomeFalse",
+    "name":"false",
+    "xml":"<outcome value='false'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":1148.1429061889648,
+    "y":2994.0951919555664,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "797aa504.5376fc"
+      ]
+    ]
+  },
+  {
+    "id":"66595a0d.b7fbd4",
+    "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=\"`'No availability zones found in AAI for cloud region '\n       + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`\" />\n",
+    "comments":"",
+    "x":1298.142822265625,
+    "y":2949.5238494873047,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  },
+  {
+    "id":"c8f006fe.b172c8",
+    "type":"get-resource",
+    "name":"get-resource availability zones",
+    "xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"availability-zones\" \n\t\tkey=\"cloud-region.cloud-owner = 'CloudOwner' AND \n\t\t     cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND\n\t\t     depth='0'\"\n        pfx='aai.az' local-only='false' >\n\n",
+    "comments":"",
+    "outputs":1,
+    "x":546.7143096923828,
+    "y":1902.4286441802979,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "9a0f1e6d.bbdfb"
+      ]
+    ]
+  },
+  {
+    "id":"9a0f1e6d.bbdfb",
+    "type":"failure",
+    "name":"failure",
+    "xml":"<outcome value='failure'>\n",
+    "comments":"",
+    "outputs":1,
+    "x":771.9605255126953,
+    "y":1901.829496383667,
+    "z":"fd246789.67c9b8",
+    "wires":[
+      [
+        "57e15af7.8d7174"
+      ]
+    ]
+  },
+  {
+    "id":"57e15af7.8d7174",
+    "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 retrieving availability zones from AAI\" />\n",
+    "comments":"",
+    "x":945.7104644775391,
+    "y":1900.5796184539795,
+    "z":"fd246789.67c9b8",
+    "wires":[
+
+    ]
+  }
+]
\ No newline at end of file
index 130cc17..8071065 100644 (file)
-<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}'><method rpc='tunnelxconn-topology-operation-create' mode='sync'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.ar.allotted-resource-id' value='`$tunnelxconn-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
-<parameter name='tmp.ar.parent-service-instance-id' value='`$tunnelxconn-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
+<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
+    <method rpc='tunnelxconn-topology-operation-create' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='tmp.ar.allotted-resource-id' value='`$tunnelxconn-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$tunnelxconn-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:tunnelxconn-allotted-resources/tunnelxconn-allotted-resource/' + $tmp.ar.allotted-resource-id + '/allotted-resource-data/tunnelxconn-topology/'` " />\r
+            </set>\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
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.tx-allottedresource`"/>\r
+                <parameter name="outputPath" value="tmp.ar-url"/>\r
+                <parameter name="target" value="{allotted-resource-id}"/>\r
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='GET' />\r
+                <parameter name="responsePrefix" value="mdsal-ar" />\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='bk-tx-ar' value='$mdsal-ar.' />\r
+                        </set>\r
+                        <switch test='`$mdsal-ar.tunnelxconn-allotted-resource_length`'>\r
+                            <outcome value='1'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name='tx-ar.' value='$mdsal-ar.tunnelxconn-allotted-resource[0].' />\r
+                                    </set>\r
+                                    <switch test='`$tx-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\r
+                                        <outcome value='PendingCreate'>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <set>\r
+                                        <parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$tx-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\r
+                                        <parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$tx-ar.allotted-resource-status.rpc-action`' />\r
+                                        <parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$tx-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='tx-ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
+                <parameter name='tx-ar.allotted-resource-status.action' value="`$tunnelxconn-topology-operation-input.request-information.request-action` " />\r
+                <parameter name='tx-ar.allotted-resource-status.rpc-name' value="tunnelxconn-topology-operation" />\r
+                <parameter name='tx-ar.allotted-resource-status.rpc-action' value="`$tunnelxconn-topology-operation-input.sdnc-request-header.svc-action` " />\r
+                <parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$tunnelxconn-topology-operation-input.request-information.` " />\r
+                <parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$tunnelxconn-topology-operation-input.sdnc-request-header.` " />\r
+                <parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$tunnelxconn-topology-operation-input.service-information.` " />\r
+                <parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$tunnelxconn-topology-operation-input.allotted-resource-information.` " />\r
+                <parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.tunnelxconn-request-input.' value="`$tunnelxconn-topology-operation-input.tunnelxconn-request-input.` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
+                <parameter name="outputPath" value="tmp.current-time" />\r
+            </execute>\r
+            <set>\r
+                <parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />\r
+                <parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$tunnelxconn-topology-operation-input.request-information.request-action`' />\r
+                <parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$tunnelxconn-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$tunnelxconn-topology-operation-input.sdnc-request-header.svc-request-id`' />\r
+                <parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.tx.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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-ar" />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />\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 updating md-sal for tunnelxconn-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='IPADDR' key="SELECT min(ip_addr) ip from DHCP_MAP where mac_addr = $tx-ar.allotted-resource-data.allotted-resource-operation-information.tunnelxconn-request-input.brg-wan-mac-address" pfx="tmp.brg-wan-ip" ></get-resource>\r
+            <set>\r
+                <parameter name='tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip' value='`$tmp.brg-wan-ip.ip`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.tunnel-vgMUX-vG-name' value="`'vxlanTun' + $tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vg-ip` " />\r
+                <parameter name='tmp.tunnel-vgMUX-vBRG-name' value="`'vxlanTun' + $tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip` " />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.search.parent-service-instance-id' value='`$tmp.ar.parent-service-instance-id`' />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='get-vnf-api-parent-instance' mode='sync' ></call>\r
+            <for index='paramidx' start='0' end='`$parent-service-instance.service-data.vnf-topology-information.vnf-parameters_length`' >\r
+                <!--\r
+            <for index='paramidx' start='0' end='`$parent-service-instance.vnf-topology-information.vnf-parameters_length`' >\r
+                -->\r
+                <switch test='`$parent-service-instance.service-data.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-name == vgmux_private_ip_1`'>\r
+                    <!--\r
+                <switch test='`$parent-service-instance.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-name == vgmux_private_ip_1`'>\r
+                    -->\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-mgmt-ip' value='`$parent-service-instance.service-data.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-value`' />\r
+                            <!--\r
+                             <parameter name='tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-mgmt-ip' value='`$parent-service-instance.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-value`' />\r
 \r
-\r
-</set><set>\r
-<parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:tunnelxconn-allotted-resources/tunnelxconn-allotted-resource/'\r
- + $tmp.ar.allotted-resource-id\r
- + '/allotted-resource-data/tunnelxconn-topology/'` " />\r
-\r
-</set><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><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$prop.restapi.tx-allottedresource`"/>\r
-    <parameter name="outputPath" value="tmp.ar-url"/>\r
-    <parameter name="target" value="{allotted-resource-id}"/>\r
-    <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='GET' />\r
-    <parameter name="responsePrefix" value="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block atomic="true">\r
-<set>\r
-<parameter name='bk-tx-ar' value='$mdsal-ar.' />\r
-</set><switch test='`$mdsal-ar.tunnelxconn-allotted-resource_length`'>\r
-<outcome value='1'>\r
-<block atomic='true'>\r
-<set>\r
-<parameter name='tx-ar.' value='$mdsal-ar.tunnelxconn-allotted-resource[0].' />\r
-</set><switch test='`$tx-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\r
-<outcome value='PendingCreate'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<block>\r
-</block></outcome></switch><set>\r
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$tx-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\r
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$tx-ar.allotted-resource-status.rpc-action`' />\r
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$tx-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\r
-\r
-</set></block></outcome></switch></block></outcome><outcome value='Other'>\r
-<block atomic="true">\r
-</block></outcome></execute><set>\r
-<parameter name='tx-ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
-<parameter name='tx-ar.allotted-resource-status.action' value="`$tunnelxconn-topology-operation-input.request-information.request-action` " />\r
-<parameter name='tx-ar.allotted-resource-status.rpc-name' value="tunnelxconn-topology-operation" />\r
-<parameter name='tx-ar.allotted-resource-status.rpc-action' value="`$tunnelxconn-topology-operation-input.sdnc-request-header.svc-action` " />\r
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$tunnelxconn-topology-operation-input.request-information.` " />\r
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$tunnelxconn-topology-operation-input.sdnc-request-header.` " />\r
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$tunnelxconn-topology-operation-input.service-information.` " />\r
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$tunnelxconn-topology-operation-input.allotted-resource-information.` " />\r
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.tunnelxconn-request-input.' value="`$tunnelxconn-topology-operation-input.tunnelxconn-request-input.` " /></set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
-    <parameter name="outputPath" value="tmp.current-time" />\r
-\r
-</execute><set>\r
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />\r
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$tunnelxconn-topology-operation-input.request-information.request-action`' />\r
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$tunnelxconn-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$tunnelxconn-topology-operation-input.sdnc-request-header.svc-request-id`' />\r
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.tx.templatefile`" />\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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-ar" />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><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 md-sal for tunnelxconn-allotted-resource" />\r
-</return></outcome><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 updating md-sal for tunnelxconn-allotted-resource" />\r
-</return></outcome></execute><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='IPADDR' key="SELECT min(ip_addr) ip from DHCP_MAP where mac_addr = $tx-ar.allotted-resource-data.allotted-resource-operation-information.tunnelxconn-request-input.brg-wan-mac-address" pfx="tmp.brg-wan-ip" >\r
-</get-resource><set>\r
-<parameter name='tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip' value='`$tmp.brg-wan-ip.ip`' />\r
-</set><set>\r
-<parameter name='tmp.tunnel-vgMUX-vG-name' value="`'vxlanTun' + $tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vg-ip` " />\r
-<parameter name='tmp.tunnel-vgMUX-vBRG-name' value="`'vxlanTun' + $tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip` " />\r
-</set><set>\r
-<parameter name='tmp.search.parent-service-instance-id' value='`$tmp.ar.parent-service-instance-id`' />\r
-</set><call module='GENERIC-RESOURCE-API' rpc='get-vnf-api-parent-instance' mode='sync' >\r
-\r
-</call><for index='paramidx' start='0' end='`$parent-service-instance.service-data.vnf-topology-information.vnf-parameters_length`' >\r
-<!--\r
-<for index='paramidx' start='0' end='`$parent-service-instance.vnf-topology-information.vnf-parameters_length`' >\r
---><switch test='`$parent-service-instance.service-data.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-name == vgmux_private_ip_1`'>\r
-<!--\r
-<switch test='`$parent-service-instance.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-name == vgmux_private_ip_1`'>\r
--->\r
-\r
-\r
-<outcome value='true'>\r
-<set>\r
-<parameter name='tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-mgmt-ip' value='`$parent-service-instance.service-data.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-value`' />\r
-<!--\r
-<parameter name='tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-mgmt-ip' value='`$parent-service-instance.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-value`' />\r
-\r
---></set></outcome></switch></for><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$prop.honeycomb.url`"/>\r
-    <parameter name="outputPath" value="tmp.honeycomb.url"/>\r
-    <parameter name="target" value="{honeycomb-instance-ip}"/>\r
-    <parameter name="replacement" value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-mgmt-ip`"/>\r
-</execute><set>\r
-<parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vG-name` " />\r
-<parameter name='tmp.tunnel-dest-ip' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vg-ip` " />\r
-<parameter name='tmp.tunnel-src-ip' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-bearer-ip` " />\r
-<parameter name='tmp.tunnel-vni' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vni` " /></set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$prop.restapi.vpp-honeycomb`"/>\r
-    <parameter name="outputPath" value="tmp.vpp-honeycomb-url"/>\r
-    <parameter name="target" value="{tunnel-name}"/>\r
-    <parameter name="replacement" value="`$tmp.tunnel-name`"/>\r
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.vxlan-tunnel.templatefile`" />\r
-    <parameter name='restapiUrl' value='`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url`' />\r
-    <parameter name='restapiUser' value='`$prop.honeycomb.user`' />\r
-    <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />\r
-    <parameter name='format' value='json' />\r
-    <parameter name='httpMethod' value='PUT' />\r
-    <parameter name="responsePrefix" value="honeycomb-vnf" />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><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 md-sal for tunnelxconn-allotted-resource" />\r
-</return></outcome><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 updating md-sal for tunnelxconn-allotted-resource" />\r
-</return></outcome></execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
-<parameter name='filename' value='/var/tmp/tunnel-xconn-create.log' />\r
-</execute><set>\r
-<parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vBRG-name` " />\r
-<parameter name='tmp.tunnel-dest-ip' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip` " />\r
-<parameter name='tmp.tunnel-src-ip' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-lan-ip` " />\r
-<parameter name='tmp.tunnel-vni' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vni` " /></set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$prop.restapi.vpp-honeycomb`"/>\r
-    <parameter name="outputPath" value="tmp.vpp-honeycomb-url"/>\r
-    <parameter name="target" value="{tunnel-name}"/>\r
-    <parameter name="replacement" value="`$tmp.tunnel-name`"/>\r
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.vxlan-tunnel.templatefile`" />\r
-    <parameter name='restapiUrl' value='`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url`' />\r
-    <parameter name='restapiUser' value='`$prop.honeycomb.user`' />\r
-    <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />\r
-    <parameter name='format' value='json' />\r
-    <parameter name='httpMethod' value='PUT' />\r
-    <parameter name="responsePrefix" value="honeycomb-vnf" />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><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 md-sal for tunnelxconn-allotted-resource" />\r
-</return></outcome><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 updating md-sal for tunnelxconn-allotted-resource" />\r
-</return></outcome></execute><set>\r
-<parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vG-name` " />\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.xconnect.templatefile`" />\r
-    <parameter name='restapiUrl' value="`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url + '/v3po:l2' `" />\r
-    <parameter name='restapiUser' value='`$prop.honeycomb.user`' />\r
-    <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />\r
-    <parameter name='format' value='json' />\r
-    <parameter name='httpMethod' value='PUT' />\r
-    <parameter name="responsePrefix" value="honeycomb-vnf" />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><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 md-sal for tunnelxconn-allotted-resource" />\r
-</return></outcome><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 updating md-sal for tunnelxconn-allotted-resource" />\r
-</return></outcome></execute><set>\r
-<parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vG-name` " /></set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$prop.restapi.vpp-honeycomb`"/>\r
-    <parameter name="outputPath" value="tmp.vpp-honeycomb-url"/>\r
-    <parameter name="target" value="{tunnel-name}"/>\r
-    <parameter name="replacement" value="`$tmp.tunnel-name`"/>\r
-</execute><set>\r
-<parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vBRG-name` " />\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.xconnect.templatefile`" />\r
-    <parameter name='restapiUrl' value="`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url + '/v3po:l2' `" />\r
-    <parameter name='restapiUser' value='`$prop.honeycomb.user`' />\r
-    <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />\r
-    <parameter name='format' value='json' />\r
-    <parameter name='httpMethod' value='PUT' />\r
-    <parameter name="responsePrefix" value="honeycomb-vnf" />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><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 md-sal for tunnelxconn-allotted-resource" />\r
-</return></outcome><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 updating md-sal for tunnelxconn-allotted-resource" />\r
-</return></outcome></execute><set>\r
-<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
-<parameter name='tunnelxconn-object-path' value="`$tmp.ar.self-link`"/>\r
-<parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
- + $tunnelxconn-topology-operation-input.service-information.service-instance-id\r
- + '/service-data/service-topology/'`"/>\r
\r
-</set><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></block></method></service-logic>\r
+                            -->\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.honeycomb.url`"/>\r
+                <parameter name="outputPath" value="tmp.honeycomb.url"/>\r
+                <parameter name="target" value="{honeycomb-instance-ip}"/>\r
+                <parameter name="replacement" value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-mgmt-ip`"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vG-name` " />\r
+                <parameter name='tmp.tunnel-dest-ip' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vg-ip` " />\r
+                <parameter name='tmp.tunnel-src-ip' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-bearer-ip` " />\r
+                <parameter name='tmp.tunnel-vni' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vni` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.vpp-honeycomb`"/>\r
+                <parameter name="outputPath" value="tmp.vpp-honeycomb-url"/>\r
+                <parameter name="target" value="{tunnel-name}"/>\r
+                <parameter name="replacement" value="`$tmp.tunnel-name`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.vxlan-tunnel.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url`' />\r
+                <parameter name='restapiUser' value='`$prop.honeycomb.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='PUT' />\r
+                <parameter name="responsePrefix" value="honeycomb-vnf" />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />\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 updating md-sal for tunnelxconn-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vBRG-name` " />\r
+                <parameter name='tmp.tunnel-dest-ip' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip` " />\r
+                <parameter name='tmp.tunnel-src-ip' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-lan-ip` " />\r
+                <parameter name='tmp.tunnel-vni' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vni` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.vpp-honeycomb`"/>\r
+                <parameter name="outputPath" value="tmp.vpp-honeycomb-url"/>\r
+                <parameter name="target" value="{tunnel-name}"/>\r
+                <parameter name="replacement" value="`$tmp.tunnel-name`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.vxlan-tunnel.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url`' />\r
+                <parameter name='restapiUser' value='`$prop.honeycomb.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='PUT' />\r
+                <parameter name="responsePrefix" value="honeycomb-vnf" />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />\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 updating md-sal for tunnelxconn-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vG-name` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.xconnect.templatefile`" />\r
+                <parameter name='restapiUrl' value="`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url + '/v3po:l2' `" />\r
+                <parameter name='restapiUser' value='`$prop.honeycomb.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='PUT' />\r
+                <parameter name="responsePrefix" value="honeycomb-vnf" />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />\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 updating md-sal for tunnelxconn-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vG-name` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.vpp-honeycomb`"/>\r
+                <parameter name="outputPath" value="tmp.vpp-honeycomb-url"/>\r
+                <parameter name="target" value="{tunnel-name}"/>\r
+                <parameter name="replacement" value="`$tmp.tunnel-name`"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vBRG-name` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.xconnect.templatefile`" />\r
+                <parameter name='restapiUrl' value="`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url + '/v3po:l2' `" />\r
+                <parameter name='restapiUser' value='`$prop.honeycomb.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='PUT' />\r
+                <parameter name="responsePrefix" value="honeycomb-vnf" />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />\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 updating md-sal for tunnelxconn-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
+                <parameter name='tunnelxconn-object-path' value="`$tmp.ar.self-link`"/>\r
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/' + $tunnelxconn-topology-operation-input.service-information.service-instance-id + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index f561acb..39443d5 100755 (executable)
-<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}'><method rpc='vf-module-topology-operation-assign' mode='sync'>\r
-<block atomic="true"><switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
-<outcome value='CreateVfModuleInstance'>\r
-<block>\r
-</block></outcome><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 'CreateVfModuleInstance'" />\r
-</return></outcome></switch><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from VF_MODULE_MODEL WHERE customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\r
-  pfx='db.vf-module-model'>\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 reading VF_MODULE_MODEL table" />\r
-</return></outcome><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 module customization UUID ' + $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`" />\r
-</return></outcome></get-resource><set>\r
-<parameter name='vnf-index' value='-1' />\r
-</set><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></outcome><outcome value='Other'>\r
-<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
-<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\r
-<outcome value='true'>\r
-<block>\r
-<set>\r
-<parameter name='vnf-index' value='`$idx`' />\r
-</set><break></break></block></outcome></switch></for></outcome></switch><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></outcome></switch><switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status`'>\r
-<outcome value='Created'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'VNF order status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status + ' but should be Created'`" />\r
-</return></outcome></switch><switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
-<outcome value=''>\r
-<set>\r
-<parameter name='vf-module-index' value='0' />\r
-</set></outcome><outcome value='Other'>\r
-<block>\r
-<set>\r
-<parameter name='vf-module-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
-</set><for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
-<switch test='`$vf-module-topology-operation-input.vf-module-information.vf-module-id == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id`'>\r
-<outcome value='true'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'VF module id ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id\r
-       + ' already exists, and status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-level-oper-status.order-status`" />\r
-</return></outcome></switch></for></block></outcome></switch><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-module-index + 1`' />\r
-</set><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'\r
-   value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
-</set><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
-<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`' />\r
-<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-type' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-type`' />\r
-<parameter name='tmp.vf-module-topology.tenant' value='`$vf-module-topology-operation-input.vf-module-request-input.tenant`' />\r
-<parameter name='tmp.vf-module-topology.aic-cloud-region' value='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`' />\r
-</set><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="cloud-region" \r
-               key="cloud-region.cloud-owner = 'CloudOwner' AND \r
-                    cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region"\r
-        pfx='aai.cloud-region' local-only='false' >\r
-\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="Cloud region not found in AAI" />\r
-</return></outcome><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 retrieving cloud region from AAI" />\r
-</return></outcome></get-resource><for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
-<switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\r
-<outcome value='complex'>\r
-<block atomic="true"><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
-   <parameter name='ctx_memory_result_key' value='aai-uid-split' />\r
-   <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\r
-   <parameter name='regex' value='/' />\r
-</execute><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli'\r
-   value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\r
-</set><break></break></block></outcome></switch></for><switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli`'>\r
-<outcome value=''><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 aic-clli in AAI for aic-cloud-region ' + $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`" />\r
-</return></outcome></switch><switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`'>\r
-<outcome value=''><set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\r
-  value='`$db.vf-module-model.invariant-uuid`' />\r
-</set></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\r
-  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\r
-</set></outcome></switch><switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`'>\r
-<outcome value=''><set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\r
-  value='`$db.vf-module-model.uuid`' />\r
-</set></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\r
-  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`' />\r
-</set></outcome></switch><switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`'>\r
-<outcome value=''><set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-version'\r
-  value='`$db.vf-module-model.version`' />\r
-</set></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-version'\r
-  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\r
-</set></outcome></switch><switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`'>\r
-<outcome value=''><set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-name'\r
-  value='`$db.vf-module-model.name`' />\r
-</set></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-name'\r
-  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`' />\r
-</set></outcome></switch><set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-customization-uuid'\r
-  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\r
-</set><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-parameters.'\r
-  value='vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.' />\r
-</set><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from VF_MODULE_TO_VFC_MAPPING WHERE vf_module_customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\r
-  pfx='db.vf-module-to-vfc-mapping[]'>\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 reading VF_MODULE_TO_VFC_MAPPING table" />\r
-</return></outcome><outcome value='not-found'>\r
-<set>\r
-<parameter name='db.vf-module-to-vfc-mapping_length' value='0' />\r
-</set></outcome></get-resource><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm_length'\r
-  value='`$db.vf-module-to-vfc-mapping_length`' />\r
-</set><for index='vm-type-index' start='0' end='`$db.vf-module-to-vfc-mapping_length`' >\r
-<block atomic="true"><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from VFC_MODEL WHERE customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\r
-  pfx='db.vfc-model'>\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 reading VFC_MODEL table" />\r
-</return></outcome><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 entries found in VFC_MODEL table for customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`" />\r
-</return></outcome></get-resource><switch test="$db.vfc-model.ecomp-generated-naming == 'Y'">\r
-<outcome value='false'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'ECOMP generated naming is not Y for VFC customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`" />\r
-</return></outcome></switch><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type'\r
-   value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code'\r
-   value='`$db.vfc-model.nfc-naming-code`' />\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type-tag'\r
-   value='`$db.vfc-model.vm-type-tag`' />\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count'\r
-   value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\r
-</set><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length'\r
-  value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\r
-</set><for index='vm-index' start='0' end='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >\r
-<block atomic="true"><set>\r
-<parameter name='generate-unique-name-input.index-table-name' value='VM_NAME_INDEX' />\r
-<parameter name='generate-unique-name-input.index-table-prefix-column' value='vm_name_prefix' />\r
-<parameter name='generate-unique-name-input.name-table-type' value='VM_INSTANCE' />\r
-<parameter name='generate-unique-name-input.prefix' value="`$service-data.vnfs.vnf[$vnf-index].vnf-name + $db.vfc-model.nfc-naming-code`" />\r
-<parameter name='generate-unique-name-input.index-length' value='3' />\r
-</set><call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' 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="`$generate-unique-name-output.error-message`" />\r
-</return></outcome><outcome value='success'>\r
-<set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' value='`$generate-unique-name-output.generated-name`' />\r
-</set></outcome></call></block></for><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from VFC_TO_NETWORK_ROLE_MAPPING WHERE vfc_customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\r
-  pfx='db.vfc-to-network-role-mapping[]'>\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 reading VFC_TO_NETWORK_ROLE_MAPPING table" />\r
-</return></outcome><outcome value='not-found'>\r
-<set>\r
-<parameter name='db.vfc-to-network-role-mapping_length' value='0' />\r
-</set></outcome></get-resource><for index='network-role-index' start='0' end='`$db.vfc-to-network-role-mapping_length`' >\r
-<block atomic="true"><set>\r
-<parameter name='network-index' value='-1' />\r
-</set><for silentFailure='true' index='idx' start='0' end='`$service-data.networks.network_length`' >\r
-<switch test='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-role == $db.vfc-to-network-role-mapping[$network-role-index].network-role`'>\r
-<outcome value='true'>\r
-<block>\r
-<set>\r
-<parameter name='network-index' value='`$idx`' />\r
-</set><break></break></block></outcome></switch></for><switch test='`$network-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="`'No network found in MD-SAL with network-role ' + $db.vfc-to-network-role-mapping[$network-role-index].network-role`" />\r
-</return></outcome></switch><!--This isn't a node in MD-SAL, but we need to save this for later when we are doing EIPAM processing--><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id'\r
-  value='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-id`' />\r
-</set><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role'\r
-   value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role-tag'\r
-   value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role-tag`' />\r
-</set><switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`'>\r
-<outcome value=''><set>\r
-<parameter name='network-information-index' value='-1' />\r
-\r
-</set></outcome><outcome value='4'>\r
-<block atomic="true"><set>\r
-<parameter name='network-information-index' value='0' />\r
-</set><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-version'\r
-   value='4' />\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].use-dhcp'\r
-   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`' />\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-count'\r
-   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-count`' />\r
-</set></block></outcome></switch><switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`'>\r
-<outcome value=''><block>\r
-</block></outcome><outcome value='6'>\r
-<block atomic="true"><set>\r
-<parameter name='network-information-index' value='`$network-information-index + 1`' />\r
-</set><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-version'\r
-   value='6' />\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].use-dhcp'\r
-   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`' />\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-count'\r
-   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-count`' />\r
-</set></block></outcome></switch><switch test='`$network-information-index`'>\r
-<outcome value='-1'><block>\r
-</block></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length'\r
-   value='`$network-information-index + 1`' />\r
-</set></outcome></switch></block></for><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\r
-  value='`$db.vfc-to-network-role-mapping_length`' />\r
-</set></block></for><set>\r
-<parameter name='plans-index' value='0' />\r
-</set><for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
-<block atomic="true"><for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
-<block atomic="true"><for index='ip-version-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length`' >\r
-<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].use-dhcp`'>\r
-<outcome value='N'>\r
-<block atomic="true"><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from EIPAM_IP_SUBNETS WHERE network_id = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id\r
-    AND address_family = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version'\r
-  pfx='db.eipam-ip-subnets[]'>\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 reading EIPAM_IP_SUBNETS table" />\r
-</return></outcome><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 entries found in EIPAM_IP_SUBNETS table for network ID '\r
-        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id\r
-        + ' and address family ' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version`" />\r
-</return></outcome></get-resource><set>\r
-<parameter name='max-level' value='-1' />\r
-</set><for index='subnets-index' start='0' end='`$db.eipam-ip-subnets_length`' >\r
-<block atomic="true"><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from EIPAM_IP_SUBNET_KEYS WHERE entity_id = $db.eipam-ip-subnets[$subnets-index].entity-id'\r
-  pfx='db.eipam-ip-subnet-keys[]'>\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 reading EIPAM_IP_SUBNET_KEYS table" />\r
-</return></outcome><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 entries found in EIPAM_IP_SUBNET_KEYS table for entity ID '\r
-        + $db.eipam-ip-subnets[$subnets-index].entity-id`" /></return></outcome></get-resource><for index='keys-index' start='0' end='`$db.eipam-ip-subnet-keys_length`' >\r
-<block atomic="true"><switch test='`$db.eipam-ip-subnet-keys[$keys-index].level &gt; $max-level`'>\r
-<outcome value='true'>\r
-<set>\r
-<parameter name='max-level' value='`$db.eipam-ip-subnet-keys[$keys-index].level`' />\r
-<parameter name='selected-entity-id' value='`$db.eipam-ip-subnet-keys[$keys-index].entity-id`' />\r
-<parameter name='selected-plan-name' value='`$db.eipam-ip-subnets[$subnets-index].plan-name`' />\r
-</set></outcome></switch></block></for><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from EIPAM_IP_SUBNET_KEYS WHERE entity_id = $selected-entity-id order by level'\r
-  pfx='db.eipam-ip-subnet-keys[]'>\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 reading EIPAM_IP_SUBNET_KEYS table" />\r
-</return></outcome><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 entries found in EIPAM_IP_SUBNET_KEYS table for entity ID '\r
-        + $selected-entity-id`" /></return></outcome></get-resource><for index='request-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-count`' >\r
-<block atomic="true"><for index='level-index' start='0' end='`$db.eipam-ip-subnet-keys_length`' >\r
-<set>\r
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools[$level-index].key-name'\r
-   value='`$db.eipam-ip-subnet-keys[$level-index].key-name`' />\r
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools[$level-index].key-value'\r
-   value='`$db.eipam-ip-subnet-keys[$level-index].key-value`' />\r
-</set></for><set>\r
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools_length'\r
-   value='`$db.eipam-ip-subnet-keys_length`' />\r
-</set><set>\r
-<parameter name='generate-unique-name-input.index-table-name' value='EIPAM_CLIENT_KEY_INDEX' />\r
-<parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />\r
-<parameter name='generate-unique-name-input.name-table-type' value='CLIENT_KEY' />\r
-<parameter name='generate-unique-name-input.prefix' value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code + ':' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id + ':' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version + ':'`" />\r
-<parameter name='generate-unique-name-input.index-length' value='' />\r
-</set><call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' 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="`$generate-unique-name-output.error-message`" />\r
-</return></outcome></call><set>\r
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].client-key'\r
-   value='`$generate-unique-name-output.generated-name`' />\r
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].info'\r
-   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />\r
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].mask'\r
-   value='32' />\r
-</set></block></for><set>\r
-<parameter name='eipam-ip-block.plans[$plans-index].requests_length'\r
-   value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-count`' />\r
-</set></block></for><set>\r
-<parameter name='eipam-ip-block.plans[$plans-index].plan-name' value='`$selected-plan-name`' />\r
-<parameter name='eipam-ip-block.plans[$plans-index].address-family'\r
-   value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version`' />\r
-</set><set>\r
-<parameter name='plans-index' value='`$plans-index + 1`' />\r
-</set></block></outcome></switch></for></block></for></block></for><set>\r
-<parameter name='eipam-ip-block.plans_length' value='`$plans-index`' />\r
-</set><!--EIPAM plug-in needs this attribute set with this name--><set>\r
-<parameter name='service-data.service-information.service-type' value='`$service-data.service-information.subscription-service-type`' />\r
-</set><switch test='`$plans-index &gt; 0`'>\r
-<outcome value='true'>\r
-<execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="assignIPAddress"><outcome value='failure'><return status="failure">\r
-       <parameter name="ack-final" value="Y" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while obtaining new address blocks from EIPAM." />\r
-</return></outcome></execute></outcome></switch><set>\r
-<parameter name='plans-index' value='0' />\r
-</set><for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
-<for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
-<for index='ip-version-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length`' >\r
-<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].use-dhcp`'>\r
-<outcome value='N'>\r
-<block atomic="true"><for index='ip-index' start='0' end='`$eipam-ip-block.plans[$plans-index].requests_length`' >\r
-<set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].network-ips.network-ip[$ip-index]'\r
-  value='`$eipam-ip-block.plans[$plans-index].requests[$ip-index].ip-prefix`' />\r
-</set></for><set>\r
-<parameter name='plans-index' value='`$plans-index + 1`' />\r
-</set></block></outcome></switch></for></for></for><set>\r
-<parameter name='vf-module-object-path'\r
- value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
- + $service-data.service-topology.service-topology-identifier.service-instance-id\r
- + '/service-data/vnfs/vnf/'\r
- + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
- + '/vnf-data/vf-modules/vf-module/'\r
- + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
- + '/vf-module-data/vf-module-topology/'`"/>\r
-\r
-</set><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
-   resource="vf-module"\r
-   key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
-      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
-   force="true" pfx="tmp.AnAI-data">\r
-<parameter name="vf-module-name" value="`$tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name`" />\r
-<parameter name="model-invariant-id" value="`$tmp.vf-module-topology.onap-model-information.model-invariant-uuid`" />\r
-<parameter name="model-version-id" value="`$tmp.vf-module-topology.onap-model-information.model-uuid`" />\r
-<parameter name="model-customization-id" value="`$tmp.vf-module-topology.onap-model-information.model-customization-uuid`" />\r
-<parameter name="selflink" value="`$vf-module-object-path`" />\r
-<outcome value='failure'>\r
-<block atomic="true"><switch test='`$plans-index &gt; 0`'>\r
-<outcome value='true'>\r
-<block atomic="true"><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><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" ><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 on rollback" />\r
-</return></outcome></update><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 on rollback" />\r
-</return></outcome></execute></block></outcome></switch><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 vf-module in AAI" />\r
-</return></block></outcome><outcome value='not-found'>\r
-<block atomic="true"><switch test='`$plans-index &gt; 0`'>\r
-<outcome value='true'>\r
-<block atomic="true"><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><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" ><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 on rollback" />\r
-</return></outcome></update><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 on rollback" />\r
-</return></outcome></execute></block></outcome></switch><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-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`" />\r
-</return></block></outcome></update><for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
-<for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
-<save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
-   resource="vf-module:relationship-list"\r
-   key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
-      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
-   force="true" pfx="tmp.AnAI-data">\r
-    <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
-    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="l3-network.network-id" />\r
-    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id`" />\r
-<outcome value='failure'>\r
-<block atomic="true"><switch test='`$plans-index &gt; 0`'>\r
-<outcome value='true'>\r
-<block atomic="true"><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><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" ><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 on rollback" />\r
-</return></outcome></update><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 on rollback" />\r
-</return></outcome></execute></block></outcome></switch><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 vf-module relationships in AAI" />\r
-</return></block></outcome><outcome value='not-found'>\r
-<block atomic="true"><switch test='`$plans-index &gt; 0`'>\r
-<outcome value='true'>\r
-<block atomic="true"><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><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" ><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 on rollback" />\r
-</return></outcome></update><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 on rollback" />\r
-</return></outcome></execute></block></outcome></switch><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-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`" />\r
-</return></block></outcome></save></for></for><for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
-<for index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\r
-<block atomic="true"><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 = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' ><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></outcome></delete><save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
-key="INSERT INTO VIPR_CONFIGURATION (vnf_id, vnf_name, ecomp_service_instance_id, vm_name, cloud_region_id, cloud_owner) VALUES ( $service-data.vnfs.vnf[$vnf-index].vnf-id , $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name , $service-data.service-information.service-instance-id , $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index] , $tmp.vf-module-topology.aic-cloud-region , 'CloudOwner')" ><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></outcome></save></block></for></for><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.' value='$tmp.vf-module-topology.' />\r
-</set><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\r
-   value='$vf-module-topology-operation-input.sdnc-request-header.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\r
-   value='$vf-module-topology-operation-input.request-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\r
-   value='$vf-module-topology-operation-input.service-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\r
-   value='$vf-module-topology-operation-input.vnf-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\r
-   value='$vf-module-topology-operation-input.vf-module-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\r
-   value='$vf-module-topology-operation-input.vf-module-request-input.' />\r
-\r
-</set><call module='GENERIC-RESOURCE-API' rpc='gw-vfmodule-update' mode='sync' >\r
-</call><set>\r
-<parameter name='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'\r
-  value='PendingCreate' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\r
-  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\r
-  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
-</set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
-<parameter name='filename' value='/var/tmp/bgb-vfmodule.log' />\r
-</execute><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></block></method></service-logic>\r
+<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='1.2.0-SNAPSHOT-INT110901'>\r
+    <method rpc='vf-module-topology-operation-assign' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='CreateVfModuleInstance'>\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 'CreateVfModuleInstance'" />\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_MODULE_MODEL WHERE customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\r
+                          pfx='db.vf-module-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_MODULE_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 module customization UUID ' + $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <set>\r
+                <parameter name='vnf-index' value='-1' />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="There are no VNFs defined in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                        <switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='vnf-index' value='`$idx`' />\r
+                                    </set>\r
+                                    <break></break>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </outcome>\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>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status`'>\r
+                <outcome value='Created'>\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="`'VNF order status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status + ' but should be Created'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='vf-module-index' value='0' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vf-module-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                            <switch test='`$vf-module-topology-operation-input.vf-module-information.vf-module-id == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id`'>\r
+                                <outcome value='true'>\r
+                                    <return status='failure'>\r
+                                        <parameter name='ack-final' value='Y'/>\r
+                                        <parameter name="error-code" value="500" />\r
+                                        <parameter name="error-message" value="`'VF module id ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id + ' already exists, and status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-level-oper-status.order-status`" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-module-index + 1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'\r
+                           value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                <parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`' />\r
+                <parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-type' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-type`' />\r
+                <parameter name='tmp.vf-module-topology.tenant' value='`$vf-module-topology-operation-input.vf-module-request-input.tenant`' />\r
+                <parameter name='tmp.vf-module-topology.aic-cloud-region' value='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`' />\r
+            </set>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                          resource="cloud-region"\r
+                          key="cloud-region.cloud-owner = 'CloudOwner' AND\r
+             cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region"\r
+                          pfx='aai.cloud-region' local-only='false' >\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="Cloud region not found in AAI" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error retrieving cloud region from AAI" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
+                <switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\r
+                    <outcome value='complex'>\r
+                        <block atomic="true">\r
+                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                                <parameter name='ctx_memory_result_key' value='aai-uid-split' />\r
+                                <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\r
+                                <parameter name='regex' value='/' />\r
+                            </execute>\r
+                            <set>\r
+                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli'\r
+                                           value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\r
+                            </set>\r
+                            <break></break>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\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.aic-clli`'>\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="`'Unable to find aic-clli in AAI for aic-cloud-region ' + $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\r
+                                   value='`$db.vf-module-model.invariant-uuid`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\r
+                                   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\r
+                                   value='`$db.vf-module-model.uuid`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\r
+                                   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='tmp.vf-module-topology.onap-model-information.model-version'\r
+                                   value='`$db.vf-module-model.version`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='tmp.vf-module-topology.onap-model-information.model-version'\r
+                                   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='tmp.vf-module-topology.onap-model-information.model-name'\r
+                                   value='`$db.vf-module-model.name`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='tmp.vf-module-topology.onap-model-information.model-name'\r
+                                   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='tmp.vf-module-topology.onap-model-information.model-customization-uuid'\r
+                           value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.vf-module-topology.vf-module-parameters.'\r
+                           value='vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.' />\r
+            </set>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                          key='SELECT * from VF_MODULE_TO_VFC_MAPPING WHERE vf_module_customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\r
+                          pfx='db.vf-module-to-vfc-mapping[]'>\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_MODULE_TO_VFC_MAPPING table" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <set>\r
+                        <parameter name='db.vf-module-to-vfc-mapping_length' value='0' />\r
+                    </set>\r
+                </outcome>\r
+            </get-resource>\r
+            <set>\r
+                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm_length'\r
+                           value='`$db.vf-module-to-vfc-mapping_length`' />\r
+            </set>\r
+            <for index='vm-type-index' start='0' end='`$db.vf-module-to-vfc-mapping_length`' >\r
+                <block atomic="true">\r
+                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                                  key='SELECT * from VFC_MODEL WHERE customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\r
+                                  pfx='db.vfc-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 VFC_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 entries found in VFC_MODEL table for customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </get-resource>\r
+                    <switch test="$db.vfc-model.ecomp-generated-naming == 'Y'">\r
+                        <outcome value='false'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'ECOMP generated naming is not Y for VFC customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                    <set>\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type'\r
+                                   value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code'\r
+                                   value='`$db.vfc-model.nfc-naming-code`' />\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type-tag'\r
+                                   value='`$db.vfc-model.vm-type-tag`' />\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count'\r
+                                   value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length'\r
+                                   value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\r
+                    </set>\r
+                    <for index='vm-index' start='0' end='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >\r
+                        <block atomic="true">\r
+                            <set>\r
+                                <parameter name='generate-unique-name-input.index-table-name' value='VM_NAME_INDEX' />\r
+                                <parameter name='generate-unique-name-input.index-table-prefix-column' value='vm_name_prefix' />\r
+                                <parameter name='generate-unique-name-input.name-table-type' value='VM_INSTANCE' />\r
+                                <parameter name='generate-unique-name-input.prefix' value="`$service-data.vnfs.vnf[$vnf-index].vnf-name + $db.vfc-model.nfc-naming-code`" />\r
+                                <parameter name='generate-unique-name-input.index-length' value='3' />\r
+                            </set>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' 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="`$generate-unique-name-output.error-message`" />\r
+                                    </return>\r
+                                </outcome>\r
+                                <outcome value='success'>\r
+                                    <set>\r
+                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' value='`$generate-unique-name-output.generated-name`' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </call>\r
+                        </block>\r
+                    </for>\r
+                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                                  key='SELECT * from VFC_TO_NETWORK_ROLE_MAPPING WHERE vfc_customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\r
+                                  pfx='db.vfc-to-network-role-mapping[]'>\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 VFC_TO_NETWORK_ROLE_MAPPING table" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <set>\r
+                                <parameter name='db.vfc-to-network-role-mapping_length' value='0' />\r
+                            </set>\r
+                        </outcome>\r
+                    </get-resource>\r
+                    <for index='network-role-index' start='0' end='`$db.vfc-to-network-role-mapping_length`' >\r
+                        <block atomic="true">\r
+                            <set>\r
+                                <parameter name='network-index' value='-1' />\r
+                            </set>\r
+                            <for silentFailure='true' index='idx' start='0' end='`$service-data.networks.network_length`' >\r
+                                <switch test='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-role == $db.vfc-to-network-role-mapping[$network-role-index].network-role`'>\r
+                                    <outcome value='true'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='network-index' value='`$idx`' />\r
+                                            </set>\r
+                                            <break></break>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                            <switch test='`$network-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="`'No network found in MD-SAL with network-role ' + $db.vfc-to-network-role-mapping[$network-role-index].network-role`" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                            <!--This isn't a node in MD-SAL, but we need to save this for later when we are doing EIPAM processing-->\r
+                            <set>\r
+                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id'\r
+                                           value='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-id`' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role'\r
+                                           value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role-tag'\r
+                                           value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role-tag`' />\r
+                            </set>\r
+                            <switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`'>\r
+                                <outcome value=''>\r
+                                    <set>\r
+                                        <parameter name='network-information-index' value='-1' />\r
+                                    </set>\r
+                                </outcome>\r
+                                <outcome value='4'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='network-information-index' value='0' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-version'\r
+                                                       value='4' />\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].use-dhcp'\r
+                                                       value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`' />\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-count'\r
+                                                       value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-count`' />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`'>\r
+                                <outcome value=''>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='6'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='network-information-index' value='`$network-information-index + 1`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-version'\r
+                                                       value='6' />\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].use-dhcp'\r
+                                                       value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`' />\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-count'\r
+                                                       value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-count`' />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$network-information-index`'>\r
+                                <outcome value='-1'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <set>\r
+                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length'\r
+                                                   value='`$network-information-index + 1`' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                        </block>\r
+                    </for>\r
+                    <set>\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\r
+                                   value='`$db.vfc-to-network-role-mapping_length`' />\r
+                    </set>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='plans-index' value='0' />\r
+            </set>\r
+            <for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                <block atomic="true">\r
+                    <for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
+                        <block atomic="true">\r
+                            <for index='ip-version-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length`' >\r
+                                <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].use-dhcp`'>\r
+                                    <outcome value='N'>\r
+                                        <block atomic="true">\r
+                                            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                                                          key='SELECT * from EIPAM_IP_SUBNETS WHERE network_id = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id\r
+                                                          AND address_family = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version'\r
+                                                          pfx='db.eipam-ip-subnets[]'>\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 EIPAM_IP_SUBNETS 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 entries found in EIPAM_IP_SUBNETS table for network ID ' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id + ' and address family ' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                            <set>\r
+                                                <parameter name='max-level' value='-1' />\r
+                                            </set>\r
+                                            <for index='subnets-index' start='0' end='`$db.eipam-ip-subnets_length`' >\r
+                                                <block atomic="true">\r
+                                                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                                                                  key='SELECT * from EIPAM_IP_SUBNET_KEYS WHERE entity_id = $db.eipam-ip-subnets[$subnets-index].entity-id'\r
+                                                                  pfx='db.eipam-ip-subnet-keys[]'>\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 EIPAM_IP_SUBNET_KEYS 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 entries found in EIPAM_IP_SUBNET_KEYS table for entity ID ' + $db.eipam-ip-subnets[$subnets-index].entity-id`" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </get-resource>\r
+                                                    <for index='keys-index' start='0' end='`$db.eipam-ip-subnet-keys_length`' >\r
+                                                        <block atomic="true">\r
+                                                            <switch test='`$db.eipam-ip-subnet-keys[$keys-index].level &gt; $max-level`'>\r
+                                                                <outcome value='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='max-level' value='`$db.eipam-ip-subnet-keys[$keys-index].level`' />\r
+                                                                        <parameter name='selected-entity-id' value='`$db.eipam-ip-subnet-keys[$keys-index].entity-id`' />\r
+                                                                        <parameter name='selected-plan-name' value='`$db.eipam-ip-subnets[$subnets-index].plan-name`' />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </block>\r
+                                                    </for>\r
+                                                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                                                                  key='SELECT * from EIPAM_IP_SUBNET_KEYS WHERE entity_id = $selected-entity-id order by level'\r
+                                                                  pfx='db.eipam-ip-subnet-keys[]'>\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 EIPAM_IP_SUBNET_KEYS 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 entries found in EIPAM_IP_SUBNET_KEYS table for entity ID ' + $selected-entity-id`" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </get-resource>\r
+                                                    <for index='request-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-count`' >\r
+                                                        <block atomic="true">\r
+                                                            <for index='level-index' start='0' end='`$db.eipam-ip-subnet-keys_length`' >\r
+                                                                <set>\r
+                                                                    <parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools[$level-index].key-name'\r
+                                                                               value='`$db.eipam-ip-subnet-keys[$level-index].key-name`' />\r
+                                                                    <parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools[$level-index].key-value'\r
+                                                                               value='`$db.eipam-ip-subnet-keys[$level-index].key-value`' />\r
+                                                                </set>\r
+                                                            </for>\r
+                                                            <set>\r
+                                                                <parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools_length'\r
+                                                                           value='`$db.eipam-ip-subnet-keys_length`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='generate-unique-name-input.index-table-name' value='EIPAM_CLIENT_KEY_INDEX' />\r
+                                                                <parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />\r
+                                                                <parameter name='generate-unique-name-input.name-table-type' value='CLIENT_KEY' />\r
+                                                                <parameter name='generate-unique-name-input.prefix' value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code + ':' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id + ':' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version + ':'`" />\r
+                                                                <parameter name='generate-unique-name-input.index-length' value='' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' 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="`$generate-unique-name-output.error-message`" />\r
+                                                                    </return>\r
+                                                                </outcome>\r
+                                                            </call>\r
+                                                            <set>\r
+                                                                <parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].client-key'\r
+                                                                           value='`$generate-unique-name-output.generated-name`' />\r
+                                                                <parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].info'\r
+                                                                           value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />\r
+                                                                <parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].mask'\r
+                                                                           value='32' />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </for>\r
+                                                    <set>\r
+                                                        <parameter name='eipam-ip-block.plans[$plans-index].requests_length'\r
+                                                                   value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-count`' />\r
+                                                    </set>\r
+                                                </block>\r
+                                            </for>\r
+                                            <set>\r
+                                                <parameter name='eipam-ip-block.plans[$plans-index].plan-name' value='`$selected-plan-name`' />\r
+                                                <parameter name='eipam-ip-block.plans[$plans-index].address-family'\r
+                                                           value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version`' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='plans-index' value='`$plans-index + 1`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                        </block>\r
+                    </for>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='eipam-ip-block.plans_length' value='`$plans-index`' />\r
+            </set>\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
+            <switch test='`$plans-index &gt; 0`'>\r
+                <outcome value='true'>\r
+                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="assignIPAddress">\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="An error occured while obtaining new address blocks from EIPAM." />\r
+                            </return>\r
+                        </outcome>\r
+                    </execute>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='plans-index' value='0' />\r
+            </set>\r
+            <for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                <for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
+                    <for index='ip-version-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length`' >\r
+                        <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].use-dhcp`'>\r
+                            <outcome value='N'>\r
+                                <block atomic="true">\r
+                                    <for index='ip-index' start='0' end='`$eipam-ip-block.plans[$plans-index].requests_length`' >\r
+                                        <set>\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].network-ips.network-ip[$ip-index]'\r
+                                                       value='`$eipam-ip-block.plans[$plans-index].requests[$ip-index].ip-prefix`' />\r
+                                        </set>\r
+                                    </for>\r
+                                    <set>\r
+                                        <parameter name='plans-index' value='`$plans-index + 1`' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </for>\r
+            </for>\r
+            <set>\r
+                <parameter name='vf-module-object-path'\r
+                           value="`'restconf/config/GENERIC-RESOURCE-API:services/service/' + $service-data.service-topology.service-topology-identifier.service-instance-id + '/service-data/vnfs/vnf/' + $service-data.vnfs.vnf[$vnf-index].vnf-id + '/vnf-data/vf-modules/vf-module/' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id + '/vf-module-data/vf-module-topology/'`"/>\r
+            </set>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                    resource="vf-module"\r
+                    key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
+                    AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
+                    force="true" pfx="tmp.AnAI-data">\r
+                <parameter name="vf-module-name" value="`$tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name`" />\r
+                <parameter name="model-invariant-id" value="`$tmp.vf-module-topology.onap-model-information.model-invariant-uuid`" />\r
+                <parameter name="model-version-id" value="`$tmp.vf-module-topology.onap-model-information.model-uuid`" />\r
+                <parameter name="model-customization-id" value="`$tmp.vf-module-topology.onap-model-information.model-customization-uuid`" />\r
+                <parameter name="selflink" value="`$vf-module-object-path`" />\r
+                <outcome value='failure'>\r
+                    <block atomic="true">\r
+                        <switch test='`$plans-index &gt; 0`'>\r
+                            <outcome value='true'>\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 on rollback" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </update>\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 on rollback" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </execute>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\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 vf-module in AAI" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block atomic="true">\r
+                        <switch test='`$plans-index &gt; 0`'>\r
+                            <outcome value='true'>\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 on rollback" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </update>\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 on rollback" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </execute>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\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-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </update>\r
+            <for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                <for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
+                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                          resource="vf-module:relationship-list"\r
+                          key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
+                          AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
+                          force="true" pfx="tmp.AnAI-data">\r
+                        <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
+                        <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="l3-network.network-id" />\r
+                        <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id`" />\r
+                        <outcome value='failure'>\r
+                            <block atomic="true">\r
+                                <switch test='`$plans-index &gt; 0`'>\r
+                                    <outcome value='true'>\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 on rollback" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </update>\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 on rollback" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </execute>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\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 vf-module relationships in AAI" />\r
+                                </return>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <block atomic="true">\r
+                                <switch test='`$plans-index &gt; 0`'>\r
+                                    <outcome value='true'>\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 on rollback" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </update>\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 on rollback" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </execute>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\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-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`" />\r
+                                </return>\r
+                            </block>\r
+                        </outcome>\r
+                    </save>\r
+                </for>\r
+            </for>\r
+            <for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                <for index='vm-index' start='0' end='`$tmp.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 = $tmp.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>\r
+                        </delete>\r
+                        <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+                              key="INSERT INTO VIPR_CONFIGURATION (vnf_id, vnf_name, ecomp_service_instance_id, vm_name, cloud_region_id, cloud_owner) VALUES ( $service-data.vnfs.vnf[$vnf-index].vnf-id , $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name , $service-data.service-information.service-instance-id , $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index] , $tmp.vf-module-topology.aic-cloud-region , 'CloudOwner')" >\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
+                        </save>\r
+                    </block>\r
+                </for>\r
+            </for>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.' value='$tmp.vf-module-topology.' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\r
+                           value='$vf-module-topology-operation-input.sdnc-request-header.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\r
+                           value='$vf-module-topology-operation-input.request-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\r
+                           value='$vf-module-topology-operation-input.service-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\r
+                           value='$vf-module-topology-operation-input.vnf-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\r
+                           value='$vf-module-topology-operation-input.vf-module-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\r
+                           value='$vf-module-topology-operation-input.vf-module-request-input.' />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='gw-vfmodule-update' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='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'\r
+                           value='PendingCreate' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\r
+                           value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\r
+                           value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 70cce65..8608ef2 100755 (executable)
-<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}'><method rpc='vnf-topology-operation-assign' mode='sync'>\r
-<block atomic="true"><switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
-<outcome value='CreateVnfInstance'>\r
-<block>\r
-</block></outcome><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 'CreateVnfInstance'" />\r
-</return></outcome></switch><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from VF_MODEL WHERE customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\r
-  pfx='db.vf-model'>\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 reading VF_MODEL table" />\r
-</return></outcome><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 VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`" />\r
-</return></outcome></get-resource><switch test='`$service-data.vnfs.vnf_length`'>\r
-<outcome value=''>\r
-<set>\r
-<parameter name='vnf-index' value='0' />\r
-</set></outcome><outcome value='Other'>\r
-<block>\r
-<set>\r
-<parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\r
-</set><for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
-<switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>\r
-<outcome value='true'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'VNF id ' + $service-data.vnfs.vnf[$idx].vnf-id\r
-      + ' already exists, and has order status ' + $service-data.vnfs.vnf[$idx].vnf-data.vnf-level-oper-status.order-status`" />\r
-</return></outcome></switch></for></block></outcome></switch><set>\r
-<parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />\r
-</set><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id'\r
- value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-type'\r
- value='`$vnf-topology-operation-input.vnf-information.vnf-type`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-type'\r
- value='`$db.vf-model.nf-type`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role'\r
- value='`$db.vf-model.nf-role`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-function'\r
- value='`$db.vf-model.nf-function`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-code'\r
- value='`$db.vf-model.nf-code`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.tenant'\r
- value='`$vnf-topology-operation-input.vnf-request-input.tenant`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-cloud-region'\r
- value='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`' />\r
\r
-</set><switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-name`'>\r
-<outcome value=''><block atomic="true"><switch test='`$db.vf-model.ecomp-generated-naming`'>\r
-<outcome value='Y'><block>\r
-</block></outcome><outcome value='N'><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="No vnf-name was received but ecomp-generated-naming is not Y" />\r
-</return></outcome><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="No vnf-name was received but ecomp-generated-naming is not Y" />\r
-</return></outcome></switch><set>\r
-<parameter name='generate-unique-name-input.index-table-name' value='VNF_NAME_INDEX' />\r
-<parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />\r
-<parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />\r
-<parameter name='generate-unique-name-input.prefix' value="`'z' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + $db.vf-model.nf-code`" />\r
-<parameter name='generate-unique-name-input.index-length' value='2' />\r
-</set><call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' 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="`$generate-unique-name-output.error-message`" />\r
-</return></outcome><outcome value='success'>\r
-<set>\r
-<parameter name='tmp.vnf-name' value='`$generate-unique-name-output.generated-name`' />\r
-</set></outcome></call></block></outcome><outcome value='Other'>\r
-<block atomic="true"><set>\r
-<parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />\r
-<parameter name='generate-unique-name-input.supplied-name' value='`$vnf-topology-operation-input.vnf-request-input.vnf-name`' />\r
-</set><call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' 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="`$generate-unique-name-output.error-message`" />\r
-</return></outcome><outcome value='success'>\r
-<set>\r
-<parameter name='tmp.vnf-name' value="`$vnf-topology-operation-input.vnf-request-input.vnf-name`" />\r
-</set></outcome></call></block></outcome></switch><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id'\r
-   value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
-</set><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name'\r
-   value='`$tmp.vnf-name`' />\r
-</set><switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`'>\r
-<outcome value=''><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\r
-  value='`$db.vf-model.invariant-uuid`' />\r
-</set></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\r
-  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />\r
-</set></outcome></switch><switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`'>\r
-<outcome value=''><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\r
-  value='`$db.vf-model.uuid`' />\r
-</set></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\r
-  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />\r
-</set></outcome></switch><switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`'>\r
-<outcome value=''><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\r
-  value='`$db.vf-model.version`' />\r
-</set></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\r
-  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`' />\r
-</set></outcome></switch><switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`'>\r
-<outcome value=''><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\r
-  value='`$db.vf-model.name`' />\r
-</set></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\r
-  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`' />\r
-</set></outcome></switch><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\r
-  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\r
-</set><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="cloud-region" \r
-               key="cloud-region.cloud-owner = 'CloudOwner' AND \r
-                    cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND\r
-                    depth='0'"\r
-        pfx='aai.cloud-region' local-only='false' >\r
-\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="Cloud region not found in AAI" />\r
-</return></outcome><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 retrieving cloud region from AAI" />\r
-</return></outcome></get-resource><for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
-<switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\r
-<outcome value='complex'>\r
-<block atomic="true"><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
-   <parameter name='ctx_memory_result_key' value='aai-uid-split' />\r
-   <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\r
-   <parameter name='regex' value='/' />\r
-</execute><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli'\r
-  value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\r
-</set><break/></block></outcome></switch></for><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="availability-zones" \r
-               key="cloud-region.cloud-owner = 'CloudOwner' AND \r
-                    cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND\r
-                    depth='0'"\r
-        pfx='aai.az' local-only='false' >\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 retrieving availability zones from AAI" />\r
-</return></outcome></get-resource><switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli`'>\r
-<outcome value=''><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 aic-clli in AAI for aic-cloud-region ' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
-</return></outcome></switch><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from VF_TO_NETWORK_ROLE_MAPPING WHERE vf_customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\r
-  pfx='db.vf-network-role-mapping[]'>\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 reading VF_TO_NETWORK_ROLE_MAPPING table" />\r
-</return></outcome><outcome value='not-found'>\r
-<set>\r
-<parameter name='db.vf-network-role-mapping_length' value='0' />\r
-</set></outcome></get-resource><set>\r
-<parameter name='network-index' value='0' />\r
-</set><for index='role-index' start='0' end='`$db.vf-network-role-mapping_length`'><block atomic="true"><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="l3-networks" \r
-               key="l3-network.network-role = $db.vf-network-role-mapping[$role-index].network-role"\r
-        pfx='aai.l3-network' local-only='false'\r
->\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 active l3-network found in AAI with cloud_region_id '\r
-          + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + ' and network_role '\r
-          + $db.vf-network-role-mapping[$network-index].network-role`" />\r
-</return></outcome><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 retrieving l3-network from AAI" />\r
-</return></outcome></get-resource><set>\r
-<parameter name='l3-network-id' value='-1' />\r
-</set><block>\r
-<for index='db-network-index' start='0' end='`$aai.l3-network.l3-network_length`' >\r
-<switch test='`$aai.l3-network.l3-network[$db-network-index].orchestration-status`'>\r
-<outcome value='PendingCreate'>\r
-<block>\r
-</block></outcome><outcome value='Pending Create'>\r
-<block>\r
-</block></outcome><outcome value='PendingDelete'>\r
-<block>\r
-</block></outcome><outcome value='Pending Delete'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<for silentFailure='true' index='db-rel-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship_length`' >\r
-<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].related-to`'>\r
-<outcome value='cloud-region'>\r
-<for silentFailure='true' index='db-data-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data_length`' >\r
-<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>\r
-<outcome value='cloud-region.cloud-region-id'>\r
-<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-value == $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`'>\r
-<outcome value='true'>\r
-<block atomic="true"><set>\r
-<parameter name='l3-network-id' value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\r
-</set><return status='failure'>\r
-</return></block></outcome></switch></outcome></switch></for></outcome></switch></for></outcome></switch></for><return status='success'>\r
-\r
-</return></block><switch test='`$l3-network-id`'>\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 l3-network in AAI for network role ' + $db.vf-network-role-mapping[$role-index].network-role`" />\r
-</return></outcome></switch><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-role'\r
-    value='`$db.vf-network-role-mapping[$role-index].network-role`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-name'\r
-    value='`$aai.l3-network.l3-network[$db-network-index].network-name`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].neutron-id'\r
-    value='`$aai.l3-network.l3-network[$db-network-index].neutron-network-id`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-id'\r
-    value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].contrail-network-fqdn'\r
-    value='`$aai.l3-network.l3-network[$db-network-index].contrail-network-fqdn`' />\r
-</set><for index='subnet-index' start='0' end='`$aai.l3-network.l3-network[0].subnets.subnet_length`' >\r
-<set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].ip-version'\r
-   value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].ip-version`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-id'\r
-   value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-id`' />\r
-</set></for><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data_length'\r
-   value='`$aai.l3-network.l3-network[0].subnets.subnet_length`' />\r
-</set><set>\r
-<parameter name='network-index' value='`$network-index + 1`' />\r
-</set></block></for><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'\r
-  value='`$network-index`' />\r
-</set><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.'\r
-  value='vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.' />\r
-</set><switch test='`$aai.az.availability-zone_length`'>\r
-<outcome value=''><switch test='`$db.vf-model.avail-zone-max-count &gt; 0`'>\r
-<outcome value='true'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No availability zones found in AAI for cloud region '\r
-       + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
-</return></outcome><outcome value='false'>\r
-<set>\r
-<parameter name='aai.az.availability-zone_length' value='0' />\r
-</set></outcome></switch></outcome></switch><for index='idx' start='0' end='`$aai.az.availability-zone_length`' >\r
-<block atomic="true"><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[$idx]'\r
-  value='`$aai.az.availability-zone[$idx].availability-zone-name`' />\r
-</set><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
-   resource="generic-vnf:relationship-list"\r
-   key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
-   force="true" pfx="tmp.AnAI-data">\r
-    <parameter name="relationship-list.relationship[0].related-to" value="availability-zone" />\r
-    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="cloud-region.cloud-owner" />\r
-    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="CloudOwner" />\r
-    <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-key" value="cloud-region.cloud-region-id" />\r
-    <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-value" value="`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
-    <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-key" value="availability-zone.availability-zone-name" />\r
-    <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-value" value="`$aai.az.availability-zone[$idx].availability-zone-name`" />\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 generic-vnf in AAI" />\r
-</return></outcome><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 generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
-</return></outcome></save></block></for><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.max-count'\r
-   value='`$db.vf-model.avail-zone-max-count`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone_length'\r
-   value='`$aai.az.availability-zone_length`' />\r
-</set><for index='vnf-nw-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
-<block atomic="true"><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
-   resource="generic-vnf:relationship-list"\r
-   key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
-   force="true" pfx="tmp.AnAI-data">\r
-    <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
-    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="l3-network.network-id" />\r
-    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-nw-index].network-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 generic-vnf in AAI" />\r
-</return></outcome><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 generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
-</return></outcome></save></block></for><set>\r
-<parameter name='vnf-object-path'\r
- value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
- + $vnf-topology-operation-input.service-information.service-instance-id\r
- + '/service-data/vnfs/vnf/'\r
- + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
- + '/vnf-data/vnf-topology'`"/>\r
-\r
-</set><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
-   resource="generic-vnf"\r
-   key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id"\r
-   force="true" pfx="tmp.AnAI-data">\r
-<parameter name="vnf-name" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name`" />\r
-<parameter name="prov-status" value="PREPROV" />\r
-<parameter name="operational-status" value="out-of-service-path" />\r
-<parameter name="equipment-role" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`" />\r
-<parameter name="model-invariant-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid`" />\r
-<parameter name="model-version-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid`" />\r
-<parameter name="model-customization-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`" />\r
-<parameter name="selflink" value="`$vnf-object-path`" />\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 selflink in generic-vnf in AAI" />\r
-</return></outcome><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 generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
-</return></outcome></update><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\r
-\r
-</set><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
-</set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
-<parameter name='filename' value='/var/tmp/bgb-viprend.log' />\r
-</execute><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></block></method></service-logic>
+<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
+    <method rpc='vnf-topology-operation-assign' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='CreateVnfInstance'>\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 'CreateVnfInstance'" />\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 = $vnf-topology-operation-input.vnf-information.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 VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='vnf-index' value='0' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\r
+                        </set>\r
+                        <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                            <switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>\r
+                                <outcome value='true'>\r
+                                    <return status='failure'>\r
+                                        <parameter name='ack-final' value='Y'/>\r
+                                        <parameter name="error-code" value="500" />\r
+                                        <parameter name="error-message" value="`'VNF id ' + $service-data.vnfs.vnf[$idx].vnf-id + ' already exists, and has order status ' + $service-data.vnfs.vnf[$idx].vnf-data.vnf-level-oper-status.order-status`" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id'\r
+                           value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-type'\r
+                           value='`$vnf-topology-operation-input.vnf-information.vnf-type`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-type'\r
+                           value='`$db.vf-model.nf-type`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role'\r
+                           value='`$db.vf-model.nf-role`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-function'\r
+                           value='`$db.vf-model.nf-function`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-code'\r
+                           value='`$db.vf-model.nf-code`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.tenant'\r
+                           value='`$vnf-topology-operation-input.vnf-request-input.tenant`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-cloud-region'\r
+                           value='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`' />\r
+            </set>\r
+            <switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-name`'>\r
+                <outcome value=''>\r
+                    <block atomic="true">\r
+                        <switch test='`$db.vf-model.ecomp-generated-naming`'>\r
+                            <outcome value='Y'>\r
+                                <block></block>\r
+                            </outcome>\r
+                            <outcome value='N'>\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 vnf-name was received but ecomp-generated-naming is not Y" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="No vnf-name was received but ecomp-generated-naming is not Y" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <set>\r
+                            <parameter name='generate-unique-name-input.index-table-name' value='VNF_NAME_INDEX' />\r
+                            <parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />\r
+                            <parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />\r
+                            <parameter name='generate-unique-name-input.prefix' value="`'z' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + $db.vf-model.nf-code`" />\r
+                            <parameter name='generate-unique-name-input.index-length' value='2' />\r
+                        </set>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' 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="`$generate-unique-name-output.error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <set>\r
+                                    <parameter name='tmp.vnf-name' value='`$generate-unique-name-output.generated-name`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </call>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />\r
+                            <parameter name='generate-unique-name-input.supplied-name' value='`$vnf-topology-operation-input.vnf-request-input.vnf-name`' />\r
+                        </set>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' 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="`$generate-unique-name-output.error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <set>\r
+                                    <parameter name='tmp.vnf-name' value="`$vnf-topology-operation-input.vnf-request-input.vnf-name`" />\r
+                                </set>\r
+                            </outcome>\r
+                        </call>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id'\r
+                           value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name'\r
+                           value='`$tmp.vnf-name`' />\r
+            </set>\r
+            <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\r
+                                   value='`$db.vf-model.invariant-uuid`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\r
+                                   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\r
+                                   value='`$db.vf-model.uuid`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\r
+                                   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\r
+                                   value='`$db.vf-model.version`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\r
+                                   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\r
+                                   value='`$db.vf-model.name`' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\r
+                                   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\r
+                           value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\r
+            </set>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                          resource="cloud-region"\r
+                          key="cloud-region.cloud-owner = 'CloudOwner' AND\r
+             cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND\r
+             depth='0'"\r
+                          pfx='aai.cloud-region' local-only='false' >\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="Cloud region not found in AAI" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error retrieving cloud region from AAI" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
+                <switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\r
+                    <outcome value='complex'>\r
+                        <block atomic="true">\r
+                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                                <parameter name='ctx_memory_result_key' value='aai-uid-split' />\r
+                                <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\r
+                                <parameter name='regex' value='/' />\r
+                            </execute>\r
+                            <set>\r
+                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli'\r
+                                           value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\r
+                            </set>\r
+                            <break></break>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                          resource="availability-zones"\r
+                          key="cloud-region.cloud-owner = 'CloudOwner' AND\r
+             cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND\r
+             depth='0'"\r
+                          pfx='aai.az' local-only='false' >\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 retrieving availability zones from AAI" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli`'>\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="`'Unable to find aic-clli in AAI for aic-cloud-region ' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\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_TO_NETWORK_ROLE_MAPPING WHERE vf_customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\r
+                          pfx='db.vf-network-role-mapping[]'>\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_TO_NETWORK_ROLE_MAPPING table" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <set>\r
+                        <parameter name='db.vf-network-role-mapping_length' value='0' />\r
+                    </set>\r
+                </outcome>\r
+            </get-resource>\r
+            <set>\r
+                <parameter name='network-index' value='0' />\r
+            </set>\r
+            <for index='role-index' start='0' end='`$db.vf-network-role-mapping_length`'>\r
+                <block atomic="true">\r
+                    <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                                  resource="l3-networks"\r
+                                  key="l3-network.network-role = $db.vf-network-role-mapping[$role-index].network-role"\r
+                                  pfx='aai.l3-network' local-only='false'\r
+                    >\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 active l3-network found in AAI with cloud_region_id ' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + ' and network_role ' + $db.vf-network-role-mapping[$network-index].network-role`" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='failure'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="Error retrieving l3-network from AAI" />\r
+                            </return>\r
+                        </outcome>\r
+                    </get-resource>\r
+                    <set>\r
+                        <parameter name='l3-network-id' value='-1' />\r
+                    </set>\r
+                    <block>\r
+                        <for index='db-network-index' start='0' end='`$aai.l3-network.l3-network_length`' >\r
+                            <switch test='`$aai.l3-network.l3-network[$db-network-index].orchestration-status`'>\r
+                                <outcome value='PendingCreate'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='Pending Create'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='PendingDelete'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='Pending Delete'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <for silentFailure='true' index='db-rel-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship_length`' >\r
+                                        <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].related-to`'>\r
+                                            <outcome value='cloud-region'>\r
+                                                <for silentFailure='true' index='db-data-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data_length`' >\r
+                                                    <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>\r
+                                                        <outcome value='cloud-region.cloud-region-id'>\r
+                                                            <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-value == $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`'>\r
+                                                                <outcome value='true'>\r
+                                                                    <block atomic="true">\r
+                                                                        <set>\r
+                                                                            <parameter name='l3-network-id' value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\r
+                                                                        </set>\r
+                                                                        <return status='failure'></return>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <return status='success'></return>\r
+                    </block>\r
+                    <switch test='`$l3-network-id`'>\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 l3-network in AAI for network role ' + $db.vf-network-role-mapping[$role-index].network-role`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                    <set>\r
+                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-role'\r
+                                   value='`$db.vf-network-role-mapping[$role-index].network-role`' />\r
+                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-name'\r
+                                   value='`$aai.l3-network.l3-network[$db-network-index].network-name`' />\r
+                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].neutron-id'\r
+                                   value='`$aai.l3-network.l3-network[$db-network-index].neutron-network-id`' />\r
+                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-id'\r
+                                   value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\r
+                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].contrail-network-fqdn'\r
+                                   value='`$aai.l3-network.l3-network[$db-network-index].contrail-network-fqdn`' />\r
+                    </set>\r
+                    <for index='subnet-index' start='0' end='`$aai.l3-network.l3-network[0].subnets.subnet_length`' >\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].ip-version'\r
+                                       value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].ip-version`' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-id'\r
+                                       value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-id`' />\r
+                        </set>\r
+                    </for>\r
+                    <set>\r
+                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data_length'\r
+                                   value='`$aai.l3-network.l3-network[0].subnets.subnet_length`' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='network-index' value='`$network-index + 1`' />\r
+                    </set>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'\r
+                           value='`$network-index`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.'\r
+                           value='vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.' />\r
+            </set>\r
+            <switch test='`$aai.az.availability-zone_length`'>\r
+                <outcome value=''>\r
+                    <switch test='`$db.vf-model.avail-zone-max-count &gt; 0`'>\r
+                        <outcome value='true'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'No availability zones found in AAI for cloud region ' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='false'>\r
+                            <set>\r
+                                <parameter name='aai.az.availability-zone_length' value='0' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$aai.az.availability-zone_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[$idx]'\r
+                                   value='`$aai.az.availability-zone[$idx].availability-zone-name`' />\r
+                    </set>\r
+                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                          resource="generic-vnf:relationship-list"\r
+                          key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
+                          force="true" pfx="tmp.AnAI-data">\r
+                        <parameter name="relationship-list.relationship[0].related-to" value="availability-zone" />\r
+                        <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="cloud-region.cloud-owner" />\r
+                        <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="CloudOwner" />\r
+                        <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-key" value="cloud-region.cloud-region-id" />\r
+                        <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-value" value="`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
+                        <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-key" value="availability-zone.availability-zone-name" />\r
+                        <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-value" value="`$aai.az.availability-zone[$idx].availability-zone-name`" />\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 generic-vnf in AAI" />\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 generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </save>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.max-count'\r
+                           value='`$db.vf-model.avail-zone-max-count`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone_length'\r
+                           value='`$aai.az.availability-zone_length`' />\r
+            </set>\r
+            <for index='vnf-nw-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
+                <block atomic="true">\r
+                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                          resource="generic-vnf:relationship-list"\r
+                          key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
+                          force="true" pfx="tmp.AnAI-data">\r
+                        <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
+                        <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="l3-network.network-id" />\r
+                        <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-nw-index].network-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 generic-vnf in AAI" />\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 generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </save>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='vnf-object-path'\r
+                           value="`'restconf/config/GENERIC-RESOURCE-API:services/service/' + $vnf-topology-operation-input.service-information.service-instance-id + '/service-data/vnfs/vnf/' + $service-data.vnfs.vnf[$vnf-index].vnf-id + '/vnf-data/vnf-topology'`"/>\r
+            </set>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                    resource="generic-vnf"\r
+                    key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id"\r
+                    force="true" pfx="tmp.AnAI-data">\r
+                <parameter name="vnf-name" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name`" />\r
+                <parameter name="prov-status" value="PREPROV" />\r
+                <parameter name="operational-status" value="out-of-service-path" />\r
+                <parameter name="equipment-role" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`" />\r
+                <parameter name="model-invariant-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid`" />\r
+                <parameter name="model-version-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid`" />\r
+                <parameter name="model-customization-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`" />\r
+                <parameter name="selflink" value="`$vnf-object-path`" />\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 selflink in generic-vnf in AAI" />\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 generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </update>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file