diff options
Diffstat (limited to 'platform-logic/generic-resource-api/src/main')
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 > $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 > 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 > 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 > $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 > 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 > 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 > 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 > 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 > $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 > 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 > 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 > 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 > 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 > 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 > $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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 |