aboutsummaryrefslogtreecommitdiffstats
path: root/platform-logic/generic-resource-api/src
diff options
context:
space:
mode:
authorMarcus G K Williams <marcus.williams@intel.com>2017-11-21 11:41:12 -0800
committerMarcus G K Williams <marcus.williams@intel.com>2017-11-21 11:41:36 -0800
commitcbedcbf1263d9e60e6c867e3172bd32efa40257e (patch)
tree485053a4bf4a631fb25723d20055b5e44730f9bb /platform-logic/generic-resource-api/src
parent50ebffd341ff7b0fc4f212ac2e2626fee76b66fe (diff)
Remove active printContexts from DGs
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> Former-commit-id: 32d2ae71c4a68b3043f5f229f226c673c8ea49e5
Diffstat (limited to 'platform-logic/generic-resource-api/src')
-rw-r--r--platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_tunnelxconn-topology-operation-create.json1324
-rwxr-xr-xplatform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-assign.json3960
-rwxr-xr-xplatform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-assign.json2669
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_tunnelxconn-topology-operation-create.xml541
-rwxr-xr-xplatform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-assign.xml1442
-rwxr-xr-xplatform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-assign.xml928
6 files changed, 9662 insertions, 1202 deletions
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_tunnelxconn-topology-operation-create.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_tunnelxconn-topology-operation-create.json
index a354c9e1..07b4875a 100644
--- a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_tunnelxconn-topology-operation-create.json
+++ b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_tunnelxconn-topology-operation-create.json
@@ -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
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-assign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-assign.json
index b36da886..883ee409 100755
--- a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-assign.json
+++ b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-assign.json
@@ -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
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-assign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-assign.json
index 99dc9e77..a4bef398 100755
--- a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-assign.json
+++ b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-assign.json
@@ -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
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_tunnelxconn-topology-operation-create.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_tunnelxconn-topology-operation-create.xml
index 130cc175..8071065a 100644
--- a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_tunnelxconn-topology-operation-create.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_tunnelxconn-topology-operation-create.xml
@@ -1,243 +1,300 @@
-<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'>
-<block atomic="true"><set>
-<parameter name='tmp.ar.allotted-resource-id' value='`$tunnelxconn-topology-operation-input.allotted-resource-information.allotted-resource-id`' />
-<parameter name='tmp.ar.parent-service-instance-id' value='`$tunnelxconn-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />
+<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'>
+ <block atomic="true">
+ <set>
+ <parameter name='tmp.ar.allotted-resource-id' value='`$tunnelxconn-topology-operation-input.allotted-resource-information.allotted-resource-id`' />
+ <parameter name='tmp.ar.parent-service-instance-id' value='`$tunnelxconn-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />
+ </set>
+ <set>
+ <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/'` " />
+ </set>
+ <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+ <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+ <parameter name='contextPrefix' value='prop' />
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$prop.restapi.tx-allottedresource`"/>
+ <parameter name="outputPath" value="tmp.ar-url"/>
+ <parameter name="target" value="{allotted-resource-id}"/>
+ <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+ <parameter name='restapiUser' value='`$prop.controller.user`' />
+ <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+ <parameter name='format' value='json' />
+ <parameter name='httpMethod' value='GET' />
+ <parameter name="responsePrefix" value="mdsal-ar" />
+ <outcome value='success'>
+ <block atomic="true">
+ <set>
+ <parameter name='bk-tx-ar' value='$mdsal-ar.' />
+ </set>
+ <switch test='`$mdsal-ar.tunnelxconn-allotted-resource_length`'>
+ <outcome value='1'>
+ <block atomic='true'>
+ <set>
+ <parameter name='tx-ar.' value='$mdsal-ar.tunnelxconn-allotted-resource[0].' />
+ </set>
+ <switch test='`$tx-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>
+ <outcome value='PendingCreate'>
+ <block></block>
+ </outcome>
+ <outcome value='Other'>
+ <block></block>
+ </outcome>
+ </switch>
+ <set>
+ <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`' />
+ <parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$tx-ar.allotted-resource-status.rpc-action`' />
+ <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`' />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='Other'>
+ <block atomic="true"></block>
+ </outcome>
+ </execute>
+ <set>
+ <parameter name='tx-ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
+ <parameter name='tx-ar.allotted-resource-status.action' value="`$tunnelxconn-topology-operation-input.request-information.request-action` " />
+ <parameter name='tx-ar.allotted-resource-status.rpc-name' value="tunnelxconn-topology-operation" />
+ <parameter name='tx-ar.allotted-resource-status.rpc-action' value="`$tunnelxconn-topology-operation-input.sdnc-request-header.svc-action` " />
+ <parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$tunnelxconn-topology-operation-input.request-information.` " />
+ <parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$tunnelxconn-topology-operation-input.sdnc-request-header.` " />
+ <parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$tunnelxconn-topology-operation-input.service-information.` " />
+ <parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$tunnelxconn-topology-operation-input.allotted-resource-information.` " />
+ <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' >
+ <parameter name="outputPath" value="tmp.current-time" />
+ </execute>
+ <set>
+ <parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />
+ <parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$tunnelxconn-topology-operation-input.request-information.request-action`' />
+ <parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$tunnelxconn-topology-operation-input.sdnc-request-header.svc-action`' />
+ <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`' />
+ <parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />
+ </set>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.tx.templatefile`" />
+ <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+ <parameter name='restapiUser' value='`$prop.controller.user`' />
+ <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+ <parameter name='format' value='json' />
+ <parameter name='httpMethod' value='PUT' />
+ <parameter name="responsePrefix" value="mdsal-ar" />
+ <outcome value='success'>
+ <block></block>
+ </outcome>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
+ </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" ></get-resource>
+ <set>
+ <parameter name='tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip' value='`$tmp.brg-wan-ip.ip`' />
+ </set>
+ <set>
+ <parameter name='tmp.tunnel-vgMUX-vG-name' value="`'vxlanTun' + $tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vg-ip` " />
+ <parameter name='tmp.tunnel-vgMUX-vBRG-name' value="`'vxlanTun' + $tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip` " />
+ </set>
+ <set>
+ <parameter name='tmp.search.parent-service-instance-id' value='`$tmp.ar.parent-service-instance-id`' />
+ </set>
+ <call module='GENERIC-RESOURCE-API' rpc='get-vnf-api-parent-instance' mode='sync' ></call>
+ <for index='paramidx' start='0' end='`$parent-service-instance.service-data.vnf-topology-information.vnf-parameters_length`' >
+ <!--
+ <for index='paramidx' start='0' end='`$parent-service-instance.vnf-topology-information.vnf-parameters_length`' >
+ -->
+ <switch test='`$parent-service-instance.service-data.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-name == vgmux_private_ip_1`'>
+ <!--
+ <switch test='`$parent-service-instance.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-name == vgmux_private_ip_1`'>
+ -->
+ <outcome value='true'>
+ <set>
+ <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`' />
+ <!--
+ <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`' />
-
-</set><set>
-<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/'` " />
-
-</set><execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
- <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
- <parameter name='contextPrefix' value='prop' />
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
- <parameter name="source" value="`$prop.restapi.tx-allottedresource`"/>
- <parameter name="outputPath" value="tmp.ar-url"/>
- <parameter name="target" value="{allotted-resource-id}"/>
- <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
- <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
- <parameter name='restapiUser' value='`$prop.controller.user`' />
- <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
- <parameter name='format' value='json' />
- <parameter name='httpMethod' value='GET' />
- <parameter name="responsePrefix" value="mdsal-ar" />
-
-<outcome value='success'>
-<block atomic="true">
-<set>
-<parameter name='bk-tx-ar' value='$mdsal-ar.' />
-</set><switch test='`$mdsal-ar.tunnelxconn-allotted-resource_length`'>
-<outcome value='1'>
-<block atomic='true'>
-<set>
-<parameter name='tx-ar.' value='$mdsal-ar.tunnelxconn-allotted-resource[0].' />
-</set><switch test='`$tx-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>
-<outcome value='PendingCreate'>
-<block>
-</block></outcome><outcome value='Other'>
-<block>
-</block></outcome></switch><set>
-<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`' />
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$tx-ar.allotted-resource-status.rpc-action`' />
-<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`' />
-
-</set></block></outcome></switch></block></outcome><outcome value='Other'>
-<block atomic="true">
-</block></outcome></execute><set>
-<parameter name='tx-ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
-<parameter name='tx-ar.allotted-resource-status.action' value="`$tunnelxconn-topology-operation-input.request-information.request-action` " />
-<parameter name='tx-ar.allotted-resource-status.rpc-name' value="tunnelxconn-topology-operation" />
-<parameter name='tx-ar.allotted-resource-status.rpc-action' value="`$tunnelxconn-topology-operation-input.sdnc-request-header.svc-action` " />
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$tunnelxconn-topology-operation-input.request-information.` " />
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$tunnelxconn-topology-operation-input.sdnc-request-header.` " />
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$tunnelxconn-topology-operation-input.service-information.` " />
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$tunnelxconn-topology-operation-input.allotted-resource-information.` " />
-<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' >
- <parameter name="outputPath" value="tmp.current-time" />
-
-</execute><set>
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$tunnelxconn-topology-operation-input.request-information.request-action`' />
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$tunnelxconn-topology-operation-input.sdnc-request-header.svc-action`' />
-<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`' />
-<parameter name='tx-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />
-</set><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
- <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.tx.templatefile`" />
- <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
- <parameter name='restapiUser' value='`$prop.controller.user`' />
- <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
- <parameter name='format' value='json' />
- <parameter name='httpMethod' value='PUT' />
- <parameter name="responsePrefix" value="mdsal-ar" />
-
-<outcome value='success'>
-<block>
-</block></outcome><outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
-</return></outcome><outcome value='not-found'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
-</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" >
-</get-resource><set>
-<parameter name='tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip' value='`$tmp.brg-wan-ip.ip`' />
-</set><set>
-<parameter name='tmp.tunnel-vgMUX-vG-name' value="`'vxlanTun' + $tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vg-ip` " />
-<parameter name='tmp.tunnel-vgMUX-vBRG-name' value="`'vxlanTun' + $tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip` " />
-</set><set>
-<parameter name='tmp.search.parent-service-instance-id' value='`$tmp.ar.parent-service-instance-id`' />
-</set><call module='GENERIC-RESOURCE-API' rpc='get-vnf-api-parent-instance' mode='sync' >
-
-</call><for index='paramidx' start='0' end='`$parent-service-instance.service-data.vnf-topology-information.vnf-parameters_length`' >
-<!--
-<for index='paramidx' start='0' end='`$parent-service-instance.vnf-topology-information.vnf-parameters_length`' >
---><switch test='`$parent-service-instance.service-data.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-name == vgmux_private_ip_1`'>
-<!--
-<switch test='`$parent-service-instance.vnf-topology-information.vnf-parameters[$paramidx].vnf-parameter-name == vgmux_private_ip_1`'>
--->
-
-
-<outcome value='true'>
-<set>
-<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`' />
-<!--
-<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`' />
-
---></set></outcome></switch></for><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
- <parameter name="source" value="`$prop.honeycomb.url`"/>
- <parameter name="outputPath" value="tmp.honeycomb.url"/>
- <parameter name="target" value="{honeycomb-instance-ip}"/>
- <parameter name="replacement" value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-mgmt-ip`"/>
-</execute><set>
-<parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vG-name` " />
-<parameter name='tmp.tunnel-dest-ip' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vg-ip` " />
-<parameter name='tmp.tunnel-src-ip' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-bearer-ip` " />
-<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' >
- <parameter name="source" value="`$prop.restapi.vpp-honeycomb`"/>
- <parameter name="outputPath" value="tmp.vpp-honeycomb-url"/>
- <parameter name="target" value="{tunnel-name}"/>
- <parameter name="replacement" value="`$tmp.tunnel-name`"/>
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
- <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.vxlan-tunnel.templatefile`" />
- <parameter name='restapiUrl' value='`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url`' />
- <parameter name='restapiUser' value='`$prop.honeycomb.user`' />
- <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />
- <parameter name='format' value='json' />
- <parameter name='httpMethod' value='PUT' />
- <parameter name="responsePrefix" value="honeycomb-vnf" />
-
-<outcome value='success'>
-<block>
-</block></outcome><outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
-</return></outcome><outcome value='not-found'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
-</return></outcome></execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >
-<parameter name='filename' value='/var/tmp/tunnel-xconn-create.log' />
-</execute><set>
-<parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vBRG-name` " />
-<parameter name='tmp.tunnel-dest-ip' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip` " />
-<parameter name='tmp.tunnel-src-ip' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-lan-ip` " />
-<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' >
- <parameter name="source" value="`$prop.restapi.vpp-honeycomb`"/>
- <parameter name="outputPath" value="tmp.vpp-honeycomb-url"/>
- <parameter name="target" value="{tunnel-name}"/>
- <parameter name="replacement" value="`$tmp.tunnel-name`"/>
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
- <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.vxlan-tunnel.templatefile`" />
- <parameter name='restapiUrl' value='`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url`' />
- <parameter name='restapiUser' value='`$prop.honeycomb.user`' />
- <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />
- <parameter name='format' value='json' />
- <parameter name='httpMethod' value='PUT' />
- <parameter name="responsePrefix" value="honeycomb-vnf" />
-
-<outcome value='success'>
-<block>
-</block></outcome><outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
-</return></outcome><outcome value='not-found'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
-</return></outcome></execute><set>
-<parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vG-name` " />
-</set><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
- <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.xconnect.templatefile`" />
- <parameter name='restapiUrl' value="`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url + '/v3po:l2' `" />
- <parameter name='restapiUser' value='`$prop.honeycomb.user`' />
- <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />
- <parameter name='format' value='json' />
- <parameter name='httpMethod' value='PUT' />
- <parameter name="responsePrefix" value="honeycomb-vnf" />
-
-<outcome value='success'>
-<block>
-</block></outcome><outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
-</return></outcome><outcome value='not-found'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
-</return></outcome></execute><set>
-<parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vG-name` " /></set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
- <parameter name="source" value="`$prop.restapi.vpp-honeycomb`"/>
- <parameter name="outputPath" value="tmp.vpp-honeycomb-url"/>
- <parameter name="target" value="{tunnel-name}"/>
- <parameter name="replacement" value="`$tmp.tunnel-name`"/>
-</execute><set>
-<parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vBRG-name` " />
-</set><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
- <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.xconnect.templatefile`" />
- <parameter name='restapiUrl' value="`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url + '/v3po:l2' `" />
- <parameter name='restapiUser' value='`$prop.honeycomb.user`' />
- <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />
- <parameter name='format' value='json' />
- <parameter name='httpMethod' value='PUT' />
- <parameter name="responsePrefix" value="honeycomb-vnf" />
-
-<outcome value='success'>
-<block>
-</block></outcome><outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
-</return></outcome><outcome value='not-found'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
-</return></outcome></execute><set>
-<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />
-<parameter name='tunnelxconn-object-path' value="`$tmp.ar.self-link`"/>
-<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/'`"/>
-
-</set><return status='success'>
-<parameter name="ack-final-indicator" value="Y" />
-<parameter name="error-code" value="200" />
-<parameter name="error-message" value="`$error-message`" />
-</return></block></method></service-logic>
+ -->
+ </set>
+ </outcome>
+ </switch>
+ </for>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$prop.honeycomb.url`"/>
+ <parameter name="outputPath" value="tmp.honeycomb.url"/>
+ <parameter name="target" value="{honeycomb-instance-ip}"/>
+ <parameter name="replacement" value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-mgmt-ip`"/>
+ </execute>
+ <set>
+ <parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vG-name` " />
+ <parameter name='tmp.tunnel-dest-ip' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vg-ip` " />
+ <parameter name='tmp.tunnel-src-ip' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-bearer-ip` " />
+ <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' >
+ <parameter name="source" value="`$prop.restapi.vpp-honeycomb`"/>
+ <parameter name="outputPath" value="tmp.vpp-honeycomb-url"/>
+ <parameter name="target" value="{tunnel-name}"/>
+ <parameter name="replacement" value="`$tmp.tunnel-name`"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.vxlan-tunnel.templatefile`" />
+ <parameter name='restapiUrl' value='`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url`' />
+ <parameter name='restapiUser' value='`$prop.honeycomb.user`' />
+ <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />
+ <parameter name='format' value='json' />
+ <parameter name='httpMethod' value='PUT' />
+ <parameter name="responsePrefix" value="honeycomb-vnf" />
+ <outcome value='success'>
+ <block></block>
+ </outcome>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
+ </return>
+ </outcome>
+ </execute>
+ <set>
+ <parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vBRG-name` " />
+ <parameter name='tmp.tunnel-dest-ip' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vbrg-wan-ip` " />
+ <parameter name='tmp.tunnel-src-ip' value="`$tx-ar.allotted-resource-data.tunnelxconn-topology.tunnelxconn-assignments.vgmux-lan-ip` " />
+ <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' >
+ <parameter name="source" value="`$prop.restapi.vpp-honeycomb`"/>
+ <parameter name="outputPath" value="tmp.vpp-honeycomb-url"/>
+ <parameter name="target" value="{tunnel-name}"/>
+ <parameter name="replacement" value="`$tmp.tunnel-name`"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.vxlan-tunnel.templatefile`" />
+ <parameter name='restapiUrl' value='`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url`' />
+ <parameter name='restapiUser' value='`$prop.honeycomb.user`' />
+ <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />
+ <parameter name='format' value='json' />
+ <parameter name='httpMethod' value='PUT' />
+ <parameter name="responsePrefix" value="honeycomb-vnf" />
+ <outcome value='success'>
+ <block></block>
+ </outcome>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
+ </return>
+ </outcome>
+ </execute>
+ <set>
+ <parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vG-name` " />
+ </set>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.xconnect.templatefile`" />
+ <parameter name='restapiUrl' value="`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url + '/v3po:l2' `" />
+ <parameter name='restapiUser' value='`$prop.honeycomb.user`' />
+ <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />
+ <parameter name='format' value='json' />
+ <parameter name='httpMethod' value='PUT' />
+ <parameter name="responsePrefix" value="honeycomb-vnf" />
+ <outcome value='success'>
+ <block></block>
+ </outcome>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
+ </return>
+ </outcome>
+ </execute>
+ <set>
+ <parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vG-name` " />
+ </set>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$prop.restapi.vpp-honeycomb`"/>
+ <parameter name="outputPath" value="tmp.vpp-honeycomb-url"/>
+ <parameter name="target" value="{tunnel-name}"/>
+ <parameter name="replacement" value="`$tmp.tunnel-name`"/>
+ </execute>
+ <set>
+ <parameter name='tmp.tunnel-name' value="`$tmp.tunnel-vgMUX-vBRG-name` " />
+ </set>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vpp.xconnect.templatefile`" />
+ <parameter name='restapiUrl' value="`$tmp.honeycomb.url + $tmp.vpp-honeycomb-url + '/v3po:l2' `" />
+ <parameter name='restapiUser' value='`$prop.honeycomb.user`' />
+ <parameter name='restapiPassword' value='`$prop.honeycomb.pwd`' />
+ <parameter name='format' value='json' />
+ <parameter name='httpMethod' value='PUT' />
+ <parameter name="responsePrefix" value="honeycomb-vnf" />
+ <outcome value='success'>
+ <block></block>
+ </outcome>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating md-sal for tunnelxconn-allotted-resource" />
+ </return>
+ </outcome>
+ </execute>
+ <set>
+ <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />
+ <parameter name='tunnelxconn-object-path' value="`$tmp.ar.self-link`"/>
+ <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/'`"/>
+ </set>
+ <return status='success'>
+ <parameter name="ack-final-indicator" value="Y" />
+ <parameter name="error-code" value="200" />
+ <parameter name="error-message" value="`$error-message`" />
+ </return>
+ </block>
+ </method>
+</service-logic> \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-assign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-assign.xml
index f561acb9..39443d53 100755
--- a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-assign.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-assign.xml
@@ -1,574 +1,868 @@
-<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'>
-<block atomic="true"><switch test='`$vf-module-topology-operation-input.request-information.request-action`'>
-<outcome value='CreateVfModuleInstance'>
-<block>
-</block></outcome><outcome value='Other'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="If svc-action is 'assign' then request-action must be 'CreateVfModuleInstance'" />
-</return></outcome></switch><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
- key='SELECT * from VF_MODULE_MODEL WHERE customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'
- pfx='db.vf-module-model'>
-
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error reading VF_MODULE_MODEL table" />
-</return></outcome><outcome value='not-found'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <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`" />
-</return></outcome></get-resource><set>
-<parameter name='vnf-index' value='-1' />
-</set><switch test='`$service-data.vnfs.vnf_length`'>
-<outcome value=''>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="There are no VNFs defined in MD-SAL" />
-</return></outcome><outcome value='Other'>
-<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >
-<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>
-<outcome value='true'>
-<block>
-<set>
-<parameter name='vnf-index' value='`$idx`' />
-</set><break></break></block></outcome></switch></for></outcome></switch><switch test='`$vnf-index`'>
-<outcome value='-1'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`" />
-</return></outcome></switch><switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status`'>
-<outcome value='Created'>
-<block>
-</block></outcome><outcome value='Other'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <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'`" />
-</return></outcome></switch><switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>
-<outcome value=''>
-<set>
-<parameter name='vf-module-index' value='0' />
-</set></outcome><outcome value='Other'>
-<block>
-<set>
-<parameter name='vf-module-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />
-</set><for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >
-<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`'>
-<outcome value='true'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <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`" />
-</return></outcome></switch></for></block></outcome></switch><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-module-index + 1`' />
-</set><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'
- value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />
-</set><set>
-<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`' />
-<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`' />
-<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`' />
-<parameter name='tmp.vf-module-topology.tenant' value='`$vf-module-topology-operation-input.vf-module-request-input.tenant`' />
-<parameter name='tmp.vf-module-topology.aic-cloud-region' value='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`' />
-</set><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="cloud-region"
- key="cloud-region.cloud-owner = 'CloudOwner' AND
- cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region"
- pfx='aai.cloud-region' local-only='false' >
-
-<outcome value='not-found'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Cloud region not found in AAI" />
-</return></outcome><outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error retrieving cloud region from AAI" />
-</return></outcome></get-resource><for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >
-<switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>
-<outcome value='complex'>
-<block atomic="true"><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>
- <parameter name='ctx_memory_result_key' value='aai-uid-split' />
- <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />
- <parameter name='regex' value='/' />
-</execute><set>
-<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'
- value='`$aai-uid-split[$aai-uid-split_length - 1]`' />
-</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`'>
-<outcome value=''><return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <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`" />
-</return></outcome></switch><switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`'>
-<outcome value=''><set>
-<parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'
- value='`$db.vf-module-model.invariant-uuid`' />
-</set></outcome><outcome value='Other'>
-<set>
-<parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'
- value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />
-</set></outcome></switch><switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`'>
-<outcome value=''><set>
-<parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'
- value='`$db.vf-module-model.uuid`' />
-</set></outcome><outcome value='Other'>
-<set>
-<parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'
- value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`' />
-</set></outcome></switch><switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`'>
-<outcome value=''><set>
-<parameter name='tmp.vf-module-topology.onap-model-information.model-version'
- value='`$db.vf-module-model.version`' />
-</set></outcome><outcome value='Other'>
-<set>
-<parameter name='tmp.vf-module-topology.onap-model-information.model-version'
- value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />
-</set></outcome></switch><switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`'>
-<outcome value=''><set>
-<parameter name='tmp.vf-module-topology.onap-model-information.model-name'
- value='`$db.vf-module-model.name`' />
-</set></outcome><outcome value='Other'>
-<set>
-<parameter name='tmp.vf-module-topology.onap-model-information.model-name'
- value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`' />
-</set></outcome></switch><set>
-<parameter name='tmp.vf-module-topology.onap-model-information.model-customization-uuid'
- value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />
-</set><set>
-<parameter name='tmp.vf-module-topology.vf-module-parameters.'
- value='vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.' />
-</set><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
- 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'
- pfx='db.vf-module-to-vfc-mapping[]'>
-
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error reading VF_MODULE_TO_VFC_MAPPING table" />
-</return></outcome><outcome value='not-found'>
-<set>
-<parameter name='db.vf-module-to-vfc-mapping_length' value='0' />
-</set></outcome></get-resource><set>
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm_length'
- value='`$db.vf-module-to-vfc-mapping_length`' />
-</set><for index='vm-type-index' start='0' end='`$db.vf-module-to-vfc-mapping_length`' >
-<block atomic="true"><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
- key='SELECT * from VFC_MODEL WHERE customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'
- pfx='db.vfc-model'>
-
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error reading VFC_MODEL table" />
-</return></outcome><outcome value='not-found'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <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`" />
-</return></outcome></get-resource><switch test="$db.vfc-model.ecomp-generated-naming == 'Y'">
-<outcome value='false'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <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`" />
-</return></outcome></switch><set>
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type'
- value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code'
- value='`$db.vfc-model.nfc-naming-code`' />
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type-tag'
- value='`$db.vfc-model.vm-type-tag`' />
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count'
- value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />
-</set><set>
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length'
- value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />
-</set><for index='vm-index' start='0' end='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >
-<block atomic="true"><set>
-<parameter name='generate-unique-name-input.index-table-name' value='VM_NAME_INDEX' />
-<parameter name='generate-unique-name-input.index-table-prefix-column' value='vm_name_prefix' />
-<parameter name='generate-unique-name-input.name-table-type' value='VM_INSTANCE' />
-<parameter name='generate-unique-name-input.prefix' value="`$service-data.vnfs.vnf[$vnf-index].vnf-name + $db.vfc-model.nfc-naming-code`" />
-<parameter name='generate-unique-name-input.index-length' value='3' />
-</set><call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />
-</return></outcome><outcome value='success'>
-<set>
-<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`' />
-</set></outcome></call></block></for><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
- key='SELECT * from VFC_TO_NETWORK_ROLE_MAPPING WHERE vfc_customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'
- pfx='db.vfc-to-network-role-mapping[]'>
-
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error reading VFC_TO_NETWORK_ROLE_MAPPING table" />
-</return></outcome><outcome value='not-found'>
-<set>
-<parameter name='db.vfc-to-network-role-mapping_length' value='0' />
-</set></outcome></get-resource><for index='network-role-index' start='0' end='`$db.vfc-to-network-role-mapping_length`' >
-<block atomic="true"><set>
-<parameter name='network-index' value='-1' />
-</set><for silentFailure='true' index='idx' start='0' end='`$service-data.networks.network_length`' >
-<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`'>
-<outcome value='true'>
-<block>
-<set>
-<parameter name='network-index' value='`$idx`' />
-</set><break></break></block></outcome></switch></for><switch test='`$network-index`'>
-<outcome value='-1'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <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`" />
-</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>
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id'
- value='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-id`' />
-</set><set>
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role'
- value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role`' />
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role-tag'
- value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role-tag`' />
-</set><switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`'>
-<outcome value=''><set>
-<parameter name='network-information-index' value='-1' />
-
-</set></outcome><outcome value='4'>
-<block atomic="true"><set>
-<parameter name='network-information-index' value='0' />
-</set><set>
-<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'
- value='4' />
-<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'
- value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`' />
-<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'
- value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-count`' />
-</set></block></outcome></switch><switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`'>
-<outcome value=''><block>
-</block></outcome><outcome value='6'>
-<block atomic="true"><set>
-<parameter name='network-information-index' value='`$network-information-index + 1`' />
-</set><set>
-<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'
- value='6' />
-<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'
- value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`' />
-<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'
- value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-count`' />
-</set></block></outcome></switch><switch test='`$network-information-index`'>
-<outcome value='-1'><block>
-</block></outcome><outcome value='Other'>
-<set>
-<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'
- value='`$network-information-index + 1`' />
-</set></outcome></switch></block></for><set>
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'
- value='`$db.vfc-to-network-role-mapping_length`' />
-</set></block></for><set>
-<parameter name='plans-index' value='0' />
-</set><for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >
-<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`' >
-<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`' >
-<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`'>
-<outcome value='N'>
-<block atomic="true"><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
- 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
- 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'
- pfx='db.eipam-ip-subnets[]'>
-
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error reading EIPAM_IP_SUBNETS table" />
-</return></outcome><outcome value='not-found'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <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`" />
-</return></outcome></get-resource><set>
-<parameter name='max-level' value='-1' />
-</set><for index='subnets-index' start='0' end='`$db.eipam-ip-subnets_length`' >
-<block atomic="true"><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
- key='SELECT * from EIPAM_IP_SUBNET_KEYS WHERE entity_id = $db.eipam-ip-subnets[$subnets-index].entity-id'
- pfx='db.eipam-ip-subnet-keys[]'>
-
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error reading EIPAM_IP_SUBNET_KEYS table" />
-</return></outcome><outcome value='not-found'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <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`" /></return></outcome></get-resource><for index='keys-index' start='0' end='`$db.eipam-ip-subnet-keys_length`' >
-<block atomic="true"><switch test='`$db.eipam-ip-subnet-keys[$keys-index].level &gt; $max-level`'>
-<outcome value='true'>
-<set>
-<parameter name='max-level' value='`$db.eipam-ip-subnet-keys[$keys-index].level`' />
-<parameter name='selected-entity-id' value='`$db.eipam-ip-subnet-keys[$keys-index].entity-id`' />
-<parameter name='selected-plan-name' value='`$db.eipam-ip-subnets[$subnets-index].plan-name`' />
-</set></outcome></switch></block></for><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
- key='SELECT * from EIPAM_IP_SUBNET_KEYS WHERE entity_id = $selected-entity-id order by level'
- pfx='db.eipam-ip-subnet-keys[]'>
-
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error reading EIPAM_IP_SUBNET_KEYS table" />
-</return></outcome><outcome value='not-found'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`'No entries found in EIPAM_IP_SUBNET_KEYS table for entity ID '
- + $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`' >
-<block atomic="true"><for index='level-index' start='0' end='`$db.eipam-ip-subnet-keys_length`' >
-<set>
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools[$level-index].key-name'
- value='`$db.eipam-ip-subnet-keys[$level-index].key-name`' />
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools[$level-index].key-value'
- value='`$db.eipam-ip-subnet-keys[$level-index].key-value`' />
-</set></for><set>
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools_length'
- value='`$db.eipam-ip-subnet-keys_length`' />
-</set><set>
-<parameter name='generate-unique-name-input.index-table-name' value='EIPAM_CLIENT_KEY_INDEX' />
-<parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />
-<parameter name='generate-unique-name-input.name-table-type' value='CLIENT_KEY' />
-<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 + ':'`" />
-<parameter name='generate-unique-name-input.index-length' value='' />
-</set><call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />
-</return></outcome></call><set>
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].client-key'
- value='`$generate-unique-name-output.generated-name`' />
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].info'
- value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].mask'
- value='32' />
-</set></block></for><set>
-<parameter name='eipam-ip-block.plans[$plans-index].requests_length'
- 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`' />
-</set></block></for><set>
-<parameter name='eipam-ip-block.plans[$plans-index].plan-name' value='`$selected-plan-name`' />
-<parameter name='eipam-ip-block.plans[$plans-index].address-family'
- 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`' />
-</set><set>
-<parameter name='plans-index' value='`$plans-index + 1`' />
-</set></block></outcome></switch></for></block></for></block></for><set>
-<parameter name='eipam-ip-block.plans_length' value='`$plans-index`' />
-</set><!--EIPAM plug-in needs this attribute set with this name--><set>
-<parameter name='service-data.service-information.service-type' value='`$service-data.service-information.subscription-service-type`' />
-</set><switch test='`$plans-index &gt; 0`'>
-<outcome value='true'>
-<execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="assignIPAddress"><outcome value='failure'><return status="failure">
- <parameter name="ack-final" value="Y" />
- <parameter name="error-code" value="500"/>
- <parameter name="error-message" value="An error occured while obtaining new address blocks from EIPAM." />
-</return></outcome></execute></outcome></switch><set>
-<parameter name='plans-index' value='0' />
-</set><for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >
-<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`' >
-<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`' >
-<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`'>
-<outcome value='N'>
-<block atomic="true"><for index='ip-index' start='0' end='`$eipam-ip-block.plans[$plans-index].requests_length`' >
-<set>
-<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]'
- value='`$eipam-ip-block.plans[$plans-index].requests[$ip-index].ip-prefix`' />
-</set></for><set>
-<parameter name='plans-index' value='`$plans-index + 1`' />
-</set></block></outcome></switch></for></for></for><set>
-<parameter name='vf-module-object-path'
- 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/'`"/>
-
-</set><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vf-module"
- key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id
- AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"
- force="true" pfx="tmp.AnAI-data">
-<parameter name="vf-module-name" value="`$tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name`" />
-<parameter name="model-invariant-id" value="`$tmp.vf-module-topology.onap-model-information.model-invariant-uuid`" />
-<parameter name="model-version-id" value="`$tmp.vf-module-topology.onap-model-information.model-uuid`" />
-<parameter name="model-customization-id" value="`$tmp.vf-module-topology.onap-model-information.model-customization-uuid`" />
-<parameter name="selflink" value="`$vf-module-object-path`" />
-<outcome value='failure'>
-<block atomic="true"><switch test='`$plans-index &gt; 0`'>
-<outcome value='true'>
-<block atomic="true"><set>
-<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`" />
-</set><update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
-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'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating EIPAM_IP_ASSIGNMENTS table on rollback" />
-</return></outcome></update><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">
-<parameter name="deleteEIPAM_status" value="`$tmp.status`" />
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error in EIPAM unassign IP address on rollback" />
-</return></outcome></execute></block></outcome></switch><return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating vf-module in AAI" />
-</return></block></outcome><outcome value='not-found'>
-<block atomic="true"><switch test='`$plans-index &gt; 0`'>
-<outcome value='true'>
-<block atomic="true"><set>
-<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`" />
-</set><update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
-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'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating EIPAM_IP_ASSIGNMENTS table on rollback" />
-</return></outcome></update><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">
-<parameter name="deleteEIPAM_status" value="`$tmp.status`" />
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error in EIPAM unassign IP address on rollback" />
-</return></outcome></execute></block></outcome></switch><return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <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`" />
-</return></block></outcome></update><for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >
-<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`' >
-<save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vf-module:relationship-list"
- key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id
- AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"
- force="true" pfx="tmp.AnAI-data">
- <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="l3-network.network-id" />
- <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`" />
-<outcome value='failure'>
-<block atomic="true"><switch test='`$plans-index &gt; 0`'>
-<outcome value='true'>
-<block atomic="true"><set>
-<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`" />
-</set><update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
-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'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating EIPAM_IP_ASSIGNMENTS table on rollback" />
-</return></outcome></update><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">
-<parameter name="deleteEIPAM_status" value="`$tmp.status`" />
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error in EIPAM unassign IP address on rollback" />
-</return></outcome></execute></block></outcome></switch><return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating vf-module relationships in AAI" />
-</return></block></outcome><outcome value='not-found'>
-<block atomic="true"><switch test='`$plans-index &gt; 0`'>
-<outcome value='true'>
-<block atomic="true"><set>
-<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`" />
-</set><update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
-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'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating EIPAM_IP_ASSIGNMENTS table on rollback" />
-</return></outcome></update><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">
-<parameter name="deleteEIPAM_status" value="`$tmp.status`" />
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error in EIPAM unassign IP address on rollback" />
-</return></outcome></execute></block></outcome></switch><return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <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`" />
-</return></block></outcome></save></for></for><for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >
-<for index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >
-<block atomic="true"><delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
- key='DELETE from VIPR_CONFIGURATION WHERE vnf_id = $service-data.vnfs.vnf[$vnf-index].vnf-id
- AND ecomp_service_instance_id = $service-data.service-information.service-instance-id
- AND vm_name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' ><outcome value='failure'>
-<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
-<parameter name="logger" value="message-log"/>
-<parameter name="field1" value="__TIMESTAMP__"/>
-<parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>
-<parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>
-<parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>
-</record></outcome></delete><save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
-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'>
-<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
-<parameter name="logger" value="message-log"/>
-<parameter name="field1" value="__TIMESTAMP__"/>
-<parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>
-<parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>
-<parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>
-</record></outcome></save></block></for></for><set>
-<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.' />
-</set><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'
- value='$vf-module-topology-operation-input.sdnc-request-header.' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'
- value='$vf-module-topology-operation-input.request-information.' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'
- value='$vf-module-topology-operation-input.service-information.' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'
- value='$vf-module-topology-operation-input.vnf-information.' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'
- value='$vf-module-topology-operation-input.vf-module-information.' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'
- value='$vf-module-topology-operation-input.vf-module-request-input.' />
-
-</set><call module='GENERIC-RESOURCE-API' rpc='gw-vfmodule-update' mode='sync' >
-</call><set>
-<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'
- value='PendingCreate' />
-<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'
- value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />
-<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'
- value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />
-</set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >
-<parameter name='filename' value='/var/tmp/bgb-vfmodule.log' />
-</execute><return status='success'>
-<parameter name="ack-final-indicator" value="Y" />
-<parameter name="error-code" value="200" />
-<parameter name="error-message" value="`$error-message`" />
-</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='1.2.0-SNAPSHOT-INT110901'>
+ <method rpc='vf-module-topology-operation-assign' mode='sync'>
+ <block atomic="true">
+ <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>
+ <outcome value='CreateVfModuleInstance'>
+ <block></block>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="If svc-action is 'assign' then request-action must be 'CreateVfModuleInstance'" />
+ </return>
+ </outcome>
+ </switch>
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+ key='SELECT * from VF_MODULE_MODEL WHERE customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'
+ pfx='db.vf-module-model'>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error reading VF_MODULE_MODEL table" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </return>
+ </outcome>
+ </get-resource>
+ <set>
+ <parameter name='vnf-index' value='-1' />
+ </set>
+ <switch test='`$service-data.vnfs.vnf_length`'>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="There are no VNFs defined in MD-SAL" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >
+ <switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>
+ <outcome value='true'>
+ <block>
+ <set>
+ <parameter name='vnf-index' value='`$idx`' />
+ </set>
+ <break></break>
+ </block>
+ </outcome>
+ </switch>
+ </for>
+ </outcome>
+ </switch>
+ <switch test='`$vnf-index`'>
+ <outcome value='-1'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`" />
+ </return>
+ </outcome>
+ </switch>
+ <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status`'>
+ <outcome value='Created'>
+ <block></block>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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'`" />
+ </return>
+ </outcome>
+ </switch>
+ <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>
+ <outcome value=''>
+ <set>
+ <parameter name='vf-module-index' value='0' />
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <block>
+ <set>
+ <parameter name='vf-module-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />
+ </set>
+ <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >
+ <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`'>
+ <outcome value='true'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </return>
+ </outcome>
+ </switch>
+ </for>
+ </block>
+ </outcome>
+ </switch>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-module-index + 1`' />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'
+ value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />
+ </set>
+ <set>
+ <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`' />
+ <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`' />
+ <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`' />
+ <parameter name='tmp.vf-module-topology.tenant' value='`$vf-module-topology-operation-input.vf-module-request-input.tenant`' />
+ <parameter name='tmp.vf-module-topology.aic-cloud-region' value='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`' />
+ </set>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="cloud-region"
+ key="cloud-region.cloud-owner = 'CloudOwner' AND
+ cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region"
+ pfx='aai.cloud-region' local-only='false' >
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Cloud region not found in AAI" />
+ </return>
+ </outcome>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error retrieving cloud region from AAI" />
+ </return>
+ </outcome>
+ </get-resource>
+ <for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >
+ <switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>
+ <outcome value='complex'>
+ <block atomic="true">
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>
+ <parameter name='ctx_memory_result_key' value='aai-uid-split' />
+ <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />
+ <parameter name='regex' value='/' />
+ </execute>
+ <set>
+ <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'
+ value='`$aai-uid-split[$aai-uid-split_length - 1]`' />
+ </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`'>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </return>
+ </outcome>
+ </switch>
+ <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`'>
+ <outcome value=''>
+ <set>
+ <parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'
+ value='`$db.vf-module-model.invariant-uuid`' />
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'
+ value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />
+ </set>
+ </outcome>
+ </switch>
+ <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`'>
+ <outcome value=''>
+ <set>
+ <parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'
+ value='`$db.vf-module-model.uuid`' />
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'
+ value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`' />
+ </set>
+ </outcome>
+ </switch>
+ <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`'>
+ <outcome value=''>
+ <set>
+ <parameter name='tmp.vf-module-topology.onap-model-information.model-version'
+ value='`$db.vf-module-model.version`' />
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name='tmp.vf-module-topology.onap-model-information.model-version'
+ value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />
+ </set>
+ </outcome>
+ </switch>
+ <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`'>
+ <outcome value=''>
+ <set>
+ <parameter name='tmp.vf-module-topology.onap-model-information.model-name'
+ value='`$db.vf-module-model.name`' />
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name='tmp.vf-module-topology.onap-model-information.model-name'
+ value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`' />
+ </set>
+ </outcome>
+ </switch>
+ <set>
+ <parameter name='tmp.vf-module-topology.onap-model-information.model-customization-uuid'
+ value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />
+ </set>
+ <set>
+ <parameter name='tmp.vf-module-topology.vf-module-parameters.'
+ value='vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.' />
+ </set>
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+ 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'
+ pfx='db.vf-module-to-vfc-mapping[]'>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error reading VF_MODULE_TO_VFC_MAPPING table" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='db.vf-module-to-vfc-mapping_length' value='0' />
+ </set>
+ </outcome>
+ </get-resource>
+ <set>
+ <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm_length'
+ value='`$db.vf-module-to-vfc-mapping_length`' />
+ </set>
+ <for index='vm-type-index' start='0' end='`$db.vf-module-to-vfc-mapping_length`' >
+ <block atomic="true">
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+ key='SELECT * from VFC_MODEL WHERE customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'
+ pfx='db.vfc-model'>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error reading VFC_MODEL table" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </return>
+ </outcome>
+ </get-resource>
+ <switch test="$db.vfc-model.ecomp-generated-naming == 'Y'">
+ <outcome value='false'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </return>
+ </outcome>
+ </switch>
+ <set>
+ <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type'
+ value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />
+ <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code'
+ value='`$db.vfc-model.nfc-naming-code`' />
+ <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type-tag'
+ value='`$db.vfc-model.vm-type-tag`' />
+ <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count'
+ value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />
+ </set>
+ <set>
+ <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length'
+ value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />
+ </set>
+ <for index='vm-index' start='0' end='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >
+ <block atomic="true">
+ <set>
+ <parameter name='generate-unique-name-input.index-table-name' value='VM_NAME_INDEX' />
+ <parameter name='generate-unique-name-input.index-table-prefix-column' value='vm_name_prefix' />
+ <parameter name='generate-unique-name-input.name-table-type' value='VM_INSTANCE' />
+ <parameter name='generate-unique-name-input.prefix' value="`$service-data.vnfs.vnf[$vnf-index].vnf-name + $db.vfc-model.nfc-naming-code`" />
+ <parameter name='generate-unique-name-input.index-length' value='3' />
+ </set>
+ <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />
+ </return>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <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`' />
+ </set>
+ </outcome>
+ </call>
+ </block>
+ </for>
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+ key='SELECT * from VFC_TO_NETWORK_ROLE_MAPPING WHERE vfc_customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'
+ pfx='db.vfc-to-network-role-mapping[]'>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error reading VFC_TO_NETWORK_ROLE_MAPPING table" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='db.vfc-to-network-role-mapping_length' value='0' />
+ </set>
+ </outcome>
+ </get-resource>
+ <for index='network-role-index' start='0' end='`$db.vfc-to-network-role-mapping_length`' >
+ <block atomic="true">
+ <set>
+ <parameter name='network-index' value='-1' />
+ </set>
+ <for silentFailure='true' index='idx' start='0' end='`$service-data.networks.network_length`' >
+ <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`'>
+ <outcome value='true'>
+ <block>
+ <set>
+ <parameter name='network-index' value='`$idx`' />
+ </set>
+ <break></break>
+ </block>
+ </outcome>
+ </switch>
+ </for>
+ <switch test='`$network-index`'>
+ <outcome value='-1'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </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>
+ <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id'
+ value='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-id`' />
+ </set>
+ <set>
+ <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role'
+ value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role`' />
+ <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role-tag'
+ value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role-tag`' />
+ </set>
+ <switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`'>
+ <outcome value=''>
+ <set>
+ <parameter name='network-information-index' value='-1' />
+ </set>
+ </outcome>
+ <outcome value='4'>
+ <block atomic="true">
+ <set>
+ <parameter name='network-information-index' value='0' />
+ </set>
+ <set>
+ <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'
+ value='4' />
+ <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'
+ value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`' />
+ <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'
+ value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-count`' />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ <switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`'>
+ <outcome value=''>
+ <block></block>
+ </outcome>
+ <outcome value='6'>
+ <block atomic="true">
+ <set>
+ <parameter name='network-information-index' value='`$network-information-index + 1`' />
+ </set>
+ <set>
+ <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'
+ value='6' />
+ <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'
+ value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`' />
+ <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'
+ value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-count`' />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ <switch test='`$network-information-index`'>
+ <outcome value='-1'>
+ <block></block>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <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'
+ value='`$network-information-index + 1`' />
+ </set>
+ </outcome>
+ </switch>
+ </block>
+ </for>
+ <set>
+ <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'
+ value='`$db.vfc-to-network-role-mapping_length`' />
+ </set>
+ </block>
+ </for>
+ <set>
+ <parameter name='plans-index' value='0' />
+ </set>
+ <for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >
+ <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`' >
+ <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`' >
+ <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`'>
+ <outcome value='N'>
+ <block atomic="true">
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+ 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
+ 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'
+ pfx='db.eipam-ip-subnets[]'>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error reading EIPAM_IP_SUBNETS table" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </return>
+ </outcome>
+ </get-resource>
+ <set>
+ <parameter name='max-level' value='-1' />
+ </set>
+ <for index='subnets-index' start='0' end='`$db.eipam-ip-subnets_length`' >
+ <block atomic="true">
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+ key='SELECT * from EIPAM_IP_SUBNET_KEYS WHERE entity_id = $db.eipam-ip-subnets[$subnets-index].entity-id'
+ pfx='db.eipam-ip-subnet-keys[]'>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error reading EIPAM_IP_SUBNET_KEYS table" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </return>
+ </outcome>
+ </get-resource>
+ <for index='keys-index' start='0' end='`$db.eipam-ip-subnet-keys_length`' >
+ <block atomic="true">
+ <switch test='`$db.eipam-ip-subnet-keys[$keys-index].level &gt; $max-level`'>
+ <outcome value='true'>
+ <set>
+ <parameter name='max-level' value='`$db.eipam-ip-subnet-keys[$keys-index].level`' />
+ <parameter name='selected-entity-id' value='`$db.eipam-ip-subnet-keys[$keys-index].entity-id`' />
+ <parameter name='selected-plan-name' value='`$db.eipam-ip-subnets[$subnets-index].plan-name`' />
+ </set>
+ </outcome>
+ </switch>
+ </block>
+ </for>
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+ key='SELECT * from EIPAM_IP_SUBNET_KEYS WHERE entity_id = $selected-entity-id order by level'
+ pfx='db.eipam-ip-subnet-keys[]'>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error reading EIPAM_IP_SUBNET_KEYS table" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'No entries found in EIPAM_IP_SUBNET_KEYS table for entity ID ' + $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`' >
+ <block atomic="true">
+ <for index='level-index' start='0' end='`$db.eipam-ip-subnet-keys_length`' >
+ <set>
+ <parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools[$level-index].key-name'
+ value='`$db.eipam-ip-subnet-keys[$level-index].key-name`' />
+ <parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools[$level-index].key-value'
+ value='`$db.eipam-ip-subnet-keys[$level-index].key-value`' />
+ </set>
+ </for>
+ <set>
+ <parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools_length'
+ value='`$db.eipam-ip-subnet-keys_length`' />
+ </set>
+ <set>
+ <parameter name='generate-unique-name-input.index-table-name' value='EIPAM_CLIENT_KEY_INDEX' />
+ <parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />
+ <parameter name='generate-unique-name-input.name-table-type' value='CLIENT_KEY' />
+ <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 + ':'`" />
+ <parameter name='generate-unique-name-input.index-length' value='' />
+ </set>
+ <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />
+ </return>
+ </outcome>
+ </call>
+ <set>
+ <parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].client-key'
+ value='`$generate-unique-name-output.generated-name`' />
+ <parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].info'
+ value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />
+ <parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].mask'
+ value='32' />
+ </set>
+ </block>
+ </for>
+ <set>
+ <parameter name='eipam-ip-block.plans[$plans-index].requests_length'
+ 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`' />
+ </set>
+ </block>
+ </for>
+ <set>
+ <parameter name='eipam-ip-block.plans[$plans-index].plan-name' value='`$selected-plan-name`' />
+ <parameter name='eipam-ip-block.plans[$plans-index].address-family'
+ 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`' />
+ </set>
+ <set>
+ <parameter name='plans-index' value='`$plans-index + 1`' />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ </for>
+ </block>
+ </for>
+ </block>
+ </for>
+ <set>
+ <parameter name='eipam-ip-block.plans_length' value='`$plans-index`' />
+ </set>
+ <!--EIPAM plug-in needs this attribute set with this name-->
+ <set>
+ <parameter name='service-data.service-information.service-type' value='`$service-data.service-information.subscription-service-type`' />
+ </set>
+ <switch test='`$plans-index &gt; 0`'>
+ <outcome value='true'>
+ <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="assignIPAddress">
+ <outcome value='failure'>
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500"/>
+ <parameter name="error-message" value="An error occured while obtaining new address blocks from EIPAM." />
+ </return>
+ </outcome>
+ </execute>
+ </outcome>
+ </switch>
+ <set>
+ <parameter name='plans-index' value='0' />
+ </set>
+ <for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >
+ <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`' >
+ <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`' >
+ <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`'>
+ <outcome value='N'>
+ <block atomic="true">
+ <for index='ip-index' start='0' end='`$eipam-ip-block.plans[$plans-index].requests_length`' >
+ <set>
+ <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]'
+ value='`$eipam-ip-block.plans[$plans-index].requests[$ip-index].ip-prefix`' />
+ </set>
+ </for>
+ <set>
+ <parameter name='plans-index' value='`$plans-index + 1`' />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ </for>
+ </for>
+ </for>
+ <set>
+ <parameter name='vf-module-object-path'
+ 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/'`"/>
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vf-module"
+ key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id
+ AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"
+ force="true" pfx="tmp.AnAI-data">
+ <parameter name="vf-module-name" value="`$tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name`" />
+ <parameter name="model-invariant-id" value="`$tmp.vf-module-topology.onap-model-information.model-invariant-uuid`" />
+ <parameter name="model-version-id" value="`$tmp.vf-module-topology.onap-model-information.model-uuid`" />
+ <parameter name="model-customization-id" value="`$tmp.vf-module-topology.onap-model-information.model-customization-uuid`" />
+ <parameter name="selflink" value="`$vf-module-object-path`" />
+ <outcome value='failure'>
+ <block atomic="true">
+ <switch test='`$plans-index &gt; 0`'>
+ <outcome value='true'>
+ <block atomic="true">
+ <set>
+ <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`" />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
+ 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'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating EIPAM_IP_ASSIGNMENTS table on rollback" />
+ </return>
+ </outcome>
+ </update>
+ <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">
+ <parameter name="deleteEIPAM_status" value="`$tmp.status`" />
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error in EIPAM unassign IP address on rollback" />
+ </return>
+ </outcome>
+ </execute>
+ </block>
+ </outcome>
+ </switch>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating vf-module in AAI" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic="true">
+ <switch test='`$plans-index &gt; 0`'>
+ <outcome value='true'>
+ <block atomic="true">
+ <set>
+ <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`" />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
+ 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'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating EIPAM_IP_ASSIGNMENTS table on rollback" />
+ </return>
+ </outcome>
+ </update>
+ <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">
+ <parameter name="deleteEIPAM_status" value="`$tmp.status`" />
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error in EIPAM unassign IP address on rollback" />
+ </return>
+ </outcome>
+ </execute>
+ </block>
+ </outcome>
+ </switch>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </return>
+ </block>
+ </outcome>
+ </update>
+ <for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >
+ <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`' >
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vf-module:relationship-list"
+ key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id
+ AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"
+ force="true" pfx="tmp.AnAI-data">
+ <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />
+ <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="l3-network.network-id" />
+ <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`" />
+ <outcome value='failure'>
+ <block atomic="true">
+ <switch test='`$plans-index &gt; 0`'>
+ <outcome value='true'>
+ <block atomic="true">
+ <set>
+ <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`" />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
+ 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'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating EIPAM_IP_ASSIGNMENTS table on rollback" />
+ </return>
+ </outcome>
+ </update>
+ <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">
+ <parameter name="deleteEIPAM_status" value="`$tmp.status`" />
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error in EIPAM unassign IP address on rollback" />
+ </return>
+ </outcome>
+ </execute>
+ </block>
+ </outcome>
+ </switch>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating vf-module relationships in AAI" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic="true">
+ <switch test='`$plans-index &gt; 0`'>
+ <outcome value='true'>
+ <block atomic="true">
+ <set>
+ <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`" />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
+ 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'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating EIPAM_IP_ASSIGNMENTS table on rollback" />
+ </return>
+ </outcome>
+ </update>
+ <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">
+ <parameter name="deleteEIPAM_status" value="`$tmp.status`" />
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error in EIPAM unassign IP address on rollback" />
+ </return>
+ </outcome>
+ </execute>
+ </block>
+ </outcome>
+ </switch>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </return>
+ </block>
+ </outcome>
+ </save>
+ </for>
+ </for>
+ <for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >
+ <for index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >
+ <block atomic="true">
+ <delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+ key='DELETE from VIPR_CONFIGURATION WHERE vnf_id = $service-data.vnfs.vnf[$vnf-index].vnf-id
+ AND ecomp_service_instance_id = $service-data.service-information.service-instance-id
+ AND vm_name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' >
+ <outcome value='failure'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="__TIMESTAMP__"/>
+ <parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>
+ <parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>
+ <parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>
+ </record>
+ </outcome>
+ </delete>
+ <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
+ 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'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="__TIMESTAMP__"/>
+ <parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>
+ <parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>
+ <parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>
+ </record>
+ </outcome>
+ </save>
+ </block>
+ </for>
+ </for>
+ <set>
+ <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.' />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'
+ value='$vf-module-topology-operation-input.sdnc-request-header.' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'
+ value='$vf-module-topology-operation-input.request-information.' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'
+ value='$vf-module-topology-operation-input.service-information.' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'
+ value='$vf-module-topology-operation-input.vnf-information.' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'
+ value='$vf-module-topology-operation-input.vf-module-information.' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'
+ value='$vf-module-topology-operation-input.vf-module-request-input.' />
+ </set>
+ <call module='GENERIC-RESOURCE-API' rpc='gw-vfmodule-update' mode='sync' ></call>
+ <set>
+ <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'
+ value='PendingCreate' />
+ <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'
+ value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />
+ <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'
+ value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />
+ </set>
+ <return status='success'>
+ <parameter name="ack-final-indicator" value="Y" />
+ <parameter name="error-code" value="200" />
+ <parameter name="error-message" value="`$error-message`" />
+ </return>
+ </block>
+ </method>
+</service-logic> \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-assign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-assign.xml
index 70cce657..8608ef20 100755
--- a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-assign.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-assign.xml
@@ -1,383 +1,545 @@
-<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'>
-<block atomic="true"><switch test='`$vnf-topology-operation-input.request-information.request-action`'>
-<outcome value='CreateVnfInstance'>
-<block>
-</block></outcome><outcome value='Other'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="If svc-action is 'assign' then request-action must be 'CreateVnfInstance'" />
-</return></outcome></switch><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
- key='SELECT * from VF_MODEL WHERE customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'
- pfx='db.vf-model'>
-
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error reading VF_MODEL table" />
-</return></outcome><outcome value='not-found'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`'No model found for VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`" />
-</return></outcome></get-resource><switch test='`$service-data.vnfs.vnf_length`'>
-<outcome value=''>
-<set>
-<parameter name='vnf-index' value='0' />
-</set></outcome><outcome value='Other'>
-<block>
-<set>
-<parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />
-</set><for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >
-<switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>
-<outcome value='true'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <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`" />
-</return></outcome></switch></for></block></outcome></switch><set>
-<parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />
-</set><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id'
- value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-type'
- value='`$vnf-topology-operation-input.vnf-information.vnf-type`' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-type'
- value='`$db.vf-model.nf-type`' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role'
- value='`$db.vf-model.nf-role`' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-function'
- value='`$db.vf-model.nf-function`' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-code'
- value='`$db.vf-model.nf-code`' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.tenant'
- value='`$vnf-topology-operation-input.vnf-request-input.tenant`' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-cloud-region'
- value='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`' />
-
-</set><switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-name`'>
-<outcome value=''><block atomic="true"><switch test='`$db.vf-model.ecomp-generated-naming`'>
-<outcome value='Y'><block>
-</block></outcome><outcome value='N'><return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="No vnf-name was received but ecomp-generated-naming is not Y" />
-</return></outcome><outcome value='Other'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="No vnf-name was received but ecomp-generated-naming is not Y" />
-</return></outcome></switch><set>
-<parameter name='generate-unique-name-input.index-table-name' value='VNF_NAME_INDEX' />
-<parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />
-<parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />
-<parameter name='generate-unique-name-input.prefix' value="`'z' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + $db.vf-model.nf-code`" />
-<parameter name='generate-unique-name-input.index-length' value='2' />
-</set><call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />
-</return></outcome><outcome value='success'>
-<set>
-<parameter name='tmp.vnf-name' value='`$generate-unique-name-output.generated-name`' />
-</set></outcome></call></block></outcome><outcome value='Other'>
-<block atomic="true"><set>
-<parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />
-<parameter name='generate-unique-name-input.supplied-name' value='`$vnf-topology-operation-input.vnf-request-input.vnf-name`' />
-</set><call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />
-</return></outcome><outcome value='success'>
-<set>
-<parameter name='tmp.vnf-name' value="`$vnf-topology-operation-input.vnf-request-input.vnf-name`" />
-</set></outcome></call></block></outcome></switch><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id'
- value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
-</set><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name'
- value='`$tmp.vnf-name`' />
-</set><switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`'>
-<outcome value=''><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'
- value='`$db.vf-model.invariant-uuid`' />
-</set></outcome><outcome value='Other'>
-<set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'
- value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />
-</set></outcome></switch><switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`'>
-<outcome value=''><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'
- value='`$db.vf-model.uuid`' />
-</set></outcome><outcome value='Other'>
-<set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'
- value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />
-</set></outcome></switch><switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`'>
-<outcome value=''><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'
- value='`$db.vf-model.version`' />
-</set></outcome><outcome value='Other'>
-<set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'
- value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`' />
-</set></outcome></switch><switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`'>
-<outcome value=''><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'
- value='`$db.vf-model.name`' />
-</set></outcome><outcome value='Other'>
-<set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'
- value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`' />
-</set></outcome></switch><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'
- value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />
-</set><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="cloud-region"
- key="cloud-region.cloud-owner = 'CloudOwner' AND
- cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND
- depth='0'"
- pfx='aai.cloud-region' local-only='false' >
-
-<outcome value='not-found'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Cloud region not found in AAI" />
-</return></outcome><outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error retrieving cloud region from AAI" />
-</return></outcome></get-resource><for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >
-<switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>
-<outcome value='complex'>
-<block atomic="true"><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>
- <parameter name='ctx_memory_result_key' value='aai-uid-split' />
- <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />
- <parameter name='regex' value='/' />
-</execute><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli'
- value='`$aai-uid-split[$aai-uid-split_length - 1]`' />
-</set><break/></block></outcome></switch></for><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="availability-zones"
- key="cloud-region.cloud-owner = 'CloudOwner' AND
- cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND
- depth='0'"
- pfx='aai.az' local-only='false' >
-
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error retrieving availability zones from AAI" />
-</return></outcome></get-resource><switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli`'>
-<outcome value=''><return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <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`" />
-</return></outcome></switch><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
- key='SELECT * from VF_TO_NETWORK_ROLE_MAPPING WHERE vf_customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'
- pfx='db.vf-network-role-mapping[]'>
-
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error reading VF_TO_NETWORK_ROLE_MAPPING table" />
-</return></outcome><outcome value='not-found'>
-<set>
-<parameter name='db.vf-network-role-mapping_length' value='0' />
-</set></outcome></get-resource><set>
-<parameter name='network-index' value='0' />
-</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"
- resource="l3-networks"
- key="l3-network.network-role = $db.vf-network-role-mapping[$role-index].network-role"
- pfx='aai.l3-network' local-only='false'
->
-<outcome value='not-found'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <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`" />
-</return></outcome><outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error retrieving l3-network from AAI" />
-</return></outcome></get-resource><set>
-<parameter name='l3-network-id' value='-1' />
-</set><block>
-<for index='db-network-index' start='0' end='`$aai.l3-network.l3-network_length`' >
-<switch test='`$aai.l3-network.l3-network[$db-network-index].orchestration-status`'>
-<outcome value='PendingCreate'>
-<block>
-</block></outcome><outcome value='Pending Create'>
-<block>
-</block></outcome><outcome value='PendingDelete'>
-<block>
-</block></outcome><outcome value='Pending Delete'>
-<block>
-</block></outcome><outcome value='Other'>
-<for silentFailure='true' index='db-rel-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship_length`' >
-<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].related-to`'>
-<outcome value='cloud-region'>
-<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`' >
-<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>
-<outcome value='cloud-region.cloud-region-id'>
-<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`'>
-<outcome value='true'>
-<block atomic="true"><set>
-<parameter name='l3-network-id' value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />
-</set><return status='failure'>
-</return></block></outcome></switch></outcome></switch></for></outcome></switch></for></outcome></switch></for><return status='success'>
-
-</return></block><switch test='`$l3-network-id`'>
-<outcome value='-1'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`'Unable to find l3-network in AAI for network role ' + $db.vf-network-role-mapping[$role-index].network-role`" />
-</return></outcome></switch><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-role'
- value='`$db.vf-network-role-mapping[$role-index].network-role`' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-name'
- value='`$aai.l3-network.l3-network[$db-network-index].network-name`' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].neutron-id'
- value='`$aai.l3-network.l3-network[$db-network-index].neutron-network-id`' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-id'
- value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].contrail-network-fqdn'
- value='`$aai.l3-network.l3-network[$db-network-index].contrail-network-fqdn`' />
-</set><for index='subnet-index' start='0' end='`$aai.l3-network.l3-network[0].subnets.subnet_length`' >
-<set>
-<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'
- value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].ip-version`' />
-<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'
- value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-id`' />
-</set></for><set>
-<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'
- value='`$aai.l3-network.l3-network[0].subnets.subnet_length`' />
-</set><set>
-<parameter name='network-index' value='`$network-index + 1`' />
-</set></block></for><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'
- value='`$network-index`' />
-</set><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.'
- value='vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.' />
-</set><switch test='`$aai.az.availability-zone_length`'>
-<outcome value=''><switch test='`$db.vf-model.avail-zone-max-count &gt; 0`'>
-<outcome value='true'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`'No availability zones found in AAI for cloud region '
- + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />
-</return></outcome><outcome value='false'>
-<set>
-<parameter name='aai.az.availability-zone_length' value='0' />
-</set></outcome></switch></outcome></switch><for index='idx' start='0' end='`$aai.az.availability-zone_length`' >
-<block atomic="true"><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[$idx]'
- value='`$aai.az.availability-zone[$idx].availability-zone-name`' />
-</set><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="generic-vnf:relationship-list"
- key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"
- force="true" pfx="tmp.AnAI-data">
- <parameter name="relationship-list.relationship[0].related-to" value="availability-zone" />
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="cloud-region.cloud-owner" />
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="CloudOwner" />
- <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-key" value="cloud-region.cloud-region-id" />
- <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-value" value="`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />
- <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-key" value="availability-zone.availability-zone-name" />
- <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-value" value="`$aai.az.availability-zone[$idx].availability-zone-name`" />
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating generic-vnf in AAI" />
-</return></outcome><outcome value='not-found'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />
-</return></outcome></save></block></for><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.max-count'
- value='`$db.vf-model.avail-zone-max-count`' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone_length'
- value='`$aai.az.availability-zone_length`' />
-</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`' >
-<block atomic="true"><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="generic-vnf:relationship-list"
- key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"
- force="true" pfx="tmp.AnAI-data">
- <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="l3-network.network-id" />
- <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`" />
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating generic-vnf in AAI" />
-</return></outcome><outcome value='not-found'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />
-</return></outcome></save></block></for><set>
-<parameter name='vnf-object-path'
- 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'`"/>
-
-</set><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="generic-vnf"
- key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id"
- force="true" pfx="tmp.AnAI-data">
-<parameter name="vnf-name" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name`" />
-<parameter name="prov-status" value="PREPROV" />
-<parameter name="operational-status" value="out-of-service-path" />
-<parameter name="equipment-role" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`" />
-<parameter name="model-invariant-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid`" />
-<parameter name="model-version-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid`" />
-<parameter name="model-customization-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`" />
-<parameter name="selflink" value="`$vnf-object-path`" />
-<outcome value='failure'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="Error updating selflink in generic-vnf in AAI" />
-</return></outcome><outcome value='not-found'>
-<return status='failure'>
- <parameter name='ack-final' value='Y'/>
- <parameter name="error-code" value="500" />
- <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />
-</return></outcome></update><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />
-
-</set><set>
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />
-<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`' />
-<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`' />
-</set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >
-<parameter name='filename' value='/var/tmp/bgb-viprend.log' />
-</execute><return status='success'>
-<parameter name="ack-final-indicator" value="Y" />
-<parameter name="error-code" value="200" />
-<parameter name="error-message" value="`$error-message`" />
-</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}'>
+ <method rpc='vnf-topology-operation-assign' mode='sync'>
+ <block atomic="true">
+ <switch test='`$vnf-topology-operation-input.request-information.request-action`'>
+ <outcome value='CreateVnfInstance'>
+ <block></block>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="If svc-action is 'assign' then request-action must be 'CreateVnfInstance'" />
+ </return>
+ </outcome>
+ </switch>
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+ key='SELECT * from VF_MODEL WHERE customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'
+ pfx='db.vf-model'>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error reading VF_MODEL table" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'No model found for VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`" />
+ </return>
+ </outcome>
+ </get-resource>
+ <switch test='`$service-data.vnfs.vnf_length`'>
+ <outcome value=''>
+ <set>
+ <parameter name='vnf-index' value='0' />
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <block>
+ <set>
+ <parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />
+ </set>
+ <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >
+ <switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>
+ <outcome value='true'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </return>
+ </outcome>
+ </switch>
+ </for>
+ </block>
+ </outcome>
+ </switch>
+ <set>
+ <parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id'
+ value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-type'
+ value='`$vnf-topology-operation-input.vnf-information.vnf-type`' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-type'
+ value='`$db.vf-model.nf-type`' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role'
+ value='`$db.vf-model.nf-role`' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-function'
+ value='`$db.vf-model.nf-function`' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-code'
+ value='`$db.vf-model.nf-code`' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.tenant'
+ value='`$vnf-topology-operation-input.vnf-request-input.tenant`' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-cloud-region'
+ value='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`' />
+ </set>
+ <switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-name`'>
+ <outcome value=''>
+ <block atomic="true">
+ <switch test='`$db.vf-model.ecomp-generated-naming`'>
+ <outcome value='Y'>
+ <block></block>
+ </outcome>
+ <outcome value='N'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="No vnf-name was received but ecomp-generated-naming is not Y" />
+ </return>
+ </outcome>
+ <outcome value='Other'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="No vnf-name was received but ecomp-generated-naming is not Y" />
+ </return>
+ </outcome>
+ </switch>
+ <set>
+ <parameter name='generate-unique-name-input.index-table-name' value='VNF_NAME_INDEX' />
+ <parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />
+ <parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />
+ <parameter name='generate-unique-name-input.prefix' value="`'z' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + $db.vf-model.nf-code`" />
+ <parameter name='generate-unique-name-input.index-length' value='2' />
+ </set>
+ <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />
+ </return>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='tmp.vnf-name' value='`$generate-unique-name-output.generated-name`' />
+ </set>
+ </outcome>
+ </call>
+ </block>
+ </outcome>
+ <outcome value='Other'>
+ <block atomic="true">
+ <set>
+ <parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />
+ <parameter name='generate-unique-name-input.supplied-name' value='`$vnf-topology-operation-input.vnf-request-input.vnf-name`' />
+ </set>
+ <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />
+ </return>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='tmp.vnf-name' value="`$vnf-topology-operation-input.vnf-request-input.vnf-name`" />
+ </set>
+ </outcome>
+ </call>
+ </block>
+ </outcome>
+ </switch>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id'
+ value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name'
+ value='`$tmp.vnf-name`' />
+ </set>
+ <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`'>
+ <outcome value=''>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'
+ value='`$db.vf-model.invariant-uuid`' />
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'
+ value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />
+ </set>
+ </outcome>
+ </switch>
+ <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`'>
+ <outcome value=''>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'
+ value='`$db.vf-model.uuid`' />
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'
+ value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />
+ </set>
+ </outcome>
+ </switch>
+ <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`'>
+ <outcome value=''>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'
+ value='`$db.vf-model.version`' />
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'
+ value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`' />
+ </set>
+ </outcome>
+ </switch>
+ <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`'>
+ <outcome value=''>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'
+ value='`$db.vf-model.name`' />
+ </set>
+ </outcome>
+ <outcome value='Other'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'
+ value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`' />
+ </set>
+ </outcome>
+ </switch>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'
+ value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />
+ </set>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="cloud-region"
+ key="cloud-region.cloud-owner = 'CloudOwner' AND
+ cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND
+ depth='0'"
+ pfx='aai.cloud-region' local-only='false' >
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Cloud region not found in AAI" />
+ </return>
+ </outcome>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error retrieving cloud region from AAI" />
+ </return>
+ </outcome>
+ </get-resource>
+ <for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >
+ <switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>
+ <outcome value='complex'>
+ <block atomic="true">
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>
+ <parameter name='ctx_memory_result_key' value='aai-uid-split' />
+ <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />
+ <parameter name='regex' value='/' />
+ </execute>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli'
+ value='`$aai-uid-split[$aai-uid-split_length - 1]`' />
+ </set>
+ <break></break>
+ </block>
+ </outcome>
+ </switch>
+ </for>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="availability-zones"
+ key="cloud-region.cloud-owner = 'CloudOwner' AND
+ cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND
+ depth='0'"
+ pfx='aai.az' local-only='false' >
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error retrieving availability zones from AAI" />
+ </return>
+ </outcome>
+ </get-resource>
+ <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli`'>
+ <outcome value=''>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </return>
+ </outcome>
+ </switch>
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+ key='SELECT * from VF_TO_NETWORK_ROLE_MAPPING WHERE vf_customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'
+ pfx='db.vf-network-role-mapping[]'>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error reading VF_TO_NETWORK_ROLE_MAPPING table" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='db.vf-network-role-mapping_length' value='0' />
+ </set>
+ </outcome>
+ </get-resource>
+ <set>
+ <parameter name='network-index' value='0' />
+ </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"
+ resource="l3-networks"
+ key="l3-network.network-role = $db.vf-network-role-mapping[$role-index].network-role"
+ pfx='aai.l3-network' local-only='false'
+ >
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <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`" />
+ </return>
+ </outcome>
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error retrieving l3-network from AAI" />
+ </return>
+ </outcome>
+ </get-resource>
+ <set>
+ <parameter name='l3-network-id' value='-1' />
+ </set>
+ <block>
+ <for index='db-network-index' start='0' end='`$aai.l3-network.l3-network_length`' >
+ <switch test='`$aai.l3-network.l3-network[$db-network-index].orchestration-status`'>
+ <outcome value='PendingCreate'>
+ <block></block>
+ </outcome>
+ <outcome value='Pending Create'>
+ <block></block>
+ </outcome>
+ <outcome value='PendingDelete'>
+ <block></block>
+ </outcome>
+ <outcome value='Pending Delete'>
+ <block></block>
+ </outcome>
+ <outcome value='Other'>
+ <for silentFailure='true' index='db-rel-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship_length`' >
+ <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].related-to`'>
+ <outcome value='cloud-region'>
+ <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`' >
+ <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>
+ <outcome value='cloud-region.cloud-region-id'>
+ <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`'>
+ <outcome value='true'>
+ <block atomic="true">
+ <set>
+ <parameter name='l3-network-id' value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />
+ </set>
+ <return status='failure'></return>
+ </block>
+ </outcome>
+ </switch>
+ </outcome>
+ </switch>
+ </for>
+ </outcome>
+ </switch>
+ </for>
+ </outcome>
+ </switch>
+ </for>
+ <return status='success'></return>
+ </block>
+ <switch test='`$l3-network-id`'>
+ <outcome value='-1'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'Unable to find l3-network in AAI for network role ' + $db.vf-network-role-mapping[$role-index].network-role`" />
+ </return>
+ </outcome>
+ </switch>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-role'
+ value='`$db.vf-network-role-mapping[$role-index].network-role`' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-name'
+ value='`$aai.l3-network.l3-network[$db-network-index].network-name`' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].neutron-id'
+ value='`$aai.l3-network.l3-network[$db-network-index].neutron-network-id`' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-id'
+ value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].contrail-network-fqdn'
+ value='`$aai.l3-network.l3-network[$db-network-index].contrail-network-fqdn`' />
+ </set>
+ <for index='subnet-index' start='0' end='`$aai.l3-network.l3-network[0].subnets.subnet_length`' >
+ <set>
+ <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'
+ value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].ip-version`' />
+ <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'
+ value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-id`' />
+ </set>
+ </for>
+ <set>
+ <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'
+ value='`$aai.l3-network.l3-network[0].subnets.subnet_length`' />
+ </set>
+ <set>
+ <parameter name='network-index' value='`$network-index + 1`' />
+ </set>
+ </block>
+ </for>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'
+ value='`$network-index`' />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.'
+ value='vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.' />
+ </set>
+ <switch test='`$aai.az.availability-zone_length`'>
+ <outcome value=''>
+ <switch test='`$db.vf-model.avail-zone-max-count &gt; 0`'>
+ <outcome value='true'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'No availability zones found in AAI for cloud region ' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />
+ </return>
+ </outcome>
+ <outcome value='false'>
+ <set>
+ <parameter name='aai.az.availability-zone_length' value='0' />
+ </set>
+ </outcome>
+ </switch>
+ </outcome>
+ </switch>
+ <for index='idx' start='0' end='`$aai.az.availability-zone_length`' >
+ <block atomic="true">
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[$idx]'
+ value='`$aai.az.availability-zone[$idx].availability-zone-name`' />
+ </set>
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf:relationship-list"
+ key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"
+ force="true" pfx="tmp.AnAI-data">
+ <parameter name="relationship-list.relationship[0].related-to" value="availability-zone" />
+ <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="cloud-region.cloud-owner" />
+ <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="CloudOwner" />
+ <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-key" value="cloud-region.cloud-region-id" />
+ <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-value" value="`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />
+ <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-key" value="availability-zone.availability-zone-name" />
+ <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-value" value="`$aai.az.availability-zone[$idx].availability-zone-name`" />
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating generic-vnf in AAI" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />
+ </return>
+ </outcome>
+ </save>
+ </block>
+ </for>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.max-count'
+ value='`$db.vf-model.avail-zone-max-count`' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone_length'
+ value='`$aai.az.availability-zone_length`' />
+ </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`' >
+ <block atomic="true">
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf:relationship-list"
+ key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"
+ force="true" pfx="tmp.AnAI-data">
+ <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />
+ <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="l3-network.network-id" />
+ <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`" />
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating generic-vnf in AAI" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />
+ </return>
+ </outcome>
+ </save>
+ </block>
+ </for>
+ <set>
+ <parameter name='vnf-object-path'
+ 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'`"/>
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id"
+ force="true" pfx="tmp.AnAI-data">
+ <parameter name="vnf-name" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name`" />
+ <parameter name="prov-status" value="PREPROV" />
+ <parameter name="operational-status" value="out-of-service-path" />
+ <parameter name="equipment-role" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`" />
+ <parameter name="model-invariant-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid`" />
+ <parameter name="model-version-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid`" />
+ <parameter name="model-customization-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`" />
+ <parameter name="selflink" value="`$vnf-object-path`" />
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="Error updating selflink in generic-vnf in AAI" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='ack-final' value='Y'/>
+ <parameter name="error-code" value="500" />
+ <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />
+ </return>
+ </outcome>
+ </update>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />
+ <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`' />
+ <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`' />
+ </set>
+ <return status='success'>
+ <parameter name="ack-final-indicator" value="Y" />
+ <parameter name="error-code" value="200" />
+ <parameter name="error-message" value="`$error-message`" />
+ </return>
+ </block>
+ </method>
+</service-logic> \ No newline at end of file