aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCheung, Pat <kc1472@att.com>2018-11-01 18:30:58 +0000
committerTimoney, Dan (dt5972) <dtimoney@att.com>2018-11-01 14:47:50 -0400
commitbc265458adb8189cff56662fca6b543ffde8b750 (patch)
treeabfaad4a1514212a81aa8a8295f6219bab3394f6
parent5f2deedd4d0d1c0b8b1c97cf9e7e3e5f9f1138cf (diff)
self-serve DG bug fixes
Fixing various bug fixes for self serve logics Change-Id: I9127900df427483ac9bc93c51774d7b1f97ba1c5 Issue-ID: SDNC-509 Signed-off-by: Cheung, Pat <kc1472@att.com> Former-commit-id: 8eb03908d9de95073ec6484a95009a033f324b8a
-rw-r--r--platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-aai-vf-module-put.json2
-rw-r--r--platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-aai-vnf-put.json2
-rw-r--r--platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-capability-param-resolution.json2
-rw-r--r--platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-mS-vlan-tag-assign.json2
-rwxr-xr-xplatform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-changeassign.json2
-rwxr-xr-xplatform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-changeassign.json2
-rwxr-xr-xplatform-logic/generic-resource-api/src/main/resources/graph.versions3
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-vf-module-put.xml9116
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-vnf-put.xml473
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-capability-param-resolution.xml4
-rw-r--r--platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-mS-vlan-tag-assign.xml263
-rwxr-xr-xplatform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-changeassign.xml2
-rwxr-xr-xplatform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-changeassign.xml18
-rw-r--r--platform-logic/restapi-templates/src/main/json/self-serve-vfmodule-assignments.json60
14 files changed, 5942 insertions, 4009 deletions
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-aai-vf-module-put.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-aai-vf-module-put.json
index 5d28c63a..557a6b88 100644
--- a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-aai-vf-module-put.json
+++ b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-aai-vf-module-put.json
@@ -1 +1 @@
-[{"id":"7b26ebf.6f49f14","type":"dgstart","name":"DGSTART","outputs":1,"x":105.55554962158203,"y":32.22222137451172,"z":"587ae061.3728","wires":[["2394077.d0dfaf8"]]},{"id":"26a09f3e.623a8","type":"method","name":"method self-serve-aai-vf-module-put","xml":"<method rpc='self-serve-aai-vf-module-put' mode='sync'>\n","comments":"","outputs":1,"x":236.34127044677734,"y":107.68254470825195,"z":"587ae061.3728","wires":[["670345b1.4bc86c"]]},{"id":"670345b1.4bc86c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":116.87699127197266,"y":188.46034049987793,"z":"587ae061.3728","wires":[["bbc591bb.706e9","914f01b6.fe9b3"]]},{"id":"2394077.d0dfaf8","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":378.4126968383789,"y":31.65078830718994,"z":"587ae061.3728","wires":[["26a09f3e.623a8"]]},{"id":"bbc591bb.706e9","type":"switchNode","name":"switch: ss.capability-action","xml":"<switch test='`$ss.capability-action`'>\n","comments":"","outputs":1,"x":360.5555763244629,"y":188.11507368087769,"z":"587ae061.3728","wires":[["5b59a23f.8a739c","d9805320.cf78c","5176d4f5.0acf6c"]]},{"id":"5b59a23f.8a739c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":569.0555725097656,"y":188.36507368087769,"z":"587ae061.3728","wires":[["4126a6bd.b190e8"]]},{"id":"4126a6bd.b190e8","type":"returnFailure","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=\"ss.capability-action is null\" />\n","comments":"","x":724.9722442626953,"y":188.4761724472046,"z":"587ae061.3728","wires":[]},{"id":"d9805320.cf78c","type":"outcome","name":"assign","xml":"<outcome value='assign'>","comments":"","outputs":1,"x":568.8055686950684,"y":237.3650770187378,"z":"587ae061.3728","wires":[["b7a31908.a7c678"]]},{"id":"914f01b6.fe9b3","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss.aai.vfmoduleput.log' />\n","comments":"","outputs":1,"x":312.51983642578125,"y":413.65077209472656,"z":"587ae061.3728","wires":[[]]},{"id":"5be66a71.cb9eb4","type":"save","name":"update generic-vnf","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \" >\n<parameter name=\"ipv4-loopback0-address\" value='`$ss.param.ipv4-loopback0-address`' />\n<parameter name=\"ipv4-oam-address\" value='`$ss.param.ipv4-oam-address`' />\n<parameter name=\"as-number\" value='`$ss.param.as-number`' />\n<parameter name=\"vlan-id-outer\" value='`$ss.param.vlan-id-outer`' />\n\n","comments":"","outputs":1,"x":956.0198516845703,"y":1590.0438108444214,"z":"587ae061.3728","wires":[["6c640f39.1083a","9b325eef.ee788"]]},{"id":"6c640f39.1083a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1156.2698822021484,"y":1590.400857925415,"z":"587ae061.3728","wires":[["4e70de55.d4a13"]]},{"id":"9b325eef.ee788","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1162.5198936462402,"y":1642.1508922576904,"z":"587ae061.3728","wires":[["d4583f14.def33"]]},{"id":"8b85bac9.76e438","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update generic-vnf.vnf-name in AnAI with vnf-name=' + $ss.param.vnf-name`\" />\n","comments":"","x":1594.1388397216797,"y":1590.186562538147,"z":"587ae061.3728","wires":[]},{"id":"abce347d.bd24a8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update generic-vnf.vnf-name because generic-vnf with vnf-id =' + $ss.param.vnf-id + ' is not found in AAI'`\" />\n","comments":"","x":1594.7103576660156,"y":1640.4247388839722,"z":"587ae061.3728","wires":[]},{"id":"1a6a99cc.372f26","type":"save","name":"update volume-group","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"volume-group\"\n\t\tkey=\"cloud-region.cloud-owner = $prop.cloud-owner \n\t\t\tAND cloud-region.cloud-region-id = $ss.param.aic-cloud-region \n\t\t\tAND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner \n\t\t\tAND volume-group-id = $ss.param.volume-group-id\" >\n<parameter name=\"volume-group-name\" value='`$ss.param.volume-group-name`' />\n<parameter name=\"volume-group-id\" value='`$ss.param.volume-group-id`' />\n","comments":"","outputs":1,"x":952.9840469360352,"y":2554.0077180862427,"z":"587ae061.3728","wires":[["4597574f.498bd8","3daece71.ee4af2"]]},{"id":"4597574f.498bd8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1160.9840469360352,"y":2554.0077180862427,"z":"587ae061.3728","wires":[["4beed03c.8d4db"]]},{"id":"22c667e8.cd2b28","type":"save","name":"Rollback generic-vnf update","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \" >\n<parameter name=\"ipv4-loopback0-address\" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />\n<parameter name=\"ipv4-oam-address\" value='`$tmp.aai.vnf.ipv4-oam-address`' />\n<parameter name=\"as-number\" value='`$tmp.aai.vnf.as-number`' />\n<parameter name=\"vlan-id-outer\" value='`$tmp.aai.vnf.vlan-id-outer`' />","comments":"","outputs":1,"x":4193.103519439697,"y":1945.0324897766113,"z":"587ae061.3728","wires":[["2e11bcd4.889d84","5bf6e296.b005ac","11cfdb92.6bbdf4"]]},{"id":"2e11bcd4.889d84","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":4431.353504180908,"y":1944.532434463501,"z":"587ae061.3728","wires":[["49935fa6.5ff8e"]]},{"id":"5bf6e296.b005ac","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":4437.603515625,"y":1996.2824687957764,"z":"587ae061.3728","wires":[["60848333.084a8c"]]},{"id":"8bdbab0.659cb58","type":"save","name":"get generic-vnf","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \"\n\tpfx=\"tmp.aai.vnf\" >\n\n","comments":"","outputs":1,"x":949.3055763244629,"y":1430.9365787506104,"z":"587ae061.3728","wires":[["967cd3cd.ea61c","7745898a.e7ff88"]]},{"id":"967cd3cd.ea61c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1157.841209411621,"y":1430.436499595642,"z":"587ae061.3728","wires":[["e290c73f.be4828"]]},{"id":"7745898a.e7ff88","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1164.0911293029785,"y":1529.3294076919556,"z":"587ae061.3728","wires":[["2828353c.ce5f2a"]]},{"id":"e15519a.36e41e8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Encountered error to get generic-vnf with vnf-id=' + $ss.param.vnf-id + ' from AnAI'`\" />\n","comments":"","x":1600.2814140319824,"y":1475.9365186691284,"z":"587ae061.3728","wires":[]},{"id":"f68a0f36.041db","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'generic-vnf.vnf-name with vnf-id=' + $ss.param.vnf-id + ' not found in AAI'`\" />\n","comments":"","x":1601.9958877563477,"y":1529.8890762329102,"z":"587ae061.3728","wires":[]},{"id":"20e12a6b.8386e6","type":"save","name":"update volume-group","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"volume-group\"\n\t\tkey=\"cloud-region.cloud-owner = $prop.cloud-owner \n\t\t\tAND cloud-region.cloud-region-id = $ss.param.aic-cloud-region \n\t\t\tAND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner \n\t\t\tAND volume-group-id = $ss.param.volume-group-id\" >\n<parameter name=\"volume-group-name\" value='`$tmp.aai.volume-group.volume-group-name`' />","comments":"","outputs":1,"x":3999.245964050293,"y":2583.74653339386,"z":"587ae061.3728","wires":[["9f9ef8cf.ba0808","5960c4d9.4f908c","a3fabdd5.5e91c"]]},{"id":"4beed03c.8d4db","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1355.7340393066406,"y":2554.007691383362,"z":"587ae061.3728","wires":[["723cef03.6f931","813dff6d.3c4df"]]},{"id":"b7a31908.a7c678","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":722.5555648803711,"y":237.61507320404053,"z":"587ae061.3728","wires":[["8bdbab0.659cb58","5be66a71.cb9eb4","1a6a99cc.372f26","b3d36a2d.60ec98","e164d9f4.60c058","7e27541a.fd7cac","70716c34.e32b54","41ec3a6e.5488d4","ab5a0467.30fd98","14b65022.d7dc6","eafc73a1.97feb","608befa2.bb7d1"]]},{"id":"b3d36a2d.60ec98","type":"set","name":"set resource-resolution-data.status = SUCCESS","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='SUCCESS' />\n","comments":"","x":1008.9723587036133,"y":5359.127058982849,"z":"587ae061.3728","wires":[]},{"id":"e290c73f.be4828","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1329.4127960205078,"y":1430.4722929000854,"z":"587ae061.3728","wires":[["e2a65309.1de6b","e15519a.36e41e8"]]},{"id":"4e70de55.d4a13","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1329.6984481811523,"y":1590.4723825454712,"z":"587ae061.3728","wires":[["e2a65309.1de6b","8b85bac9.76e438"]]},{"id":"d4583f14.def33","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1332.5556640625,"y":1641.3295240402222,"z":"587ae061.3728","wires":[["e2a65309.1de6b","abce347d.bd24a8"]]},{"id":"2828353c.ce5f2a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1330.269874572754,"y":1529.4722929000854,"z":"587ae061.3728","wires":[["e2a65309.1de6b","f68a0f36.041db"]]},{"id":"e2a65309.1de6b","type":"set","name":"set resource-resolution-data.status = FAILED","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":1696.9841842651367,"y":1430.186604499817,"z":"587ae061.3728","wires":[]},{"id":"1821aab8.b0b995","type":"for","name":"for bidx in param_length (VF-MODULE)","xml":"<for silentFailure='true' index=\"bidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\" >\n","comments":"","outputs":1,"x":1290.7459030151367,"y":321.60316371917725,"z":"587ae061.3728","wires":[["c7903cf5.7529f"]]},{"id":"2efcedeb.63df22","type":"switchNode","name":"switch param[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].name`'>\n","comments":"","outputs":1,"x":2025.8888702392578,"y":837.0317640304565,"z":"587ae061.3728","wires":[["b3062d0b.d599a","de4afc04.ac71b","cc904d52.55947","3a38cbce.3d1914","c2c93de0.a525a","f33802e2.35a41","dcdd6fda.009f2","41fff236.4d538c","f85da22e.73f75","64a45c1e.5e5da4","3c333dc5.d2c562","a56d2ffd.59cb8","a8e2121d.a4758","3f467dbb.41a9a2","bfa7fb43.80d328","4f4f7860.ec2048","db27910b.c139","b0169c71.ea199","781da3e1.bf8fdc","21a35d6b.aba542"]]},{"id":"b3062d0b.d599a","type":"outcome","name":"vf_module_id","xml":"<outcome value='vf_module_id'>\n","comments":"","outputs":1,"x":2319.8888626098633,"y":432.888876914978,"z":"587ae061.3728","wires":[["e8f48aaa.3c8928"]]},{"id":"e8f48aaa.3c8928","type":"set","name":"set ss.param.vf-module-id","xml":"<set>\n<parameter name='ss.param.vf-module-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n","comments":"","x":2658.3174934387207,"y":433.74604082107544,"z":"587ae061.3728","wires":[]},{"id":"de4afc04.ac71b","type":"outcome","name":"vf_module_name","xml":"<outcome value='vf_module_name'>\n","comments":"","outputs":1,"x":2331.3174018859863,"y":475.74602603912354,"z":"587ae061.3728","wires":[["44d7cd5b.26ec74"]]},{"id":"44d7cd5b.26ec74","type":"set","name":"set ss.param.vf-module-name","xml":"<set>\n<parameter name='ss.param.vf-module-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n","comments":"","x":2669.603157043457,"y":476.3174843788147,"z":"587ae061.3728","wires":[]},{"id":"cc904d52.55947","type":"outcome","name":"volume-group-name","xml":"<outcome value='volume-group-name'>\n","comments":"","outputs":1,"x":2340.6031341552734,"y":560.6032028198242,"z":"587ae061.3728","wires":[["27bd99c7.bf9f06"]]},{"id":"27bd99c7.bf9f06","type":"set","name":"set ss.param.volume-group-name","xml":"<set>\n<parameter name='ss.param.volume-group-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n","comments":"","x":2683.603157043457,"y":561.3174843788147,"z":"587ae061.3728","wires":[]},{"id":"3a38cbce.3d1914","type":"outcome","name":"aic-cloud-region","xml":"<outcome value='aic-cloud-region'>\n","comments":"","outputs":1,"x":2326.603183746338,"y":602.6031827926636,"z":"587ae061.3728","wires":[["d06fa0c.76b6f6"]]},{"id":"d06fa0c.76b6f6","type":"set","name":"set ss.param.aic-cloud-region","xml":"<set>\n<parameter name='ss.param.aic-cloud-region' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n","comments":"","x":2671.8889389038086,"y":603.1746411323547,"z":"587ae061.3728","wires":[]},{"id":"c2c93de0.a525a","type":"outcome","name":"volume_group_id","xml":"<outcome value='volume_group_id'>\n","comments":"","outputs":1,"x":2331.8888778686523,"y":517.8889169692993,"z":"587ae061.3728","wires":[["4b1c4733.8a7788"]]},{"id":"4b1c4733.8a7788","type":"set","name":"set ss.param.volume-group-id","xml":"<set>\n<parameter name='ss.param.volume-group-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n","comments":"","x":2670.174633026123,"y":518.4603753089905,"z":"587ae061.3728","wires":[]},{"id":"7e27541a.fd7cac","type":"save","name":"update vf-module","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"vf-module\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \n\t\t\tAND vf-module.vf-module-id = $ss.param.vf-module-id \" >\n<parameter name=\"vf-module-name\" value='`$ss.param.vf-module-name`' />\n","comments":"","outputs":1,"x":949.9128341674805,"y":2117.162986755371,"z":"587ae061.3728","wires":[["18b35a36.1a22d6","4d3835b8.abd7fc"]]},{"id":"18b35a36.1a22d6","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1143.1628189086914,"y":2116.6629314422607,"z":"587ae061.3728","wires":[["4becd3c6.95804c"]]},{"id":"4d3835b8.abd7fc","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1149.4128303527832,"y":2168.412965774536,"z":"587ae061.3728","wires":[["c9bc817f.270c2"]]},{"id":"34f7a405.4decbc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'vf-module not found in AnAI with vf-module-id=' + $ss.param.vf-module-id + $error-message`\" />\n","comments":"","x":1499.0079650878906,"y":2045.841459274292,"z":"587ae061.3728","wires":[]},{"id":"e164d9f4.60c058","type":"save","name":"get vf-module","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"vf-module\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \n\t\t\tAND vf-module.vf-module-id = $ss.param.vf-module-id \"\n\tpfx=\"tmp.aai.vfmdoule\" >\n\n","comments":"","outputs":1,"x":941.5914726257324,"y":1955.5556411743164,"z":"587ae061.3728","wires":[["134aeeb9.731e21","439be79e.916c28"]]},{"id":"134aeeb9.731e21","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1130.8414573669434,"y":1955.055585861206,"z":"587ae061.3728","wires":[["a9b53c64.98c31"]]},{"id":"439be79e.916c28","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1138.5199394226074,"y":2011.0912771224976,"z":"587ae061.3728","wires":[["43a38615.dde1b8"]]},{"id":"4becd3c6.95804c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1340.5913848876953,"y":2116.734456062317,"z":"587ae061.3728","wires":[["d53d90e1.35335","19217514.29df0b"]]},{"id":"c9bc817f.270c2","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1343.448600769043,"y":2167.591597557068,"z":"587ae061.3728","wires":[["c3c8c0a5.2b2e3","19217514.29df0b"]]},{"id":"8caa3e1d.19b86","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":4244.532001495361,"y":1899.4011116027832,"z":"587ae061.3728","wires":[]},{"id":"11cfdb92.6bbdf4","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":4435.42476272583,"y":2044.544038772583,"z":"587ae061.3728","wires":[["e232aa68.c9ca08"]]},{"id":"19217514.29df0b","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3935.710460662842,"y":1855.7940559387207,"z":"587ae061.3728","wires":[["8caa3e1d.19b86","22c667e8.cd2b28","489c245b.b0274c"]]},{"id":"4aa37991.d5d7f8","type":"save","name":"Rollback vf-module update","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"vf-module\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \n\t\t\tAND vf-module.vf-module-id = $ss.param.vf-module-id \" >\n<parameter name=\"vf-module-name\" value='`$tmp.aai.vfmdoule.vf-module-name`' />","comments":"","outputs":1,"x":4171.032272338867,"y":2225.6152572631836,"z":"587ae061.3728","wires":[["328a520c.3947ce","42080a8e.cb8ca4","a5e6f2ca.4741c"]]},{"id":"328a520c.3947ce","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":4409.282257080078,"y":2225.1152019500732,"z":"587ae061.3728","wires":[["2938cb15.2d2414"]]},{"id":"42080a8e.cb8ca4","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":4417.53226852417,"y":2267.8652362823486,"z":"587ae061.3728","wires":[["8acca4a5.d63fc8"]]},{"id":"a5e6f2ca.4741c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":4414.353515625,"y":2311.1268062591553,"z":"587ae061.3728","wires":[["1c9758b3.0c0cb7"]]},{"id":"f33802e2.35a41","type":"outcome","name":"vnfc-name","xml":"<outcome value='vnfc-name'>","comments":"","outputs":1,"x":2309.9365463256836,"y":647.6983466148376,"z":"587ae061.3728","wires":[["8c076485.6b1728"]]},{"id":"8c076485.6b1728","type":"set","name":"set ss.param.vnfc-name, index","xml":"<set>\n<parameter name='ss.param.vnfc-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.vnfc-name-index' value='`$bidx`' />","comments":"","x":2676.043773651123,"y":648.4484195709229,"z":"587ae061.3728","wires":[]},{"id":"79520400.13e42c","type":"comment","name":"vf-module params","info":"","comments":"","x":1943.6030883789062,"y":504.98407554626465,"z":"587ae061.3728","wires":[]},{"id":"6fd7ede2.6a41d4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to get vf-module in AnAI with vf-module-id = ' + $ss.param.vf-module-id + $error-message`\" />\n","comments":"","x":1499.1389465332031,"y":1991.0556926727295,"z":"587ae061.3728","wires":[]},{"id":"a9b53c64.98c31","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1302.80570602417,"y":1955.5557498931885,"z":"587ae061.3728","wires":[["6fd7ede2.6a41d4","19217514.29df0b"]]},{"id":"43a38615.dde1b8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1303.0556869506836,"y":2011.0557289123535,"z":"587ae061.3728","wires":[["34f7a405.4decbc","19217514.29df0b"]]},{"id":"49935fa6.5ff8e","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":4614.174701690674,"y":1944.6511087417603,"z":"587ae061.3728","wires":[]},{"id":"60848333.084a8c","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":4616.674701690674,"y":1995.901110649109,"z":"587ae061.3728","wires":[]},{"id":"e232aa68.c9ca08","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\" Rollback of generic-vnf update completed. \" />\n","comments":"","x":4619.174701690674,"y":2044.9011087417603,"z":"587ae061.3728","wires":[]},{"id":"d53d90e1.35335","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update vf-module-name with vf-module-id = ' + $ss.param.vf-module-id + ' in AnAI; ' + $error-message`\" />\n","comments":"","x":1533.4723205566406,"y":2142.0557403564453,"z":"587ae061.3728","wires":[]},{"id":"c3c8c0a5.2b2e3","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update vf-module-name with vf-module-id =' + $ss.param.vf-module-id + ' because vf-module is not found in AAI' + $error-message`\" />\n","comments":"","x":1534.7223205566406,"y":2192.805742263794,"z":"587ae061.3728","wires":[]},{"id":"723cef03.6f931","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to update volume-group with volume-group-id =' + $ss.param.volume-group-id + ' and volume-group-name = ' + $ss.param.volume-group-name + ' in AnAI.' + $error-message`\" />\n","comments":"","x":1548.9126892089844,"y":2554.341318130493,"z":"587ae061.3728","wires":[]},{"id":"2938cb15.2d2414","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`\" />\n","comments":"","x":4590.710739135742,"y":2224.579610824585,"z":"587ae061.3728","wires":[]},{"id":"8acca4a5.d63fc8","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`\" />\n","comments":"","x":4609.710739135742,"y":2267.079610824585,"z":"587ae061.3728","wires":[]},{"id":"489c245b.b0274c","type":"record","name":"record generic-vnf ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK generic-vnf update\"/>","comments":"","outputs":1,"x":4198.674701690674,"y":1854.9011096954346,"z":"587ae061.3728","wires":[[]]},{"id":"ac27fb68.a731c8","type":"record","name":"record vf-module ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK vf-module update\"/>","comments":"","outputs":1,"x":4178.960739135742,"y":2181.0796098709106,"z":"587ae061.3728","wires":[[]]},{"id":"621cfe10.6a00f","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3934.960708618164,"y":2181.329584121704,"z":"587ae061.3728","wires":[["ac27fb68.a731c8","4aa37991.d5d7f8"]]},{"id":"1c9758b3.0c0cb7","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback of vf-module update completed.'`\" />\n","comments":"","x":4597.460746765137,"y":2310.5796089172363,"z":"587ae061.3728","wires":[]},{"id":"9f9ef8cf.ba0808","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":4206.317329406738,"y":2584.222270011902,"z":"587ae061.3728","wires":[["29cd94c9.a4fedc"]]},{"id":"5960c4d9.4f908c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":4214.56734085083,"y":2626.9723043441772,"z":"587ae061.3728","wires":[["532afc8b.850994"]]},{"id":"a3fabdd5.5e91c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":4211.38858795166,"y":2670.233874320984,"z":"587ae061.3728","wires":[["8d72022f.86537"]]},{"id":"29cd94c9.a4fedc","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":4387.745811462402,"y":2583.6866788864136,"z":"587ae061.3728","wires":[]},{"id":"532afc8b.850994","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`\" />\n","comments":"","x":4406.745811462402,"y":2627.1866788864136,"z":"587ae061.3728","wires":[]},{"id":"8fa93667.ba6488","type":"record","name":"record volume-group ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK volume-group update\"/>","comments":"","outputs":1,"x":4037.9958114624023,"y":2540.1866779327393,"z":"587ae061.3728","wires":[[]]},{"id":"ef4014db.371ed8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3782.995780944824,"y":2540.4366521835327,"z":"587ae061.3728","wires":[["8fa93667.ba6488","20e12a6b.8386e6"]]},{"id":"8d72022f.86537","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback of volume_group completed.'`\" />\n","comments":"","x":4394.495819091797,"y":2670.686676979065,"z":"587ae061.3728","wires":[]},{"id":"70716c34.e32b54","type":"save","name":"save VNFC","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"vnfc\"\n\t\tkey=\"vnfc.vnfc-name = $ss.param.vnfc-name\" >\n<parameter name=\"nfc-naming-code\" value='`$ss.param.nfc-naming-code`' />\n<parameter name=\"nfc-function\" value='`$ss.param.nfc-function`' />\n<parameter name=\"model-customization-id\" value='`$ss.param.vnfc-model-customization-uuid`' />\n<parameter name=\"model-invariant-id\" value='`$ss.param.vnfc-model-invariant-uuid`' />\n<parameter name=\"model-version-id\" value='`$ss.param.vnfc-model-version`' />\n","comments":"","outputs":1,"x":917.3413467407227,"y":2848.293809890747,"z":"587ae061.3728","wires":[["8a3fd0b6.6280e","e0c3e38d.51691"]]},{"id":"8a3fd0b6.6280e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1106.3413467407227,"y":2848.293809890747,"z":"587ae061.3728","wires":[["38247114.ff80be"]]},{"id":"38247114.ff80be","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1309.0913391113281,"y":2848.293783187866,"z":"587ae061.3728","wires":[["829f5f37.eeb7e","c2f74776.281c08"]]},{"id":"829f5f37.eeb7e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create vnfc with vnfc-name =' + $ss.param.vnfc-name + ' in AnAI.' + $error-message`\" />\n","comments":"","x":1502.2699890136719,"y":2848.6274099349976,"z":"587ae061.3728","wires":[]},{"id":"4518b605.8ddd28","type":"save","name":"delete vnfc","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"vnfc\"\n\t\tkey=\"vnfc.vnfc-name = $ss.param.vnfc-name\" >","comments":"","outputs":1,"x":3830.1747703552246,"y":2887.6388149261475,"z":"587ae061.3728","wires":[["11a4b521.25a57b","8df7cd83.d9ea4","4c8defa8.ceafe"]]},{"id":"11a4b521.25a57b","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":4037.24613571167,"y":2888.1145515441895,"z":"587ae061.3728","wires":[["cde32e34.1f286"]]},{"id":"8df7cd83.d9ea4","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":4045.4961471557617,"y":2930.864585876465,"z":"587ae061.3728","wires":[["4d65af2a.eda2b"]]},{"id":"4c8defa8.ceafe","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":4042.317394256592,"y":2974.1261558532715,"z":"587ae061.3728","wires":[["c2521fb5.c495b"]]},{"id":"feb81e83.5db67","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":4474.674617767334,"y":2887.578960418701,"z":"587ae061.3728","wires":[]},{"id":"4d65af2a.eda2b","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`\" />\n","comments":"","x":4237.674617767334,"y":2931.078960418701,"z":"587ae061.3728","wires":[]},{"id":"c4ed8420.343b38","type":"record","name":"record vnfc ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK vnfc save\"/>","comments":"","outputs":1,"x":3867.924617767334,"y":2844.078959465027,"z":"587ae061.3728","wires":[[]]},{"id":"a66445ad.c6e778","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3624.9245681762695,"y":2843.7575731277466,"z":"587ae061.3728","wires":[["c4ed8420.343b38","4518b605.8ddd28"]]},{"id":"c2521fb5.c495b","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`\" />\n","comments":"","x":4225.4246253967285,"y":2974.5789585113525,"z":"587ae061.3728","wires":[]},{"id":"cf51daa2.2bb388","type":"save","name":"save connection-point","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"cp\"\n\t\tkey=\"cp.cp-instance-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id \n\t\tAND vnfc.vnfc.vnfc-name = $ss.param.vnfc-name\" >\n<parameter name=\"cp-instance-id\" \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id`' />","comments":"","outputs":1,"x":1263.0199508666992,"y":3035.293676376343,"z":"587ae061.3728","wires":[["2441e9af.073706","6aa96e1.1313b9","7e0461e0.77124"]]},{"id":"2441e9af.073706","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1484.0199508666992,"y":3035.293676376343,"z":"587ae061.3728","wires":[["49300019.24a0b"]]},{"id":"49300019.24a0b","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1677.7699432373047,"y":3035.293649673462,"z":"587ae061.3728","wires":[["52441a65.a27a64","7f9cda81.239a14"]]},{"id":"52441a65.a27a64","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create connection-point with cp-instance-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id + ' in AnAI.' + $error-message`\" />\n","comments":"","x":1861.9485931396484,"y":3035.6272764205933,"z":"587ae061.3728","wires":[]},{"id":"41ec3a6e.5488d4","type":"for","name":"for i in vnfc-network-data_length","xml":"<for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >\n","comments":"","outputs":1,"x":981.7341690063477,"y":3034.793632507324,"z":"587ae061.3728","wires":[["cf51daa2.2bb388"]]},{"id":"82a690a4.ccdc","type":"save","name":"save vlan-tag","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"vlan-tag\"\n\t\tkey=\"vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid\" >\n<parameter name=\"vlan-tag-id\" \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid`' />\n<parameter name=\"vlan-tag-role\" \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-tag-description`' />\n<parameter name=\"vlan-id-outer\" \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-tag-id`' />\n","comments":"","outputs":1,"x":1915.996078491211,"y":3659.71040058136,"z":"587ae061.3728","wires":[["b6d800ec.15f77","1d29b839.e69138","c2756913.223288"]]},{"id":"b6d800ec.15f77","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2092.996078491211,"y":3659.71040058136,"z":"587ae061.3728","wires":[["35e697ce.beef68"]]},{"id":"35e697ce.beef68","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2284.7460708618164,"y":3659.710373878479,"z":"587ae061.3728","wires":[["5a5a2f36.9965a","b989ea09.c55598"]]},{"id":"5a5a2f36.9965a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' in AnAI.' + $error-message`\" />\n","comments":"","x":2464.92472076416,"y":3660.0440006256104,"z":"587ae061.3728","wires":[]},{"id":"11ff501c.6422f","type":"save","name":"save l-interface","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"l-interface\"\n\t\tkey=\"l-interface.interface-name = $ss.param.oam-interface-name\n\t\tAND generic-vnf.vnf-id = $ss.param.vnf-id\" >\n<parameter name=\"interface-name\" value='`$ss.param.oam-interface-name`' />\n<parameter name=\"interface-role\" value='OAM' />\n","comments":"","outputs":1,"x":1854.5318145751953,"y":4120.030818939209,"z":"587ae061.3728","wires":[["1aa54dd9.0dee62","bc423cbf.7ea25"]]},{"id":"1aa54dd9.0dee62","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2027.5318145751953,"y":4120.030818939209,"z":"587ae061.3728","wires":[["cbb3b078.1d713"]]},{"id":"cbb3b078.1d713","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2197.281806945801,"y":4120.030792236328,"z":"587ae061.3728","wires":[["8f5af142.a1364","b989ea09.c55598"]]},{"id":"8f5af142.a1364","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create l-interface with interface-name = ' + $ss.param.oam-interface-name + ' in AnAI.' + $error-message`\" />\n","comments":"","x":2381.4604568481445,"y":4120.3644189834595,"z":"587ae061.3728","wires":[]},{"id":"2b02af6c.43d85","type":"for","name":"for j in in vlan-data_length","xml":"<for silentFailure='true' index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >\n","comments":"","outputs":1,"x":1693.9603118896484,"y":3659.4605054855347,"z":"587ae061.3728","wires":[["82a690a4.ccdc"]]},{"id":"6aa96e1.1313b9","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1492.4841918945312,"y":3080.7936754226685,"z":"587ae061.3728","wires":[["49300019.24a0b"]]},{"id":"64d3e11a.41a6b","type":"save","name":"delete vlan-tag","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"vlan-tag\"\n\t\tkey=\"vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid\" >","comments":"","outputs":1,"x":4291.889190673828,"y":3553.4123163223267,"z":"587ae061.3728","wires":[["4a8370ce.e010e","7f1657a7.92a418","3bd731c5.a13a4e"]]},{"id":"4a8370ce.e010e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":4498.960556030273,"y":3553.8880529403687,"z":"587ae061.3728","wires":[["1f1559a0.81e976"]]},{"id":"7f1657a7.92a418","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":4507.210567474365,"y":3596.638087272644,"z":"587ae061.3728","wires":[["c84f718f.2f76f"]]},{"id":"3bd731c5.a13a4e","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":4504.031814575195,"y":3639.8996572494507,"z":"587ae061.3728","wires":[["c24d6e93.59834"]]},{"id":"5b226aa3.cbdea4","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":4937.055931091309,"y":3552.685839176178,"z":"587ae061.3728","wires":[]},{"id":"c84f718f.2f76f","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`\" />\n","comments":"","x":4699.3890380859375,"y":3596.8524618148804,"z":"587ae061.3728","wires":[]},{"id":"80cf041f.38f1c8","type":"record","name":"record vlan-tag ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK vlan-tag save\"/>","comments":"","outputs":1,"x":3752.3537216186523,"y":3504.1380672454834,"z":"587ae061.3728","wires":[[]]},{"id":"90c07c4a.83ca","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3490.353691101074,"y":3504.388041496277,"z":"587ae061.3728","wires":[["80cf041f.38f1c8","19a92334.7e178d"]]},{"id":"c24d6e93.59834","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`\" />\n","comments":"","x":4687.139045715332,"y":3640.3524599075317,"z":"587ae061.3728","wires":[]},{"id":"544294cb.d5af0c","type":"comment","name":"Deleting vnfc will delete connection-point (cp)","info":"","comments":"","x":1787.0079650878906,"y":2982.341206550598,"z":"587ae061.3728","wires":[]},{"id":"1d29b839.e69138","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2101.3175201416016,"y":3706.0317764282227,"z":"587ae061.3728","wires":[["35e697ce.beef68"]]},{"id":"19a92334.7e178d","type":"for","name":"for i in vnfc-network-data_len","xml":"<for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >\n","comments":"","outputs":1,"x":3757.4608993530273,"y":3553.9837789535522,"z":"587ae061.3728","wires":[["709584aa.d56cbc"]]},{"id":"709584aa.d56cbc","type":"for","name":"for j in in vlan-data_length","xml":"<for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >\n","comments":"","outputs":1,"x":4053.889488220215,"y":3553.8409566879272,"z":"587ae061.3728","wires":[["64d3e11a.41a6b"]]},{"id":"e701689.fa89598","type":"save","name":"save cp relationship","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"vlan-tag:relationship-list\"\n\t\tkey=\"vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"cp\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"cp.cp-instance-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id`\" />","comments":"","outputs":1,"x":2282.603084564209,"y":3762.602714538574,"z":"587ae061.3728","wires":[["5e08607b.d4891","508b54b.91184ac"]]},{"id":"5e08607b.d4891","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2491.888858795166,"y":3762.1740951538086,"z":"587ae061.3728","wires":[["25fd854c.5dac5a"]]},{"id":"25fd854c.5dac5a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2683.92440032959,"y":3762.1740617752075,"z":"587ae061.3728","wires":[["b246448b.3ec4f8","b989ea09.c55598"]]},{"id":"b246448b.3ec4f8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create cp relationship for vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' in AnAI.' + $error-message`\" />\n","comments":"","x":2864.1030502319336,"y":3762.507688522339,"z":"587ae061.3728","wires":[]},{"id":"7e0461e0.77124","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1480.984260559082,"y":3659.5558919906616,"z":"587ae061.3728","wires":[["2b02af6c.43d85"]]},{"id":"dcdd6fda.009f2","type":"outcome","name":"oam-interface-name","xml":"<outcome value='oam-interface-name'>","comments":"","outputs":1,"x":2340.9365310668945,"y":690.5078482627869,"z":"587ae061.3728","wires":[["3d731ab3.981e86"]]},{"id":"3d731ab3.981e86","type":"set","name":"set ss.param.oam-interface-name, index","xml":"<set>\n<parameter name='ss.param.oam-interface-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.oam-interface-name-index' value='`$bidx`' />","comments":"","x":2704.043758392334,"y":691.2579212188721,"z":"587ae061.3728","wires":[]},{"id":"41fff236.4d538c","type":"outcome","name":"lo0-interface-name","xml":"<outcome value='=”lo0-interface-name'>","comments":"","outputs":1,"x":2337.650733947754,"y":733.2222218513489,"z":"587ae061.3728","wires":[["bd223968.8d8ed8"]]},{"id":"bd223968.8d8ed8","type":"set","name":"set ss.param.lo0-interface-name, index","xml":"<set>\n<parameter name='ss.param.lo0-interface-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.lo0-interface-name-index' value='`$bidx`' />","comments":"","x":2698.7579612731934,"y":733.9722948074341,"z":"587ae061.3728","wires":[]},{"id":"6845eda.7cb3314","type":"comment","name":"ROLLBACK STARET HERE","info":"","comments":"","x":3967.2461738586426,"y":1800.8534259796143,"z":"587ae061.3728","wires":[]},{"id":"813dff6d.3c4df","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3753.3176345825195,"y":2064.6036291122437,"z":"587ae061.3728","wires":[["621cfe10.6a00f","19217514.29df0b"]]},{"id":"c2f74776.281c08","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3604.7463455200195,"y":2336.3889112472534,"z":"587ae061.3728","wires":[["813dff6d.3c4df","ef4014db.371ed8"]]},{"id":"7f9cda81.239a14","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3455.103225708008,"y":2693.53168964386,"z":"587ae061.3728","wires":[["c2f74776.281c08","a66445ad.c6e778"]]},{"id":"b989ea09.c55598","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3313.317558288574,"y":3089.127052307129,"z":"587ae061.3728","wires":[["7f9cda81.239a14","90c07c4a.83ca"]]},{"id":"c2756913.223288","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2098.3172340393066,"y":3762.745767593384,"z":"587ae061.3728","wires":[["e701689.fa89598"]]},{"id":"cd445d6d.a98f2","type":"switchNode","name":"switch: ss.param.oam-interface-name != NULL","xml":"<switch test=\"`$ss.param.oam-interface-name != ''`\">\n","comments":"","outputs":1,"x":1201.889015197754,"y":4119.602787971497,"z":"587ae061.3728","wires":[["d45dcb6e.c3d178"]]},{"id":"d45dcb6e.c3d178","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":1464.8890380859375,"y":4120.102786540985,"z":"587ae061.3728","wires":[["44a961e1.1c601"]]},{"id":"54829aaa.505a54","type":"save","name":"save l-interface","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"l-interface\"\n\t\tkey=\"l-interface.interface-name = $ss.param.lo0-interface-name\n\t\tAND generic-vnf.vnf-id = $ss.param.vnf-id\" >\n<parameter name=\"interface-name\" value='`$ss.param.lo0-interface-name`' />\n<parameter name=\"interface-role\" value='loopback' />\n","comments":"","outputs":1,"x":1852.46044921875,"y":4733.888261795044,"z":"587ae061.3728","wires":[["aa0a3068.f8788","742a956b.4f639c"]]},{"id":"aa0a3068.f8788","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2025.46044921875,"y":4733.888261795044,"z":"587ae061.3728","wires":[["99531e6d.c647f"]]},{"id":"99531e6d.c647f","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2195.2104415893555,"y":4733.888235092163,"z":"587ae061.3728","wires":[["b2a6cf65.f0ff8","151ef2dc.1c80bd"]]},{"id":"b2a6cf65.f0ff8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' in AnAI.' + $error-message`\" />\n","comments":"","x":2379.389091491699,"y":4734.221861839294,"z":"587ae061.3728","wires":[]},{"id":"a352bec.acb3b4","type":"switchNode","name":"switch: ss.param.lo0-interface-name != NULL","xml":"<switch test=\"`$ss.param.lo0-interface-name != ''`\">\n","comments":"","outputs":1,"x":1197.2461013793945,"y":4733.888648033142,"z":"587ae061.3728","wires":[["c5de1767.46f7b8"]]},{"id":"c5de1767.46f7b8","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":1460.2461242675781,"y":4734.388646602631,"z":"587ae061.3728","wires":[["7b92f765.5c1068"]]},{"id":"ab5a0467.30fd98","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":914.6032257080078,"y":4120.031339645386,"z":"587ae061.3728","wires":[["cd445d6d.a98f2","a352bec.acb3b4"]]},{"id":"f85da22e.73f75","type":"outcome","name":"ipv4-oam-address","xml":"<outcome value='ipv4-oam-address'>","comments":"","outputs":1,"x":2333.412727355957,"y":777.4126973152161,"z":"587ae061.3728","wires":[["4c61d3fd.8df93c"]]},{"id":"4c61d3fd.8df93c","type":"set","name":"set ss.param.ipv4-oam-address, index","xml":"<set>\n<parameter name='ss.param.ipv4-oam-address' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.ipv4-oam-address-index' value='`$bidx`' />","comments":"","x":2697.377052307129,"y":778.162745475769,"z":"587ae061.3728","wires":[]},{"id":"64a45c1e.5e5da4","type":"outcome","name":"loopback0_ipv4_address","xml":"<outcome value='loopback0_ipv4_address'>","comments":"","outputs":1,"x":2355.8412551879883,"y":861.6984219551086,"z":"587ae061.3728","wires":[["8dac6aea.64c678"]]},{"id":"8dac6aea.64c678","type":"set","name":"set ss.param.loopback0-ipv4-address, index","xml":"<set>\n<parameter name='ss.param.loopback0-ipv4-address' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.loopback0-ipv4-address-index' value='`$bidx`' />","comments":"","x":2717.091423034668,"y":861.3055577278137,"z":"587ae061.3728","wires":[]},{"id":"2a41c3fb.10a52c","type":"save","name":"delete l-interface (oam)","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"l-interface\"\n\t\tkey=\"l-interface.interface-name = $ss.param.oam-interface-name\n\t\tAND generic-vnf.vnf-id = $ss.param.vnf-id\" >","comments":"","outputs":1,"x":4111.5560302734375,"y":4107.3173542022705,"z":"587ae061.3728","wires":[["e916fc9e.ea8cb","cd68fa16.f9cdc8","fccb8e4.d1f307"]]},{"id":"e916fc9e.ea8cb","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":4319.627395629883,"y":4107.7930908203125,"z":"587ae061.3728","wires":[["fa11faa.24ca908"]]},{"id":"cd68fa16.f9cdc8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":4327.877407073975,"y":4150.543125152588,"z":"587ae061.3728","wires":[["246fdb5d.9e9424"]]},{"id":"fccb8e4.d1f307","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":4324.698654174805,"y":4193.8046951293945,"z":"587ae061.3728","wires":[["985ccd7.50a213"]]},{"id":"45078030.cf3e6","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":4762.72306060791,"y":4108.257723808289,"z":"587ae061.3728","wires":[]},{"id":"246fdb5d.9e9424","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`\" />\n","comments":"","x":4520.055877685547,"y":4150.757499694824,"z":"587ae061.3728","wires":[]},{"id":"7baf5024.62e0b","type":"record","name":"record OAM l-interface ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK l-interface (oam) save\"/>","comments":"","outputs":1,"x":3628.305809020996,"y":4058.900403022766,"z":"587ae061.3728","wires":[[]]},{"id":"1566a874.953628","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3368.3057594299316,"y":4058.579016685486,"z":"587ae061.3728","wires":[["7baf5024.62e0b","7df924d2.9fde8c"]]},{"id":"985ccd7.50a213","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`\" />\n","comments":"","x":4507.805885314941,"y":4194.257497787476,"z":"587ae061.3728","wires":[]},{"id":"7df924d2.9fde8c","type":"switchNode","name":"switch: ss.param.oam-interface-name != NULL","xml":"<switch test=\"`$ss.param.oam-interface-name != ''`\">\n","comments":"","outputs":1,"x":3663.556022644043,"y":4108.174520492554,"z":"587ae061.3728","wires":[["82313fdd.741ac"]]},{"id":"82313fdd.741ac","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":3922.413200378418,"y":4107.174520492554,"z":"587ae061.3728","wires":[["2a41c3fb.10a52c"]]},{"id":"bfe1f6.27f6ce08","type":"save","name":"delete l-interface (oam)","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"l-interface\"\n\t\tkey=\"l-interface.interface-name = $ss.param.lo0-interface-name\n\t\tAND generic-vnf.vnf-id = $ss.param.vnf-id\" >","comments":"","outputs":1,"x":3947.9839782714844,"y":4556.746128082275,"z":"587ae061.3728","wires":[["c9b5f695.459538","a381cbbb.bc0b98","495abd23.6e1964"]]},{"id":"c9b5f695.459538","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":4156.05534362793,"y":4557.221864700317,"z":"587ae061.3728","wires":[["35106a9.1d51196"]]},{"id":"a381cbbb.bc0b98","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":4164.3053550720215,"y":4599.971899032593,"z":"587ae061.3728","wires":[["7e6d8d78.04b344"]]},{"id":"495abd23.6e1964","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":4161.126602172852,"y":4643.233469009399,"z":"587ae061.3728","wires":[["ebe5ab27.c24218"]]},{"id":"ee417e90.e6281","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":4610.816970825195,"y":4555.352953910828,"z":"587ae061.3728","wires":[]},{"id":"7e6d8d78.04b344","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' not found in AAI. Consider silent success!'`\" />\n","comments":"","x":4356.483825683594,"y":4600.186273574829,"z":"587ae061.3728","wires":[]},{"id":"b9de345f.2f1598","type":"record","name":"record LOOPBACK l-interface ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK l-interface (oam) save\"/>","comments":"","outputs":1,"x":3488.733757019043,"y":4508.329176902771,"z":"587ae061.3728","wires":[[]]},{"id":"13d41abe.92eac5","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3204.7337074279785,"y":4508.007790565491,"z":"587ae061.3728","wires":[["b9de345f.2f1598","cfb5085f.548968"]]},{"id":"ebe5ab27.c24218","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' completed.'`\" />\n","comments":"","x":4344.233833312988,"y":4643.6862716674805,"z":"587ae061.3728","wires":[]},{"id":"ce7204cd.e3e4e8","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":3758.841148376465,"y":4556.603294372559,"z":"587ae061.3728","wires":[["bfe1f6.27f6ce08"]]},{"id":"cfb5085f.548968","type":"switchNode","name":"switch: ss.param.lo0-interface-name != NULL","xml":"<switch test=\"`$ss.param.lo0-interface-name != ''`\">\n","comments":"","outputs":1,"x":3497.9838104248047,"y":4557.174842834473,"z":"587ae061.3728","wires":[["ce7204cd.e3e4e8"]]},{"id":"151ef2dc.1c80bd","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3167.8413696289062,"y":3898.174654364586,"z":"587ae061.3728","wires":[["1566a874.953628","b989ea09.c55598"]]},{"id":"bc423cbf.7ea25","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2035.6031799316406,"y":4162.317143440247,"z":"587ae061.3728","wires":[["cbb3b078.1d713"]]},{"id":"742a956b.4f639c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2032.460350036621,"y":4776.459685325623,"z":"587ae061.3728","wires":[["99531e6d.c647f"]]},{"id":"944a49c7.77dcf8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2996.4122772216797,"y":4311.03185749054,"z":"587ae061.3728","wires":[["13d41abe.92eac5","151ef2dc.1c80bd"]]},{"id":"3c333dc5.d2c562","type":"outcome","name":"ipv4-oam-address-prefix","xml":"<outcome value='ipv4-oam-address-prefix'>","comments":"","outputs":1,"x":2353.412727355957,"y":819.4127621650696,"z":"587ae061.3728","wires":[["72ccbf5e.7353e"]]},{"id":"72ccbf5e.7353e","type":"set","name":"set ipv4-oam-address-prefix, index","xml":"<set>\n<parameter name='ss.param.ipv4-oam-address-prefix' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.ipv4-oam-address-prefix-index' value='`$bidx`' />","comments":"","x":2686.091297149658,"y":819.5913519859314,"z":"587ae061.3728","wires":[]},{"id":"44a961e1.1c601","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1624.7460174560547,"y":4119.602458953857,"z":"587ae061.3728","wires":[["11ff501c.6422f","f5f9ae7e.9c245"]]},{"id":"7b92f765.5c1068","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1621.8889389038086,"y":4734.459685325623,"z":"587ae061.3728","wires":[["54829aaa.505a54","7678c403.2f16ec"]]},{"id":"f5f9ae7e.9c245","type":"save","name":"save l3-interface-ipv4-address","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"l3-interface-ipv4-address-list\"\n\t\tkey=\"l3-interface-ipv4-address-list.l3-interface-ipv4-address = $ss.param.ipv4-oam-address \n\t\tAND generic-vnf.vnf-id = $ss.param.vnf-id \n\t\tAND l-interface.interface-name = $ss.param.oam-interface-name\" >\n<parameter name=\"l3-interface-ipv4-address\" value='`$ss.param.ipv4-oam-address`' />\n<parameter name=\"l3-interface-ipv4-prefix-length\" value='`$ss.param.ipv4-oam-address-prefix`' />\n","comments":"","outputs":1,"x":1901.317512512207,"y":4265.317090988159,"z":"587ae061.3728","wires":[["33fab36e.83ae2c","b33d167.21525e8"]]},{"id":"33fab36e.83ae2c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2122.317512512207,"y":4265.317090988159,"z":"587ae061.3728","wires":[["b1b71822.59fd78"]]},{"id":"b1b71822.59fd78","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2292.0675048828125,"y":4265.317064285278,"z":"587ae061.3728","wires":[["8f1d2be9.b03218","151ef2dc.1c80bd"]]},{"id":"8f1d2be9.b03218","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create l3-interface-ipv4-address-list.l3-interface-ipv4-address = $ss.param.ipv4-oam-address + ' in AnAI.' + $error-message`\" />\n","comments":"","x":2476.2461547851562,"y":4265.65069103241,"z":"587ae061.3728","wires":[]},{"id":"b33d167.21525e8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2130.3888778686523,"y":4307.603415489197,"z":"587ae061.3728","wires":[["b1b71822.59fd78"]]},{"id":"7678c403.2f16ec","type":"save","name":"save l3-interface-ipv4-address","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"l3-interface-ipv4-address-list\"\n\t\tkey=\"l3-interface-ipv4-address-list.l3-interface-ipv4-address = $ss.param.loopback0-ipv4-address \n\t\tAND generic-vnf.vnf-id = $ss.param.vnf-id \n\t\tAND l-interface.interface-name = $ss.param.lo0-interface-name\" >\n<parameter name=\"l3-interface-ipv4-address\" value='`$ss.param.loopback0-ipv4-address`' />\n<parameter name=\"l3-interface-ipv4-prefix-length\" value='32' />\n","comments":"","outputs":1,"x":1896.3175430297852,"y":4851.031002998352,"z":"587ae061.3728","wires":[["45173cac.f20124","d2b46db7.6b188"]]},{"id":"45173cac.f20124","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2117.317543029785,"y":4851.031002998352,"z":"587ae061.3728","wires":[["3d583f22.d0617"]]},{"id":"3d583f22.d0617","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2287.0675354003906,"y":4851.030976295471,"z":"587ae061.3728","wires":[["eeaa2012.e77fd","944a49c7.77dcf8"]]},{"id":"eeaa2012.e77fd","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create l3-interface-ipv4-address-list with l3-interface-ipv4-address = $ss.param.loopback0-ipv4-address + ' in AnAI.' + $error-message`\" />\n","comments":"","x":2471.2461853027344,"y":4851.3646030426025,"z":"587ae061.3728","wires":[]},{"id":"d2b46db7.6b188","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2125.3889083862305,"y":4893.31732749939,"z":"587ae061.3728","wires":[["3d583f22.d0617"]]},{"id":"1a2d0487.d8eb1b","type":"comment","name":"Delete l-interface will delete l3-interface-ipv4-address-list","info":"","comments":"","x":3360.6986198425293,"y":4452.460501194,"z":"587ae061.3728","wires":[]},{"id":"c7903cf5.7529f","type":"execute","name":"param[].name startsWith 'sriov'","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='startsWith' emitsOutcome='true' >\n <parameter name=\"source\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].name`\" />\n\t<parameter name=\"target\" value=\"sriov\"/>\n","comments":"","outputs":1,"x":1608.745948791504,"y":321.6984586715698,"z":"587ae061.3728","wires":[["52c5ecbd.a9ad04","349aa760.9100d8"]]},{"id":"52c5ecbd.a9ad04","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1818.995948791504,"y":321.9484586715698,"z":"587ae061.3728","wires":[["d3a908bc.795728"]]},{"id":"d3a908bc.795728","type":"execute","name":"param[].name endsWith 'sriov'","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='endsWith' emitsOutcome='true' >\n <parameter name=\"source\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].name`\" />\n\t<parameter name=\"target\" value=\"_net_id\"/>\n","comments":"","outputs":1,"x":2035.8887786865234,"y":321.6984643936157,"z":"587ae061.3728","wires":[["e894f22.fe6b11"]]},{"id":"e894f22.fe6b11","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2245.8886489868164,"y":321.2698698043823,"z":"587ae061.3728","wires":[["f4103af2.606478"]]},{"id":"8bc85394.b5842","type":"set","name":"set ss.network[$nidx].netid","xml":"<set>\n<parameter name='ss.network[$nidx].netid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n","comments":"","x":2597.3169841766357,"y":320.6984167098999,"z":"587ae061.3728","wires":[]},{"id":"7f44f7f5.266e08","type":"set","name":"nidx++","xml":"<set>\n<parameter name='nidx' value='`$nidx + 1`' />\n","comments":"","x":2537.317092895508,"y":364.1270399093628,"z":"587ae061.3728","wires":[]},{"id":"fb9a01e4.d3667","type":"set","name":"set nidx = 0","xml":"<set>\n<parameter name='nidx' value='0' />\n","comments":"","x":1205.8885955810547,"y":238.26982975006104,"z":"587ae061.3728","wires":[]},{"id":"f4103af2.606478","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2384.4603004455566,"y":321.5556125640869,"z":"587ae061.3728","wires":[["8bc85394.b5842","7f44f7f5.266e08"]]},{"id":"349aa760.9100d8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1820.1746940612793,"y":364.841290473938,"z":"587ae061.3728","wires":[["2efcedeb.63df22"]]},{"id":"14b65022.d7dc6","type":"for","name":"for n in nidx","xml":"<for silentFailure='true' index='n' start='0' end='`$nidx`' >\n","comments":"","outputs":1,"x":895.9365997314453,"y":5238.413019180298,"z":"587ae061.3728","wires":[["b3b3d79d.4a8368"]]},{"id":"b3b3d79d.4a8368","type":"save","name":"save l3-network relationships for VNF","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf:relationship-list\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id\" >\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=\"`$ss.network[$n].netid`\" />\n","comments":"","outputs":1,"x":1180.7934875488281,"y":5238.412530899048,"z":"587ae061.3728","wires":[["bf489f3f.7a0be","7bbe74ac.56c95c"]]},{"id":"508b54b.91184ac","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2501.126811981201,"y":3807.222270965576,"z":"587ae061.3728","wires":[["25fd854c.5dac5a"]]},{"id":"bf489f3f.7a0be","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1456.5079040527344,"y":5239.126764297485,"z":"587ae061.3728","wires":[["3caa550a.31a69a"]]},{"id":"3caa550a.31a69a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1653.2578964233398,"y":5239.1267375946045,"z":"587ae061.3728","wires":[["ef0d2f1c.ef3df","14a923b6.b3fa7c"]]},{"id":"ef0d2f1c.ef3df","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create generic-vnf releationship for l3-network with network-id =' + $ss.network[$n].netid + ' in AnAI.' + $error-message`\" />\n","comments":"","x":1833.4365463256836,"y":5239.460364341736,"z":"587ae061.3728","wires":[]},{"id":"7bbe74ac.56c95c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1465.7458572387695,"y":5284.174940109253,"z":"587ae061.3728","wires":[["3caa550a.31a69a"]]},{"id":"3a8a44a8.3ec81c","type":"save","name":"delete VNF l3-network relationships","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"generic-vnf:relationship-list\" \n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \n\t\tAND related-to = l3-network \n\t\tAND relationship.related-link = $tmp.related-link\" >","comments":"","outputs":1,"x":3487.6509857177734,"y":5026.555124282837,"z":"587ae061.3728","wires":[["eeca6aa2.a147d8","10d8d9f.6a99526","b7962a.a432e9d8"]]},{"id":"eeca6aa2.a147d8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3750.7223510742188,"y":5027.030860900879,"z":"587ae061.3728","wires":[["5fb7fbc4.4dc6d4"]]},{"id":"10d8d9f.6a99526","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3758.9723625183105,"y":5069.780895233154,"z":"587ae061.3728","wires":[["5af5bf99.b7834"]]},{"id":"b7962a.a432e9d8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3755.7936096191406,"y":5113.042465209961,"z":"587ae061.3728","wires":[["a08fe55f.6586c8"]]},{"id":"a151e8cd.03bcf8","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to delete VNF l3-network relationship for generic-vnf.vnfid = ' + $ss.param.vnf-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":4217.150470733643,"y":5026.161575317383,"z":"587ae061.3728","wires":[]},{"id":"5af5bf99.b7834","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' l3-network relationship with related-path = ' + $tmp.related-path + ' not found in AAI. Consider silent success!'`\" />\n","comments":"","x":3951.150833129883,"y":5069.995269775391,"z":"587ae061.3728","wires":[]},{"id":"3da2eb0b.3f60d4","type":"record","name":"record VNF l3-network relationship ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK VNF l3-network relationship\"/>","comments":"","outputs":1,"x":3326.876697540283,"y":4925.233882904053,"z":"587ae061.3728","wires":[[]]},{"id":"8a76e7d8.f97bd8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3028.8766479492188,"y":4924.9124965667725,"z":"587ae061.3728","wires":[["3da2eb0b.3f60d4","7b9cf0c2.93fb5"]]},{"id":"a08fe55f.6586c8","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback (delete) of generic-vnf l3-network relationships completed.'`\" />\n","comments":"","x":3938.9008407592773,"y":5113.495267868042,"z":"587ae061.3728","wires":[]},{"id":"7b9cf0c2.93fb5","type":"for","name":"for n in nidx","xml":"<for silentFailure='true' index='n' start='0' end='`$nidx`' >\n","comments":"","outputs":1,"x":3219.2697257995605,"y":4978.651028633118,"z":"587ae061.3728","wires":[["3a8a44a8.3ec81c","113685f3.1d790a"]]},{"id":"14a923b6.b3fa7c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2834.984317779541,"y":4800.079701423645,"z":"587ae061.3728","wires":[["944a49c7.77dcf8","8a76e7d8.f97bd8"]]},{"id":"3daece71.ee4af2","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1170.8413162231445,"y":2595.7937545776367,"z":"587ae061.3728","wires":[["4beed03c.8d4db"]]},{"id":"e0c3e38d.51691","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1117.8413162231445,"y":2892.9365768432617,"z":"587ae061.3728","wires":[["38247114.ff80be"]]},{"id":"a56d2ffd.59cb8","type":"outcome","name":"aai-vf-module-put","xml":"<outcome value='aai-vf-module-put'>\n","comments":"","outputs":1,"x":2333.1268157958984,"y":904.3174576759338,"z":"587ae061.3728","wires":[["7a9bf76a.b81108"]]},{"id":"7a9bf76a.b81108","type":"set","name":"set ss.param.aai-vf-module-put-index","xml":"<set>\n<parameter name='ss.param.aai-vf-module-put-index' value='`$bidx`' />\n","comments":"","x":2695.269691467285,"y":904.6031632423401,"z":"587ae061.3728","wires":[]},{"id":"5176d4f5.0acf6c","type":"outcome","name":"unassign","xml":"<outcome value='unassign'>","comments":"","outputs":1,"x":559.6630172729492,"y":757.8647058010101,"z":"587ae061.3728","wires":[["99fa0701.8fa4a8"]]},{"id":"eafc73a1.97feb","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1023.2935638427734,"y":237.91267013549805,"z":"587ae061.3728","wires":[["fb9a01e4.d3667","1821aab8.b0b995","af547181.d6458"]]},{"id":"3cad896.b2a4776","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2804.055503845215,"y":2851.483910560608,"z":"587ae061.3728","wires":[["a66445ad.c6e778","90c07c4a.83ca","1566a874.953628","13d41abe.92eac5","8a76e7d8.f97bd8"]]},{"id":"1c0219fe.342ff6","type":"comment","name":"UNASSIGN","info":"","comments":"","x":3267.3889236450195,"y":2824.4840726852417,"z":"587ae061.3728","wires":[]},{"id":"99fa0701.8fa4a8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":722.7461318969727,"y":757.3649499416351,"z":"587ae061.3728","wires":[["3cad896.b2a4776","eafc73a1.97feb","f210bca9.3ed11","9060c12a.f2f22"]]},{"id":"f210bca9.3ed11","type":"set","name":"set tmp.return-failure = true","xml":"<set>\n<parameter name='tmp.return-failure' value ='true' />","comments":"","x":1113.7460174560547,"y":757.3649938106537,"z":"587ae061.3728","wires":[]},{"id":"de6a6502.b839b8","type":"switchNode","name":"switch tmp.return-failure","xml":"<switch test='`$tmp.return-failure`'>\n","comments":"","outputs":1,"x":4488.388412475586,"y":3062.4842443466187,"z":"587ae061.3728","wires":[["47cd2a6b.35fa94"]]},{"id":"cde32e34.1f286","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4239.055458068848,"y":2887.4840030670166,"z":"587ae061.3728","wires":[["feb81e83.5db67","de6a6502.b839b8"]]},{"id":"47cd2a6b.35fa94","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4682.055744171143,"y":3062.4840841293335,"z":"587ae061.3728","wires":[["8ddee1ad.02ec6"]]},{"id":"d1531676.4de328","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='`$error-message`' />\n","comments":"","x":5057.0559158325195,"y":3113.8173360824585,"z":"587ae061.3728","wires":[]},{"id":"1f1559a0.81e976","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4698.0554122924805,"y":3553.4839448928833,"z":"587ae061.3728","wires":[["50c370e.12d199","5b226aa3.cbdea4"]]},{"id":"50c370e.12d199","type":"switchNode","name":"switch tmp.return-failure","xml":"<switch test='`$tmp.return-failure`'>\n","comments":"","outputs":1,"x":4947.388366699219,"y":3728.4841861724854,"z":"587ae061.3728","wires":[["c358f90d.641208"]]},{"id":"fa11faa.24ca908","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4544.722053527832,"y":4108.15078830719,"z":"587ae061.3728","wires":[["46126f9f.d283f","45078030.cf3e6"]]},{"id":"46126f9f.d283f","type":"switchNode","name":"switch tmp.return-failure","xml":"<switch test='`$tmp.return-failure`'>\n","comments":"","outputs":1,"x":4794.05500793457,"y":4279.151029586792,"z":"587ae061.3728","wires":[["dfa0dcdd.b3f5"]]},{"id":"dfa0dcdd.b3f5","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4987.722339630127,"y":4279.150869369507,"z":"587ae061.3728","wires":[["97999b3b.0678f8"]]},{"id":"35106a9.1d51196","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4388.055549621582,"y":4555.81729221344,"z":"587ae061.3728","wires":[["9fc3a0f3.02ab","ee417e90.e6281"]]},{"id":"9fc3a0f3.02ab","type":"switchNode","name":"switch tmp.return-failure","xml":"<switch test='`$tmp.return-failure`'>\n","comments":"","outputs":1,"x":4637.38850402832,"y":4730.817533493042,"z":"587ae061.3728","wires":[["20e91aed.a73166"]]},{"id":"20e91aed.a73166","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4831.055835723877,"y":4730.817373275757,"z":"587ae061.3728","wires":[["4900b38b.ee5c8c"]]},{"id":"5fb7fbc4.4dc6d4","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3986.388988494873,"y":5026.150192260742,"z":"587ae061.3728","wires":[["9a98f4db.a74a48","a151e8cd.03bcf8"]]},{"id":"9a98f4db.a74a48","type":"switchNode","name":"switch tmp.return-failure","xml":"<switch test='`$tmp.return-failure`'>\n","comments":"","outputs":1,"x":4235.721942901611,"y":5201.150433540344,"z":"587ae061.3728","wires":[["ae6646b6.0f8818"]]},{"id":"ae6646b6.0f8818","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4429.389274597168,"y":5201.150273323059,"z":"587ae061.3728","wires":[["bdba1c6d.3aa19"]]},{"id":"9060c12a.f2f22","type":"set","name":"set resource-resolution-data.status = DELETED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='DELETED' />\n","comments":"","x":1115.0794296264648,"y":1219.0315454006195,"z":"587ae061.3728","wires":[]},{"id":"517cca6f.9fe014","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":5154.38907623291,"y":3061.4840788841248,"z":"587ae061.3728","wires":[]},{"id":"8ddee1ad.02ec6","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4843.055549621582,"y":3061.81729221344,"z":"587ae061.3728","wires":[["517cca6f.9fe014","d1531676.4de328"]]},{"id":"c358f90d.641208","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":5141.055698394775,"y":3728.4840259552,"z":"587ae061.3728","wires":[["609157cc.f8c1c8"]]},{"id":"e495739b.fe9d4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='`$error-message`' />\n","comments":"","x":5519.722053527832,"y":3780.150544166565,"z":"587ae061.3728","wires":[]},{"id":"4cad6093.215d6","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":5617.055213928223,"y":3727.817286968231,"z":"587ae061.3728","wires":[]},{"id":"609157cc.f8c1c8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":5305.7216873168945,"y":3728.1505002975464,"z":"587ae061.3728","wires":[["4cad6093.215d6","e495739b.fe9d4"]]},{"id":"8d944eff.ee518","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='`$error-message`' />\n","comments":"","x":5376.388557434082,"y":4331.15078830719,"z":"587ae061.3728","wires":[]},{"id":"435ab1d3.a2e71","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":5473.721717834473,"y":4278.817531108856,"z":"587ae061.3728","wires":[]},{"id":"97999b3b.0678f8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":5162.3881912231445,"y":4279.150744438171,"z":"587ae061.3728","wires":[["435ab1d3.a2e71","8d944eff.ee518"]]},{"id":"5b3cd7c6.ab8928","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='`$error-message`' />\n","comments":"","x":5214.722053527832,"y":4783.15078830719,"z":"587ae061.3728","wires":[]},{"id":"7c918563.1a6f7c","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":5312.055213928223,"y":4730.817531108856,"z":"587ae061.3728","wires":[]},{"id":"4900b38b.ee5c8c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":5000.7216873168945,"y":4731.150744438171,"z":"587ae061.3728","wires":[["7c918563.1a6f7c","5b3cd7c6.ab8928"]]},{"id":"7f3dbf63.2eed1","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='`$error-message`' />\n","comments":"","x":4819.722393035889,"y":5252.483804702759,"z":"587ae061.3728","wires":[]},{"id":"88b5c55c.2498a8","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":4917.055553436279,"y":5200.150547504425,"z":"587ae061.3728","wires":[]},{"id":"bdba1c6d.3aa19","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4605.722026824951,"y":5200.48376083374,"z":"587ae061.3728","wires":[["88b5c55c.2498a8","7f3dbf63.2eed1"]]},{"id":"a8e2121d.a4758","type":"outcome","name":"nfc-naming-code","xml":"<outcome value='nfc-naming-code'>","comments":"","outputs":1,"x":2330.6269607543945,"y":945.7222089767456,"z":"587ae061.3728","wires":[["cc76c3bc.0c706"]]},{"id":"cc76c3bc.0c706","type":"set","name":"set ss.param.vnfc-name, indexnfc-naming-code","xml":"<set>\n<parameter name='ss.param.nfc-naming-code' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.nfc-naming-code-index' value='`$bidx`' />","comments":"","x":2727.4484329223633,"y":945.9008235931396,"z":"587ae061.3728","wires":[]},{"id":"3f467dbb.41a9a2","type":"outcome","name":"nfc-function","xml":"<outcome value='nfc-function'>","comments":"","outputs":1,"x":2315.3412437438965,"y":987.1507959365845,"z":"587ae061.3728","wires":[["60bc8131.6ea93"]]},{"id":"60bc8131.6ea93","type":"set","name":"set ss.param.nfc-function, index","xml":"<set>\n<parameter name='ss.param.nfc-function' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.nfc-function-index' value='`$bidx`' />","comments":"","x":2677.5912742614746,"y":987.1865816116333,"z":"587ae061.3728","wires":[]},{"id":"bfa7fb43.80d328","type":"outcome","name":"vnfc-model-customization-uuid","xml":"<outcome value='vnfc-model-customization-uuid'>","comments":"","outputs":1,"x":2374.769920349121,"y":1027.1508302688599,"z":"587ae061.3728","wires":[["b9d2703a.110de"]]},{"id":"b9d2703a.110de","type":"set","name":"set ss.param.vnfc-model-customization-uuid, index","xml":"<set>\n<parameter name='ss.param.vnfc-model-customization-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.vnfc-model-customization-uuid-index' value='`$bidx`' />","comments":"","x":2735.019950866699,"y":1027.1866159439087,"z":"587ae061.3728","wires":[]},{"id":"4f4f7860.ec2048","type":"outcome","name":"vnfc-model-invariant-uuid","xml":"<outcome value='vnfc-model-invariant-uuid'>","comments":"","outputs":1,"x":2359.484172821045,"y":1068.5794353485107,"z":"587ae061.3728","wires":[["b4d2e8c5.9023a8"]]},{"id":"b4d2e8c5.9023a8","type":"set","name":"set ss.param.vnfc-model-invariant-uuid, index","xml":"<set>\n<parameter name='ss.param.vnfc-model-invariant-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.vnfc-model-invariant-uuid-index' value='`$bidx`' />","comments":"","x":2718.734203338623,"y":1068.6152210235596,"z":"587ae061.3728","wires":[]},{"id":"db27910b.c139","type":"outcome","name":"vnfc-model-version","xml":"<outcome value='vnfc-model-version'>","comments":"","outputs":1,"x":2339.912742614746,"y":1110.0079889297485,"z":"587ae061.3728","wires":[["dcdaaa14.a24458"]]},{"id":"dcdaaa14.a24458","type":"set","name":"set ss.param.vnfc-model-version, index","xml":"<set>\n<parameter name='ss.param.vnfc-model-version' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.vnfc-model-version-index' value='`$bidx`' />","comments":"","x":2700.162773132324,"y":1110.0437746047974,"z":"587ae061.3728","wires":[]},{"id":"c40a7c81.c5bf2","type":"set","name":"set TEST DATA","xml":"<set>\n<parameter name='vnf-index' value='0' />\n<parameter name='vf-module-index' value='0' />\n<parameter name='ss.capability-name' value='aai-vnf-put' />\n<parameter name='ss.capability-action' value='unassign' />\n<parameter name='service-data.vnfs.vnf[0].vnf-id' value = '7324200933' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vnf-topology.vnf-parameters-data.param[0].name' value = 'vnf_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vnf-topology.vnf-parameters-data.param[0].value' value = '7324200933' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vnf-topology.sdnc-generated-cloud-resources' value='true' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-topology.sdnc-generated-cloud-resources' value = 'true' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param_length' value = '34' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].name' value = 'vlan-tag-1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].value' value = '${vlan-tag-1v}' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].name' value = 'policy-instance-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].value' value = 'JQIN1810SRIOV.Config_MS_SRIOV_VlanTag_1810_ADIOD_VPE.*' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[1].name' value = 'resource-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[1].value' value = 'vlan-tag-1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[2].name' value = 'resource-value' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[2].value' value = '' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[3].name' value = 'scope-id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[3].value' value = 'MTCLL2238F' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[4].name' value = 'vlan-tag-key' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[4].value' value = 'dvncom4003' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[5].name' value = 'vlan-type' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[5].value' value = 'vlan-id-outer' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[6].name' value = 'vnfc-network-role' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[6].value' value = 'network-role-1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key_length' value = '7' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.status' value = 'SUCCESS' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.capability-name' value = 'mS-vlan-tag-assign' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].name' value = 'vlan-tag-2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].value' value = 'manually-assigned-vlan-tag-2v' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[0].name' value = 'policy-instance-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[0].value' value = 'JQIN1810SRIOV.Config_MS_SRIOV_VlanTag_1810_ADIOD_VPE.*' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[1].name' value = 'resource-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[1].value' value = 'vlan-tag-2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[2].name' value = 'resource-value' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[2].value' value = 'manually-assigned-vlan-tag-2v' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[3].name' value = 'scope-id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[3].value' value = 'MTCLL2238F' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[4].name' value = 'vlan-tag-key' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[4].value' value = 'dvncom4003' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[5].name' value = 'vlan-type' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[5].value' value = 'vlan-id-filter' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[6].name' value = 'vnfc-network-role' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[6].value' value = 'network-role-2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key_length' value = '7' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.status' value = 'SUCCESS' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.capability-name' value = 'INPUT' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[2].name' value = 'bogus1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[2].value' value = 'bogus1' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[3].name' value = 'bogus2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[3].value' value = 'bogus2' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[4].name' value = 'bogus3' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[4].value' value = 'bogus3' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[5].name' value = 'bogus4' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[5].value' value = 'bogus4' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[6].name' value = 'bogus5' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[6].value' value = 'bogus5' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[7].name' value = 'aic-cloud-region' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[7].value' value = 'mtn6' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[8].name' value = 'ipv4-loopback0-address' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[8].value' value = '1.1.1.1' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].name' value = 'ipv4-oam-address' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].value' value = '2.2.2.2' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].name' value = 'as-number' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].value' value = '11' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[11].name' value = 'vlan-id-outer' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[11].value' value = '[999]' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[12].name' value = 'vnf_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[12].value' value = '7324200933' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[13].name' value = 'vf_module_name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[13].value' value = 'NEW_SELF_SERVE_VF_MODULE_TEST_1' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[14].name' value = 'volume-group-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[14].value' value = 'dummyvolumegroupname' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[15].name' value = 'volume_group_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[15].value' value = 'vg-1-999' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[16].name' value = 'vf_module_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[16].value' value = '7323683661' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[17].name' value = 'vf_module_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[17].value' value = '7323683661' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[18].name' value = 'vnfc-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[18].value' value = 'bogus-vnfc-name' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[19].name' value = 'vm_name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[19].value' value = 'bogus-vnfc-name' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[20].name' value = 'vm-type' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[20].value' value = 'oam' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[21].name' value = 'nfc-function' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[21].value' value = 'data' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[22].name' value = 'nfc-naming-code' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[22].value' value = 'dummy-naming-code' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[23].name' value = 'vnfc-model-customization-uuid' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[23].value' value = 'bbbb-99999' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[24].name' value = 'vnfc-model-invariant-uuid' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[24].value' value = 'aaaaa-10000' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[25].name' value = 'vnfc-model-version' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[25].value' value = 'model1' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[26].name' value = 'oam-interface-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[26].value' value = 'oamintfname' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[27].name' value = 'lo0-interface-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[27].value' value = 'lo0intfname' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[28].name' value = 'sriov41_net_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[28].value' value = '4141414141' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[29].name' value = 'sriov42_net_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[29].value' value = '4242424242' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[30].name' value = 'sriov43_net_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[30].value' value = '4343434343' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[31].name' value = 'sriov44_net_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[31].value' value = '4444444444' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[32].name' value = 'sriov21_net_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[32].value' value = '2121212121' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[33].name' value = 'sriov22_net_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[33].value' value = '2222222222' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].onap-model-information.model-customization-uuid' value = 'bbbb-99999' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].onap-model-information.model-invariant-uuid' value = 'aaaaa-10000' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].onap-model-information.model-version' value = 'model1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-type' value = 'oam' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-name' value = 'bogus-vnfc-name' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[0].vnfc-network-role' value = 'network-role-1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[0].connection-point.connection-point-id' value = '789cddfa-58ba-4095-addc-8f7181186380' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[0].connection-point.vlan-data[0].vlan-role' value = '' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[0].connection-point.vlan-data[0].vlan-tag-description' value = 'VPE-Cust' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[0].connection-point.vlan-data[0].vlan-tag-id' value = '3553' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[0].connection-point.vlan-data[0].vlan-uuid' value = '56034624-9296-426c-8103-79a09c23e872' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].vnfc-network-role' value = 'network-role-2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.connection-point-id' value = 'd1bdc1ae-4e67-42c3-ad25-2051ddae65a7' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[0].vlan-role' value = 'outer-tag' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[0].vlan-tag-description' value = 'VPE-Cust-Outer' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[0].vlan-tag-id' value = '3503' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[0].vlan-uuid' value = 'fdc089af-0c00-41c0-a403-1501fb06909f' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[1].vlan-role' value = 'outer-tag' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[1].vlan-tag-description' value = 'VPE-Core1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[1].vlan-tag-id' value = '4001' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[1].vlan-uuid' value = 'f48473ff-fc11-4c38-bcf7-7dec483d81da' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[2].vlan-role' value = 'outer-tag' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[2].vlan-tag-description' value = 'VPE-Core2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[2].vlan-tag-id' value = '4002' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[2].vlan-uuid' value = '147afe9e-81d3-4872-a298-f470999ba915' />","comments":"","x":950.9126968383789,"y":53.436500549316406,"z":"587ae061.3728","wires":[]},{"id":"b0169c71.ea199","type":"outcome","name":"ipv4-loopback0-address","xml":"<outcome value='ipv4-loopback0-address'>","comments":"","outputs":1,"x":2356.341194152832,"y":1154.293610572815,"z":"587ae061.3728","wires":[["7b2ce523.9f07cc"]]},{"id":"7b2ce523.9f07cc","type":"set","name":"set ipv4-loopback0-address, index","xml":"<set>\n<parameter name='ss.param.ipv4-loopback0-address' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.ipv4-loopback0-address-index' value='`bidx`' />","comments":"","x":2683.5912170410156,"y":1154.0436267852783,"z":"587ae061.3728","wires":[]},{"id":"21a35d6b.aba542","type":"outcome","name":"vlan-id-outer","xml":"<outcome value='vlan-id-outer'>","comments":"","outputs":1,"x":2321.162643432617,"y":1241.0793781280518,"z":"587ae061.3728","wires":[["7b5c7d54.ad2f94"]]},{"id":"781da3e1.bf8fdc","type":"outcome","name":"as-number","xml":"<outcome value='as-number'>","comments":"","outputs":1,"x":2315.9483337402344,"y":1198.9007892608643,"z":"587ae061.3728","wires":[["8bf521e4.b0dd7"]]},{"id":"8bf521e4.b0dd7","type":"set","name":"set as-number, index","xml":"<set>\n<parameter name='ss.param.as-number' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.as-number-index' value='`$bidx`' />","comments":"","x":2644.448310852051,"y":1199.4007902145386,"z":"587ae061.3728","wires":[]},{"id":"7b5c7d54.ad2f94","type":"set","name":"set vlan-id-outer, index","xml":"<set>\n<parameter name='ss.param.vlan-id-outer' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.vlan-id-outer-index' value='`$bidx`' />","comments":"","x":2649.6626205444336,"y":1240.8293771743774,"z":"587ae061.3728","wires":[]},{"id":"af547181.d6458","type":"set","name":"set ss.param.vnf-id","xml":"<set>\n<parameter name='ss.param.vnf-id' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-id`' />","comments":"","x":1226.3888092041016,"y":425.81743240356445,"z":"587ae061.3728","wires":[]},{"id":"5a1e5047.75637","type":"execute","name":"execute PropertiesNode","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":973.0554885864258,"y":102.48411655426025,"z":"587ae061.3728","wires":[[]]},{"id":"a655e5b7.704df8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":736.3888092041016,"y":75.81745052337646,"z":"587ae061.3728","wires":[["c40a7c81.c5bf2","5a1e5047.75637"]]},{"id":"a9e6a5bb.f91718","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'volume-group not found in AnAI with volume-group-id=' + $ss.param.volume-group-id + $error-message`\" />\n","comments":"","x":1501.0554313659668,"y":2460.81733417511,"z":"587ae061.3728","wires":[]},{"id":"608befa2.bb7d1","type":"save","name":"get volume-group","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"volume-group\"\n\t\tkey=\"cloud-region.cloud-owner = $prop.cloud-owner \n\t\t\tAND cloud-region.cloud-region-id = $ss.param.aic-cloud-region \n\t\t\tAND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner \n\t\t\tAND volume-group-id = $ss.param.volume-group-id\" \n\tpfx=\"tmp.aai.volume-group\" >\n","comments":"","outputs":1,"x":943.6389389038086,"y":2370.5315160751343,"z":"587ae061.3728","wires":[["4aba82dd.b2c52c","71a95ca.1193aa4"]]},{"id":"4aba82dd.b2c52c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1132.8889236450195,"y":2370.031460762024,"z":"587ae061.3728","wires":[["46179c00.a62e04"]]},{"id":"71a95ca.1193aa4","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1140.5674057006836,"y":2426.0671520233154,"z":"587ae061.3728","wires":[["5d603643.fe9568"]]},{"id":"48118715.dc3e28","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to get volume-group in AnAI with volume-group-id = ' + $ss.param.volume-group-id + $error-message`\" />\n","comments":"","x":1501.1864128112793,"y":2406.0315675735474,"z":"587ae061.3728","wires":[]},{"id":"46179c00.a62e04","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1304.853172302246,"y":2370.5316247940063,"z":"587ae061.3728","wires":[["48118715.dc3e28","813dff6d.3c4df"]]},{"id":"5d603643.fe9568","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1305.1031532287598,"y":2426.0316038131714,"z":"587ae061.3728","wires":[["a9e6a5bb.f91718","813dff6d.3c4df"]]},{"id":"113685f3.1d790a","type":"set","name":"set tmp.related-link","xml":"<set>\n<parameter name='tmp.related-link' value=\"`'/aai/v$/network/l3-networks/l3-network/' + $ss.network[$n].netid`\" />\n<!--\n<parameter name='tmp.related-link' value=\"`'/aai/' + $prop.aai.version + '/network/l3-networks/l3-network/' + $ss.network[$n].netid`\" />\n-->","comments":"","x":3440.5553436279297,"y":4978.984006881714,"z":"587ae061.3728","wires":[]}] \ No newline at end of file
+[{"id":"544113b5.3263fc","type":"dgstart","name":"DGSTART","outputs":1,"x":104.99999237060547,"y":48.33333206176758,"z":"8068ded9.ccc26","wires":[["1404c879.0f3058"]]},{"id":"d2b6c403.dde578","type":"method","name":"method self-serve-aai-vf-module-put","xml":"<method rpc='self-serve-aai-vf-module-put' mode='sync'>\n","comments":"","outputs":1,"x":237.21428680419922,"y":99.50794315338135,"z":"8068ded9.ccc26","wires":[["28d4af4a.f0cdb"]]},{"id":"28d4af4a.f0cdb","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":124.89287567138672,"y":174.8571548461914,"z":"8068ded9.ccc26","wires":[["f217d7f2.7c62d8","d7b740fc.6831a","9669e0ca.90c8f","3b0adeb0.0eb082"]]},{"id":"1404c879.0f3058","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":377.85713958740234,"y":47.7618989944458,"z":"8068ded9.ccc26","wires":[["d2b6c403.dde578"]]},{"id":"f217d7f2.7c62d8","type":"switchNode","name":"switch: ss.capability-action","xml":"<switch test='`$ss.capability-action`'>\n","comments":"","outputs":1,"x":362.8571662902832,"y":227.08332681655884,"z":"8068ded9.ccc26","wires":[["2cbb79a9.c1eea6","d1160c49.4176","43c0a50b.639d9c"]]},{"id":"2cbb79a9.c1eea6","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":571.3571624755859,"y":227.33332681655884,"z":"8068ded9.ccc26","wires":[["5ae95a45.5debe4"]]},{"id":"5ae95a45.5debe4","type":"returnFailure","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=\"ss.capability-action is null\" />\n","comments":"","x":727.2738342285156,"y":227.44442558288574,"z":"8068ded9.ccc26","wires":[]},{"id":"d1160c49.4176","type":"outcome","name":"assign","xml":"<outcome value='assign'>","comments":"","outputs":1,"x":571.1071586608887,"y":276.33333015441895,"z":"8068ded9.ccc26","wires":[["a7cac65d.e914d8"]]},{"id":"d7b740fc.6831a","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss-aai-vfput.log' />\n","comments":"","outputs":1,"x":319.8214340209961,"y":1210.9523258209229,"z":"8068ded9.ccc26","wires":[[]]},{"id":"27de274a.88c098","type":"save","name":"update generic-vnf","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \" >\n<parameter name=\"ipv4-loopback0-address\" value='`$ss.param.ipv4-loopback0-address`' />\n","comments":"","outputs":1,"x":2390.6071739196777,"y":1895.2024598121643,"z":"8068ded9.ccc26","wires":[["3979b1d5.6677ee","7a101d16.ff8574","d5eb2c25.f7bf1"]]},{"id":"3979b1d5.6677ee","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2590.857204437256,"y":1895.559506893158,"z":"8068ded9.ccc26","wires":[["d2c445d.5b0a2b8"]]},{"id":"7a101d16.ff8574","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2597.1072158813477,"y":1946.3095412254333,"z":"8068ded9.ccc26","wires":[["b17925c2.0a32d8"]]},{"id":"d2c445d.5b0a2b8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update generic-vnf.ipv4-loopback0-address in AnAI with ipv4-loopback0-address=' + $ss.param.ipv4-loopback0-address + '; ' + $error-message`\" />\n","comments":"","x":2768.726161956787,"y":1895.34521150589,"z":"8068ded9.ccc26","wires":[]},{"id":"b17925c2.0a32d8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update generic-vnf because vnf-id =' + $ss.param.vnf-id + ' is not found in AAI. ' + $error-message`\" />\n","comments":"","x":2769.297679901123,"y":1945.583387851715,"z":"8068ded9.ccc26","wires":[]},{"id":"2bb84732.4581c8","type":"save","name":"update volume-group","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"volume-group\"\n\t\tkey=\"cloud-region.cloud-owner = $prop.cloud-owner \n\t\t\tAND cloud-region.cloud-region-id = $ss.param.aic-cloud-region \n\t\t\tAND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner \n\t\t\tAND volume-group-id = $ss.param.volume-group-id\" >\n<parameter name=\"volume-group-name\" value='`$ss.param.volume-group-name`' />\n<parameter name=\"volume-group-id\" value='`$ss.param.volume-group-id`' />\n","comments":"","outputs":1,"x":1675.523941040039,"y":4008.690396785736,"z":"8068ded9.ccc26","wires":[["990ce64e.9c6758","603a3397.22016c"]]},{"id":"990ce64e.9c6758","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1883.523941040039,"y":4008.690396785736,"z":"8068ded9.ccc26","wires":[["4c1c1d74.1517f4"]]},{"id":"5f17c4a8.0dac0c","type":"save","name":"Rollback generic-vnf update","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \" >\n<parameter name=\"ipv4-loopback0-address\" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />\n<parameter name=\"ipv4-oam-address\" value='`$tmp.aai.vnf.ipv4-oam-address`' />\n<parameter name=\"as-number\" value='`$tmp.aai.vnf.as-number`' />\n<parameter name=\"vlan-id-outer\" value='`$tmp.aai.vnf.vlan-id-outer`' />","comments":"","outputs":1,"x":6086.120388031006,"y":3156.1444816589355,"z":"8068ded9.ccc26","wires":[["cd5787f3.1adc68","11863adb.b84605","a0326122.57c02"]]},{"id":"cd5787f3.1adc68","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":6324.370372772217,"y":3155.644426345825,"z":"8068ded9.ccc26","wires":[["2f247634.a3188a"]]},{"id":"11863adb.b84605","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":6330.620384216309,"y":3207.3944606781006,"z":"8068ded9.ccc26","wires":[["d35c334f.7cfba"]]},{"id":"cdbfc33f.d52a7","type":"save","name":"get generic-vnf","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \"\n\tpfx=\"tmp.aai.vnf\" >\n\n","comments":"","outputs":1,"x":1271.607234954834,"y":1643.833396911621,"z":"8068ded9.ccc26","wires":[["7c2ec187.5782e","d05d85c0.e9b768"]]},{"id":"7c2ec187.5782e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1480.1428680419922,"y":1643.3333177566528,"z":"8068ded9.ccc26","wires":[["83c73051.c3a32"]]},{"id":"d05d85c0.e9b768","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1486.3927879333496,"y":1742.2262258529663,"z":"8068ded9.ccc26","wires":[["486062c6.b9a65c"]]},{"id":"3a748bec.06c474","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Encountered error to get generic-vnf with vnf-id=' + $ss.param.vnf-id + ' from AnAI'`\" />\n","comments":"","x":1922.5830726623535,"y":1688.8333368301392,"z":"8068ded9.ccc26","wires":[]},{"id":"f79a10de.f96ed","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'generic-vnf.vnf-name with vnf-id=' + $ss.param.vnf-id + ' not found in AAI. '`\" />\n","comments":"","x":1924.2975463867188,"y":1742.785894393921,"z":"8068ded9.ccc26","wires":[]},{"id":"fd633781.1bf9c8","type":"save","name":"update volume-group","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"volume-group\"\n\t\tkey=\"cloud-region.cloud-owner = $prop.cloud-owner \n\t\t\tAND cloud-region.cloud-region-id = $ss.param.aic-cloud-region \n\t\t\tAND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner \n\t\t\tAND volume-group-id = $ss.param.volume-group-id\" >\n<parameter name=\"volume-group-name\" value='`$tmp.aai.volume-group.volume-group-name`' />","comments":"","outputs":1,"x":5744.548473358154,"y":3776.048948287964,"z":"8068ded9.ccc26","wires":[["e4fa8909.4dd298","e6cf9e60.36c21","1a42d1bd.7e06ae"]]},{"id":"4c1c1d74.1517f4","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2078.2739334106445,"y":4008.690370082855,"z":"8068ded9.ccc26","wires":[["c1b8579b.771458","5baa82ec.dffecc"]]},{"id":"a7cac65d.e914d8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":724.8571548461914,"y":276.5833263397217,"z":"8068ded9.ccc26","wires":[["d16edcfb.a2216","81d44ce6.28309","1e19f844.9c0ec8","a393fb3d.925a18","c0feb185.c5348","f10164da.04f358","40f8f017.2403a","4fcc988.d1ea868","310596e2.42bc4a"]]},{"id":"d16edcfb.a2216","type":"set","name":"set resource-resolution-data.status, parm[].value = SUCCESS","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='SUCCESS' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].value' \n\tvalue='SUCCESS' />\n","comments":"","x":1096.2739639282227,"y":6504.09578037262,"z":"8068ded9.ccc26","wires":[]},{"id":"83c73051.c3a32","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1651.714454650879,"y":1643.3691110610962,"z":"8068ded9.ccc26","wires":[["531e351c.fe55bc","3a748bec.06c474"]]},{"id":"486062c6.b9a65c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1652.571533203125,"y":1742.3691110610962,"z":"8068ded9.ccc26","wires":[["531e351c.fe55bc","f79a10de.f96ed"]]},{"id":"531e351c.fe55bc","type":"set","name":"set resource-resolution-data.status = FAILED","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":2019.2858428955078,"y":1643.0834226608276,"z":"8068ded9.ccc26","wires":[]},{"id":"32c37498.d5047c","type":"for","name":"for bidx in param_length (VF-MODULE)","xml":"<for silentFailure='true' index=\"bidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\" >\n","comments":"","outputs":1,"x":1288.7617721557617,"y":360.57139682769775,"z":"8068ded9.ccc26","wires":[["930c302f.87d9a"]]},{"id":"a1dc9b53.b001a8","type":"switchNode","name":"switch param[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].name`'>\n","comments":"","outputs":1,"x":2028.1904602050781,"y":881.0000171661377,"z":"8068ded9.ccc26","wires":[["eda336f5.cd2b28","7e8f8098.f3aac","82245a01.d9d5d8","9a172f5.4d216d","1635f3c2.d64ecc","7b910270.aa145c","a7a813a9.685fe","4a38191a.665008","68af07a3.16ce88","91d6d0e4.e2cc2","8f404e48.285a6","133a1544.17dc0b","ec83fc2d.1db1b","ca7c357a.02aee8","f5541fce.c9fc9","2b83386b.477738","593dcc0e.8e3134","26c08944.595276","982628c3.cc5ec8","b7a3bc44.8c264","10ef55c1.e5abda"]]},{"id":"eda336f5.cd2b28","type":"outcome","name":"vf_module_id","xml":"<outcome value='vf_module_id'>\n","comments":"","outputs":1,"x":2322.1904525756836,"y":451.8571300506592,"z":"8068ded9.ccc26","wires":[["45675dfb.d48574"]]},{"id":"45675dfb.d48574","type":"set","name":"set ss.param.vf-module-id","xml":"<set>\n<parameter name='ss.param.vf-module-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n","comments":"","x":2660.619083404541,"y":452.7142939567566,"z":"8068ded9.ccc26","wires":[]},{"id":"7e8f8098.f3aac","type":"outcome","name":"vf_module_name","xml":"<outcome value='vf_module_name'>\n","comments":"","outputs":1,"x":2333.6189918518066,"y":494.7142791748047,"z":"8068ded9.ccc26","wires":[["4f7b07c.b10dcf8"]]},{"id":"4f7b07c.b10dcf8","type":"set","name":"set ss.param.vf-module-name","xml":"<set>\n<parameter name='ss.param.vf-module-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n","comments":"","x":2671.9047470092773,"y":495.28573751449585,"z":"8068ded9.ccc26","wires":[]},{"id":"82245a01.d9d5d8","type":"outcome","name":"volume-group-name","xml":"<outcome value='volume-group-name'>\n","comments":"","outputs":1,"x":2342.9047241210938,"y":579.5714559555054,"z":"8068ded9.ccc26","wires":[["f508bd0c.d0dc8"]]},{"id":"f508bd0c.d0dc8","type":"set","name":"set ss.param.volume-group-name","xml":"<set>\n<parameter name='ss.param.volume-group-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n","comments":"","x":2685.9047470092773,"y":580.2857375144958,"z":"8068ded9.ccc26","wires":[]},{"id":"9a172f5.4d216d","type":"outcome","name":"aic-cloud-region","xml":"<outcome value='aic-cloud-region'>\n","comments":"","outputs":1,"x":2328.904773712158,"y":621.5714359283447,"z":"8068ded9.ccc26","wires":[["ffb319f8.7a0188"]]},{"id":"ffb319f8.7a0188","type":"set","name":"set ss.param.aic-cloud-region","xml":"<set>\n<parameter name='ss.param.aic-cloud-region' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n","comments":"","x":2674.190528869629,"y":622.1428942680359,"z":"8068ded9.ccc26","wires":[]},{"id":"1635f3c2.d64ecc","type":"outcome","name":"volume-group-id","xml":"<outcome value='volume-group-id'>\n","comments":"","outputs":1,"x":2334.1904678344727,"y":536.8571701049805,"z":"8068ded9.ccc26","wires":[["3675b335.dbe54c"]]},{"id":"3675b335.dbe54c","type":"set","name":"set ss.param.volume-group-id","xml":"<set>\n<parameter name='ss.param.volume-group-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n","comments":"","x":2672.4762229919434,"y":537.4286284446716,"z":"8068ded9.ccc26","wires":[]},{"id":"e53f3779.d51718","type":"save","name":"update vf-module","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"vf-module\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \n\t\t\tAND vf-module.vf-module-id = $ss.param.vf-module-id \" >\n<parameter name=\"vf-module-name\" value='`$ss.param.vf-module-name`' />\n<parameter name=\"selflink\" value='`$ss.selflink`' />\n","comments":"","outputs":1,"x":1680.0717315673828,"y":3563.9885816574097,"z":"8068ded9.ccc26","wires":[["afb215fc.55dad8","656edb50.29a904"]]},{"id":"afb215fc.55dad8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1873.3217163085938,"y":3563.4885263442993,"z":"8068ded9.ccc26","wires":[["a40c159f.2d73b8"]]},{"id":"656edb50.29a904","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1879.5717277526855,"y":3615.2385606765747,"z":"8068ded9.ccc26","wires":[["f18e9019.bd386"]]},{"id":"b02b7bf8.605ee8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'vf-module not found in AnAI with vf-module-id=' + $ss.param.vf-module-id + $error-message`\" />\n","comments":"","x":2223.7383728027344,"y":3453.857497215271,"z":"8068ded9.ccc26","wires":[]},{"id":"fff7178f.f6b028","type":"save","name":"get vf-module","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"vf-module\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \n\t\t\tAND vf-module.vf-module-id = $ss.param.vf-module-id \"\n\tpfx=\"tmp.aai.vfmdoule\" >\n\n","comments":"","outputs":1,"x":1666.3218803405762,"y":3363.5716791152954,"z":"8068ded9.ccc26","wires":[["33df8cfd.d9e204","7ca5615.b5bdba"]]},{"id":"33df8cfd.d9e204","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1855.571865081787,"y":3363.071623802185,"z":"8068ded9.ccc26","wires":[["3a7cd486.8bb8bc"]]},{"id":"7ca5615.b5bdba","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1863.2503471374512,"y":3419.1073150634766,"z":"8068ded9.ccc26","wires":[["946f5847.827928"]]},{"id":"a40c159f.2d73b8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2070.7502822875977,"y":3563.5600509643555,"z":"8068ded9.ccc26","wires":[["fb61694.f0eee98","e9ef052a.050278"]]},{"id":"f18e9019.bd386","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2073.6074981689453,"y":3614.4171924591064,"z":"8068ded9.ccc26","wires":[["8d0b8b24.ceee48","e9ef052a.050278"]]},{"id":"1fa7644b.ffce9c","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":6137.54887008667,"y":3110.5131034851074,"z":"8068ded9.ccc26","wires":[]},{"id":"a0326122.57c02","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":6328.441631317139,"y":3255.656030654907,"z":"8068ded9.ccc26","wires":[["16cfd259.a82d8e"]]},{"id":"1c8efb54.0d2e25","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":5828.72732925415,"y":3066.906047821045,"z":"8068ded9.ccc26","wires":[["1fa7644b.ffce9c","5f17c4a8.0dac0c","c5a30c47.4e84c"]]},{"id":"d11853ad.952b6","type":"save","name":"Rollback vf-module update","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"vf-module\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \n\t\t\tAND vf-module.vf-module-id = $ss.param.vf-module-id \" >\n<parameter name=\"vf-module-name\" value='`$tmp.aai.vfmdoule.vf-module-name`' />\n<parameter name=\"selflink\" value='`$tmp.aai.vfmdoule.selflink`' />","comments":"","outputs":1,"x":5913.00138092041,"y":3500.2506856918335,"z":"8068ded9.ccc26","wires":[["900b7985.d88088","d5f6460b.1a20b8","98d622a6.0af76"]]},{"id":"900b7985.d88088","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":6151.251365661621,"y":3499.750630378723,"z":"8068ded9.ccc26","wires":[["dfd2d7b3.3404f8"]]},{"id":"d5f6460b.1a20b8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":6159.501377105713,"y":3542.5006647109985,"z":"8068ded9.ccc26","wires":[["c4a7132d.b535c"]]},{"id":"98d622a6.0af76","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":6156.322624206543,"y":3585.762234687805,"z":"8068ded9.ccc26","wires":[["a9be3e4a.97414"]]},{"id":"7b910270.aa145c","type":"outcome","name":"vnfc-name","xml":"<outcome value='vnfc-name'>","comments":"","outputs":1,"x":2312.238136291504,"y":666.6665997505188,"z":"8068ded9.ccc26","wires":[["71eabe9b.2eb27"]]},{"id":"71eabe9b.2eb27","type":"set","name":"set ss.param.vnfc-name, index","xml":"<set>\n<parameter name='ss.param.vnfc-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.vnfc-name-index' value='`$bidx`' />","comments":"","x":2678.3453636169434,"y":667.416672706604,"z":"8068ded9.ccc26","wires":[]},{"id":"87beb09a.09ea7","type":"comment","name":"vf-module params","info":"","comments":"","x":1945.9046783447266,"y":543.9523286819458,"z":"8068ded9.ccc26","wires":[]},{"id":"22799e1.3c96862","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to get vf-module in AnAI with vf-module-id = ' + $ss.param.vf-module-id + '; ' + $error-message`\" />\n","comments":"","x":2223.869354248047,"y":3399.0717306137085,"z":"8068ded9.ccc26","wires":[]},{"id":"3a7cd486.8bb8bc","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2027.5361137390137,"y":3363.5717878341675,"z":"8068ded9.ccc26","wires":[["22799e1.3c96862","e9ef052a.050278"]]},{"id":"946f5847.827928","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2027.7860946655273,"y":3419.0717668533325,"z":"8068ded9.ccc26","wires":[["b02b7bf8.605ee8","e9ef052a.050278"]]},{"id":"2f247634.a3188a","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":6507.191570281982,"y":3155.7631006240845,"z":"8068ded9.ccc26","wires":[]},{"id":"d35c334f.7cfba","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":6509.691570281982,"y":3207.013102531433,"z":"8068ded9.ccc26","wires":[]},{"id":"16cfd259.a82d8e","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback of generic-vnf update completed. '`\" />\n","comments":"","x":6512.191570281982,"y":3256.0131006240845,"z":"8068ded9.ccc26","wires":[]},{"id":"fb61694.f0eee98","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update vf-module-name with vf-module-id = ' + $ss.param.vf-module-id + ' in AnAI; ' + $error-message`\" />\n","comments":"","x":2263.631217956543,"y":3588.881335258484,"z":"8068ded9.ccc26","wires":[]},{"id":"8d0b8b24.ceee48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update vf-module-name with vf-module-id =' + $ss.param.vf-module-id + ' because vf-module is not found in AAI' + $error-message`\" />\n","comments":"","x":2264.881217956543,"y":3639.6313371658325,"z":"8068ded9.ccc26","wires":[]},{"id":"c1b8579b.771458","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to update volume-group with volume-group-id =' + $ss.param.volume-group-id + ' and volume-group-name = ' + $ss.param.volume-group-name + ' in AnAI.' + $error-message`\" />\n","comments":"","x":2271.4525833129883,"y":4009.0239968299866,"z":"8068ded9.ccc26","wires":[]},{"id":"dfd2d7b3.3404f8","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`\" />\n","comments":"","x":6332.679847717285,"y":3499.215039253235,"z":"8068ded9.ccc26","wires":[]},{"id":"c4a7132d.b535c","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`\" />\n","comments":"","x":6351.679847717285,"y":3541.715039253235,"z":"8068ded9.ccc26","wires":[]},{"id":"c5a30c47.4e84c","type":"record","name":"record generic-vnf ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK generic-vnf update\"/>","comments":"","outputs":1,"x":6091.691570281982,"y":3066.013101577759,"z":"8068ded9.ccc26","wires":[[]]},{"id":"68e7f351.24dd5c","type":"record","name":"record vf-module ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK vf-module update\"/>","comments":"","outputs":1,"x":5920.929847717285,"y":3455.7150382995605,"z":"8068ded9.ccc26","wires":[[]]},{"id":"3d611339.da18cc","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":5676.929817199707,"y":3455.965012550354,"z":"8068ded9.ccc26","wires":[["68e7f351.24dd5c","d11853ad.952b6"]]},{"id":"a9be3e4a.97414","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback of vf-module update completed.'`\" />\n","comments":"","x":6339.42985534668,"y":3585.2150373458862,"z":"8068ded9.ccc26","wires":[]},{"id":"e4fa8909.4dd298","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":5951.6198387146,"y":3776.524684906006,"z":"8068ded9.ccc26","wires":[["599748a7.318d38"]]},{"id":"e6cf9e60.36c21","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":5959.869850158691,"y":3819.2747192382812,"z":"8068ded9.ccc26","wires":[["f362ddc.8a3be2"]]},{"id":"1a42d1bd.7e06ae","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":5956.6910972595215,"y":3862.536289215088,"z":"8068ded9.ccc26","wires":[["a0127c63.8e7e9"]]},{"id":"599748a7.318d38","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":6133.048320770264,"y":3775.9890937805176,"z":"8068ded9.ccc26","wires":[]},{"id":"f362ddc.8a3be2","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`\" />\n","comments":"","x":6152.048320770264,"y":3819.4890937805176,"z":"8068ded9.ccc26","wires":[]},{"id":"eb495056.566df","type":"record","name":"record volume-group ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK volume-group update\"/>","comments":"","outputs":1,"x":5783.298320770264,"y":3732.4890928268433,"z":"8068ded9.ccc26","wires":[[]]},{"id":"5688630b.c730bc","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":5528.298290252686,"y":3732.7390670776367,"z":"8068ded9.ccc26","wires":[["eb495056.566df","fd633781.1bf9c8"]]},{"id":"a0127c63.8e7e9","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback of volume_group completed.'`\" />\n","comments":"","x":6139.798328399658,"y":3862.989091873169,"z":"8068ded9.ccc26","wires":[]},{"id":"6e76a93a.5e0588","type":"save","name":"save VNFC","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"vnfc\"\n\t\tkey=\"vnfc.vnfc-name = $ss.param.vnfc-name\" >\n<parameter name=\"nfc-naming-code\" value='`$ss.param.nfc-naming-code`' />\n<parameter name=\"nfc-function\" value='`$ss.param.nfc-function`' />\n<parameter name=\"model-customization-id\" value='`$ss.param.vnfc-model-customization-uuid`' />\n<parameter name=\"model-invariant-id\" value='`$ss.param.vnfc-model-invariant-uuid`' />\n<parameter name=\"model-version-id\" value='`$ss.param.vnfc-model-version`' />\n","comments":"","outputs":1,"x":1367.1668243408203,"y":4289.833667755127,"z":"8068ded9.ccc26","wires":[["d8805021.0b8d1","1a8d278c.ff1d48"]]},{"id":"d8805021.0b8d1","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1556.1668243408203,"y":4289.833667755127,"z":"8068ded9.ccc26","wires":[["95d6f18e.5f4b6"]]},{"id":"95d6f18e.5f4b6","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1758.9168167114258,"y":4289.833641052246,"z":"8068ded9.ccc26","wires":[["6b1f5790.4f6e98","4c4f8f77.4d5e8"]]},{"id":"6b1f5790.4f6e98","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create vnfc with vnfc-name =' + $ss.param.vnfc-name + ' in AnAI. ' + $error-message`\" />\n","comments":"","x":1969.9526290893555,"y":4333.024550437927,"z":"8068ded9.ccc26","wires":[]},{"id":"a48e88aa.092058","type":"save","name":"delete vnfc","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"vnfc\"\n\t\tkey=\"vnfc.vnfc-name = $ss.param.vnfc-name\" >","comments":"","outputs":1,"x":5535.810607910156,"y":4058.9404010772705,"z":"8068ded9.ccc26","wires":[["59027b46.55df94","f9986c81.947e2","e0dbfb82.72b598"]]},{"id":"59027b46.55df94","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":5742.881973266602,"y":4059.4161376953125,"z":"8068ded9.ccc26","wires":[["6a891b2f.3bef34"]]},{"id":"f9986c81.947e2","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":5751.131984710693,"y":4102.166172027588,"z":"8068ded9.ccc26","wires":[["56f5e4c5.27919c"]]},{"id":"e0dbfb82.72b598","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":5747.953231811523,"y":4145.4277420043945,"z":"8068ded9.ccc26","wires":[["f4aa6356.d4417"]]},{"id":"d76a7da6.218ec","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":6180.310455322266,"y":4058.880546569824,"z":"8068ded9.ccc26","wires":[]},{"id":"56f5e4c5.27919c","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`\" />\n","comments":"","x":5943.310455322266,"y":4102.380546569824,"z":"8068ded9.ccc26","wires":[]},{"id":"eac4f91c.88d308","type":"record","name":"record vnfc ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK vnfc save\"/>","comments":"","outputs":1,"x":5573.560455322266,"y":4010.38054561615,"z":"8068ded9.ccc26","wires":[[]]},{"id":"35fbb6bd.1fe98a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":5330.560405731201,"y":4010.0591592788696,"z":"8068ded9.ccc26","wires":[["eac4f91c.88d308","a48e88aa.092058"]]},{"id":"f4aa6356.d4417","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`\" />\n","comments":"","x":5931.06046295166,"y":4145.880544662476,"z":"8068ded9.ccc26","wires":[]},{"id":"507e9295.282f3c","type":"save","name":"save connection-point","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"cp\"\n\t\tkey=\"cp.cp-instance-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id \n\t\tAND vnfc.vnfc-name = $ss.param.vnfc-name\" >\n<parameter name=\"cp-instance-id\" \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id`' />","comments":"","outputs":1,"x":1392.6549758911133,"y":4722.262181758881,"z":"8068ded9.ccc26","wires":[["8ed5705c.d927b","97aa540.9690fb","bd216744.2e7838"]]},{"id":"8ed5705c.d927b","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1613.6549758911133,"y":4722.262181758881,"z":"8068ded9.ccc26","wires":[["f28efc5d.8666"]]},{"id":"f28efc5d.8666","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1807.4049682617188,"y":4722.262155056,"z":"8068ded9.ccc26","wires":[["faf8768d.f51cd8","f742ee1.12f671"]]},{"id":"faf8768d.f51cd8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create connection-point with cp-instance-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id + ' in AnAI. ' + $error-message`\" />\n","comments":"","x":1991.5836181640625,"y":4722.595781803131,"z":"8068ded9.ccc26","wires":[]},{"id":"b7dc825b.8fad","type":"for","name":"for i in vnfc-network-data_length","xml":"<for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >\n","comments":"","outputs":1,"x":1111.3691940307617,"y":4721.762137889862,"z":"8068ded9.ccc26","wires":[["507e9295.282f3c"]]},{"id":"896eec17.9592f","type":"save","name":"save vlan-tag","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"vlan-tag\"\n\t\tkey=\"vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid\" >\n<parameter name=\"vlan-tag-id\" \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid`' />\n<parameter name=\"vlan-tag-role\" \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-tag-description`' />\n<parameter name=\"vlan-id-outer\" \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-tag-id`' />\n","comments":"","outputs":1,"x":2053.964241027832,"y":4818.345309019089,"z":"8068ded9.ccc26","wires":[["90f51779.f5ecd8","c0d3b01c.95c65","d246ced9.39264"]]},{"id":"90f51779.f5ecd8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2245.9643630981445,"y":4970.012247085571,"z":"8068ded9.ccc26","wires":[["1a95aa75.a66626"]]},{"id":"1a95aa75.a66626","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2437.71435546875,"y":4970.01222038269,"z":"8068ded9.ccc26","wires":[["8c5a2a75.a586c8","42ba330d.da466c"]]},{"id":"8c5a2a75.a586c8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' in AnAI. ' + $error-message`\" />\n","comments":"","x":2617.8930053710938,"y":4970.345847129822,"z":"8068ded9.ccc26","wires":[]},{"id":"4fa2d7bb.85da48","type":"save","name":"save l-interface","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"l-interface\"\n\t\tkey=\"l-interface.interface-name = $ss.param.oam-interface-name\n\t\tAND generic-vnf.vnf-id = $ss.param.vnf-id\" >\n<parameter name=\"interface-name\" value='`$ss.param.oam-interface-name`' />\n<parameter name=\"interface-role\" value='OAM' />\n","comments":"","outputs":1,"x":2010.8334274291992,"y":5397.713664054871,"z":"8068ded9.ccc26","wires":[["224508bf.eb67c8","3ac567fb.ca3628"]]},{"id":"224508bf.eb67c8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2183.833427429199,"y":5397.713664054871,"z":"8068ded9.ccc26","wires":[["438d491f.6bf318"]]},{"id":"438d491f.6bf318","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2353.5834197998047,"y":5397.71363735199,"z":"8068ded9.ccc26","wires":[["1dcac7c7.528ac8","42ba330d.da466c"]]},{"id":"1dcac7c7.528ac8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create l-interface with interface-name = ' + $ss.param.oam-interface-name + ' in AnAI. ' + $error-message`\" />\n","comments":"","x":2537.7620697021484,"y":5398.047264099121,"z":"8068ded9.ccc26","wires":[]},{"id":"8b4528ae.6e6858","type":"for","name":"for j in in vlan-data_length","xml":"<for silentFailure='true' index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >\n","comments":"","outputs":1,"x":1831.9284744262695,"y":4818.095413923264,"z":"8068ded9.ccc26","wires":[["896eec17.9592f"]]},{"id":"97aa540.9690fb","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1622.1192169189453,"y":4767.762180805206,"z":"8068ded9.ccc26","wires":[["f28efc5d.8666"]]},{"id":"9d96ee38.6074","type":"save","name":"delete vlan-tag","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"vlan-tag\"\n\t\tkey=\"vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid\" >","comments":"","outputs":1,"x":5547.858245849609,"y":4404.714177131653,"z":"8068ded9.ccc26","wires":[["7d9dc434.97b09c","dffb9406.38c898","9773800c.66ae6"]]},{"id":"7d9dc434.97b09c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":5754.929611206055,"y":4405.189913749695,"z":"8068ded9.ccc26","wires":[["395726ee.6fab7a"]]},{"id":"dffb9406.38c898","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":5763.1796226501465,"y":4447.93994808197,"z":"8068ded9.ccc26","wires":[["b21b98a6.1ff6e8"]]},{"id":"9773800c.66ae6","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":5760.000869750977,"y":4491.201518058777,"z":"8068ded9.ccc26","wires":[["386810b6.14634"]]},{"id":"f8e8b37a.dee57","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":6193.02498626709,"y":4403.987699985504,"z":"8068ded9.ccc26","wires":[]},{"id":"b21b98a6.1ff6e8","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`\" />\n","comments":"","x":5955.358093261719,"y":4448.1543226242065,"z":"8068ded9.ccc26","wires":[]},{"id":"a26d40b4.008af","type":"record","name":"record vlan-tag ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK vlan-tag save\"/>","comments":"","outputs":1,"x":5008.322776794434,"y":4355.43992805481,"z":"8068ded9.ccc26","wires":[[]]},{"id":"470ddb4b.ffbda4","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4746.3227462768555,"y":4355.689902305603,"z":"8068ded9.ccc26","wires":[["a26d40b4.008af","c9166e05.d9ebc"]]},{"id":"386810b6.14634","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`\" />\n","comments":"","x":5943.108100891113,"y":4491.654320716858,"z":"8068ded9.ccc26","wires":[]},{"id":"f488880c.8a9458","type":"comment","name":"Deleting vnfc will delete connection-point (cp)","info":"","comments":"","x":1916.6429901123047,"y":4669.309711933136,"z":"8068ded9.ccc26","wires":[]},{"id":"c0d3b01c.95c65","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2254.285804748535,"y":5016.333622932434,"z":"8068ded9.ccc26","wires":[["1a95aa75.a66626"]]},{"id":"c9166e05.d9ebc","type":"for","name":"for i in vnfc-network-data_len","xml":"<for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >\n","comments":"","outputs":1,"x":5013.429954528809,"y":4405.285639762878,"z":"8068ded9.ccc26","wires":[["6be8fd40.579294"]]},{"id":"6be8fd40.579294","type":"for","name":"for j in in vlan-data_length","xml":"<for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >\n","comments":"","outputs":1,"x":5309.858543395996,"y":4405.142817497253,"z":"8068ded9.ccc26","wires":[["9d96ee38.6074"]]},{"id":"2f9cf95b.a79726","type":"save","name":"save cp relationship","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"vlan-tag:relationship-list\"\n\t\tkey=\"vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"cp\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`$ss.cp.related-link`\" />","comments":"","outputs":1,"x":2627.2376022338867,"y":4866.238368272781,"z":"8068ded9.ccc26","wires":[["6ec967b.2c20298","11ee6506.d86e0b"]]},{"id":"6ec967b.2c20298","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2836.5233764648438,"y":4865.809748888016,"z":"8068ded9.ccc26","wires":[["a92d33a0.72b72"]]},{"id":"a92d33a0.72b72","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3028.5589179992676,"y":4865.809715509415,"z":"8068ded9.ccc26","wires":[["c5386653.0ce498","42ba330d.da466c"]]},{"id":"c5386653.0ce498","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create cp relationship for vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' in AnAI. ' + $error-message`\" />\n","comments":"","x":3208.7375679016113,"y":4866.143342256546,"z":"8068ded9.ccc26","wires":[]},{"id":"bd216744.2e7838","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1618.9524230957031,"y":4818.1908004283905,"z":"8068ded9.ccc26","wires":[["8b4528ae.6e6858"]]},{"id":"a7a813a9.685fe","type":"outcome","name":"oam-interface-name","xml":"<outcome value='oam-interface-name'>","comments":"","outputs":1,"x":2343.238121032715,"y":709.476101398468,"z":"8068ded9.ccc26","wires":[["82258c34.cd46e"]]},{"id":"82258c34.cd46e","type":"set","name":"set ss.param.oam-interface-name, index","xml":"<set>\n<parameter name='ss.param.oam-interface-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.oam-interface-name-index' value='`$bidx`' />","comments":"","x":2706.3453483581543,"y":710.2261743545532,"z":"8068ded9.ccc26","wires":[]},{"id":"4a38191a.665008","type":"outcome","name":"lo0-interface-name","xml":"<outcome value='=”lo0-interface-name'>","comments":"","outputs":1,"x":2339.952323913574,"y":752.19047498703,"z":"8068ded9.ccc26","wires":[["d1e11e09.3c6"]]},{"id":"d1e11e09.3c6","type":"set","name":"set ss.param.lo0-interface-name, index","xml":"<set>\n<parameter name='ss.param.lo0-interface-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.lo0-interface-name-index' value='`$bidx`' />","comments":"","x":2701.0595512390137,"y":752.9405479431152,"z":"8068ded9.ccc26","wires":[]},{"id":"4c4f8f77.4d5e8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4858.048778533936,"y":3553.6912155151367,"z":"8068ded9.ccc26","wires":[["1dadc5fe.f7b3aa","5baa82ec.dffecc"]]},{"id":"f742ee1.12f671","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4703.0722579956055,"y":3806.166953086853,"z":"8068ded9.ccc26","wires":[["4c4f8f77.4d5e8","b6293e2c.6351f"]]},{"id":"42ba330d.da466c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4545.6201095581055,"y":4096.262167930603,"z":"8068ded9.ccc26","wires":[["f742ee1.12f671","470ddb4b.ffbda4"]]},{"id":"d246ced9.39264","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2244.618579864502,"y":4818.047558784485,"z":"8068ded9.ccc26","wires":[["998e8a86.fc6368"]]},{"id":"75214bc4.1bbaa4","type":"switchNode","name":"switch: ss.param.oam-interface-name != NULL","xml":"<switch test=\"`$ss.param.oam-interface-name != ''`\">\n","comments":"","outputs":1,"x":1358.1906280517578,"y":5397.285633087158,"z":"8068ded9.ccc26","wires":[["ccf9556c.f89178"]]},{"id":"ccf9556c.f89178","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":1621.1906509399414,"y":5397.785631656647,"z":"8068ded9.ccc26","wires":[["e90d4fd9.29402"]]},{"id":"c64f4bcd.8c05f8","type":"save","name":"save l-interface","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"l-interface\"\n\t\tkey=\"l-interface.interface-name = $ss.param.lo0-interface-name\n\t\tAND generic-vnf.vnf-id = $ss.param.vnf-id\" >\n<parameter name=\"interface-name\" value='`$ss.param.lo0-interface-name`' />\n<parameter name=\"interface-role\" value='loopback' />\n","comments":"","outputs":1,"x":1990.7620086669922,"y":5735.571220397949,"z":"8068ded9.ccc26","wires":[["4e5bd967.48b608","3510ef13.90d34"]]},{"id":"4e5bd967.48b608","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2163.762008666992,"y":5735.571220397949,"z":"8068ded9.ccc26","wires":[["c67b407c.73c1a"]]},{"id":"c67b407c.73c1a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2333.5120010375977,"y":5735.571193695068,"z":"8068ded9.ccc26","wires":[["f0cb5410.f03658","75ee05f7.6473bc"]]},{"id":"f0cb5410.f03658","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' in AnAI. ' + $error-message`\" />\n","comments":"","x":2517.6906509399414,"y":5735.9048204422,"z":"8068ded9.ccc26","wires":[]},{"id":"3d7d185.baa90e8","type":"switchNode","name":"switch: ss.param.lo0-interface-name != NULL","xml":"<switch test=\"`$ss.param.lo0-interface-name != ''`\">\n","comments":"","outputs":1,"x":1335.5476608276367,"y":5735.571606636047,"z":"8068ded9.ccc26","wires":[["9e2c16cf.876d78"]]},{"id":"9e2c16cf.876d78","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":1598.5476837158203,"y":5736.071605205536,"z":"8068ded9.ccc26","wires":[["4852b9cd.b1f178"]]},{"id":"dbc07084.be7f5","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1060.9048385620117,"y":5397.714184761047,"z":"8068ded9.ccc26","wires":[["75214bc4.1bbaa4","3d7d185.baa90e8"]]},{"id":"68af07a3.16ce88","type":"outcome","name":"ipv4-oam-address","xml":"<outcome value='ipv4-oam-address'>","comments":"","outputs":1,"x":2335.7143173217773,"y":796.3809504508972,"z":"8068ded9.ccc26","wires":[["999cc01d.893d6"]]},{"id":"999cc01d.893d6","type":"set","name":"set ss.param.ipv4-oam-address, index","xml":"<set>\n<parameter name='ss.param.ipv4-oam-address' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.ipv4-oam-address-index' value='`$bidx`' />","comments":"","x":2699.678642272949,"y":797.1309986114502,"z":"8068ded9.ccc26","wires":[]},{"id":"10ef55c1.e5abda","type":"outcome","name":"loopback0_ipv4_address","xml":"<outcome value='loopback0_ipv4_address'>","comments":"","outputs":1,"x":2358.1428451538086,"y":880.6666750907898,"z":"8068ded9.ccc26","wires":[["2d6cf27a.9e02fe"]]},{"id":"2d6cf27a.9e02fe","type":"set","name":"set ss.param.loopback0-ipv4-address, index","xml":"<set>\n<parameter name='ss.param.loopback0-ipv4-address' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.loopback0-ipv4-address-index' value='`$bidx`' />","comments":"","x":2719.3930130004883,"y":880.2738108634949,"z":"8068ded9.ccc26","wires":[]},{"id":"ae3cb914.642ab8","type":"save","name":"delete l-interface (oam)","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"l-interface\"\n\t\tkey=\"l-interface.interface-name = $ss.param.oam-interface-name\n\t\tAND generic-vnf.vnf-id = $ss.param.vnf-id\" >","comments":"","outputs":1,"x":5804.525096893311,"y":4807.285605430603,"z":"8068ded9.ccc26","wires":[["88e8efea.35169","99eafa73.541068","3d9cbb53.db7764"]]},{"id":"88e8efea.35169","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":6012.596462249756,"y":4807.761342048645,"z":"8068ded9.ccc26","wires":[["ba1b62f2.0c98"]]},{"id":"99eafa73.541068","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":6020.846473693848,"y":4850.51137638092,"z":"8068ded9.ccc26","wires":[["46d515d3.0378ac"]]},{"id":"3d9cbb53.db7764","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":6017.667720794678,"y":4893.772946357727,"z":"8068ded9.ccc26","wires":[["f05862ba.8abb5"]]},{"id":"8c6a392a.c8ded8","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":6455.692127227783,"y":4808.225975036621,"z":"8068ded9.ccc26","wires":[]},{"id":"46d515d3.0378ac","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`\" />\n","comments":"","x":6213.02494430542,"y":4850.725750923157,"z":"8068ded9.ccc26","wires":[]},{"id":"cf73d4b9.868fc8","type":"record","name":"record OAM l-interface ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK l-interface (oam) save\"/>","comments":"","outputs":1,"x":5321.274875640869,"y":4758.868654251099,"z":"8068ded9.ccc26","wires":[[]]},{"id":"5de01092.e1692","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":5061.274826049805,"y":4758.547267913818,"z":"8068ded9.ccc26","wires":[["cf73d4b9.868fc8","8981860f.667448"]]},{"id":"f05862ba.8abb5","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`\" />\n","comments":"","x":6200.774951934814,"y":4894.225749015808,"z":"8068ded9.ccc26","wires":[]},{"id":"8981860f.667448","type":"switchNode","name":"switch: ss.param.oam-interface-name != NULL","xml":"<switch test=\"`$ss.param.oam-interface-name != ''`\">\n","comments":"","outputs":1,"x":5356.525089263916,"y":4808.142771720886,"z":"8068ded9.ccc26","wires":[["48c1dee3.50f7f"]]},{"id":"48c1dee3.50f7f","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":5615.382266998291,"y":4807.142771720886,"z":"8068ded9.ccc26","wires":[["ae3cb914.642ab8"]]},{"id":"6fca57ea.3397e8","type":"save","name":"delete l-interface (oam)","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"l-interface\"\n\t\tkey=\"l-interface.interface-name = $ss.param.lo0-interface-name\n\t\tAND generic-vnf.vnf-id = $ss.param.vnf-id\" >","comments":"","outputs":1,"x":5709.619335174561,"y":5214.714804649353,"z":"8068ded9.ccc26","wires":[["3fbb9856.3afac8","21a87462.f4342c","d4c7d7a5.d0fbd8"]]},{"id":"3fbb9856.3afac8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":5917.690700531006,"y":5215.190541267395,"z":"8068ded9.ccc26","wires":[["e857a6e0.098918"]]},{"id":"21a87462.f4342c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":5925.940711975098,"y":5257.94057559967,"z":"8068ded9.ccc26","wires":[["cc064c02.22a01"]]},{"id":"d4c7d7a5.d0fbd8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":5922.761959075928,"y":5301.202145576477,"z":"8068ded9.ccc26","wires":[["1e79dbee.93e174"]]},{"id":"9c8d41ed.27a7c","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":6372.4523277282715,"y":5213.321630477905,"z":"8068ded9.ccc26","wires":[]},{"id":"cc064c02.22a01","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' not found in AAI. Consider silent success!'`\" />\n","comments":"","x":6118.11918258667,"y":5258.154950141907,"z":"8068ded9.ccc26","wires":[]},{"id":"a5d6d0ff.1e13d","type":"record","name":"record LOOPBACK l-interface ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK l-interface (oam) save\"/>","comments":"","outputs":1,"x":5250.369113922119,"y":5166.297853469849,"z":"8068ded9.ccc26","wires":[[]]},{"id":"3199093e.07e6f6","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4966.369064331055,"y":5165.976467132568,"z":"8068ded9.ccc26","wires":[["a5d6d0ff.1e13d","3475a838.9659a8"]]},{"id":"1e79dbee.93e174","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' completed.'`\" />\n","comments":"","x":6105.869190216064,"y":5301.654948234558,"z":"8068ded9.ccc26","wires":[]},{"id":"b614f632.2d7158","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":5520.476505279541,"y":5214.571970939636,"z":"8068ded9.ccc26","wires":[["6fca57ea.3397e8"]]},{"id":"3475a838.9659a8","type":"switchNode","name":"switch: ss.param.lo0-interface-name != NULL","xml":"<switch test=\"`$ss.param.lo0-interface-name != ''`\">\n","comments":"","outputs":1,"x":5259.619167327881,"y":5215.14351940155,"z":"8068ded9.ccc26","wires":[["b614f632.2d7158"]]},{"id":"75ee05f7.6473bc","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4416.81022644043,"y":4415.476540565491,"z":"8068ded9.ccc26","wires":[["42ba330d.da466c","47592f63.65ff8"]]},{"id":"3ac567fb.ca3628","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2191.9047927856445,"y":5439.999988555908,"z":"8068ded9.ccc26","wires":[["438d491f.6bf318"]]},{"id":"3510ef13.90d34","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2170.7619094848633,"y":5778.142643928528,"z":"8068ded9.ccc26","wires":[["c67b407c.73c1a"]]},{"id":"5713a33e.10386c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4285.38126373291,"y":4891.666825294495,"z":"8068ded9.ccc26","wires":[["75ee05f7.6473bc","16cd30f3.c7e79f"]]},{"id":"91d6d0e4.e2cc2","type":"outcome","name":"ipv4-oam-address-prefix","xml":"<outcome value='ipv4-oam-address-prefix'>","comments":"","outputs":1,"x":2355.7143173217773,"y":838.3810153007507,"z":"8068ded9.ccc26","wires":[["8eb30e9d.19d4b"]]},{"id":"8eb30e9d.19d4b","type":"set","name":"set ss.param.ipv4-oam-address-prefix, index","xml":"<set>\n<parameter name='ss.param.ipv4-oam-address-prefix' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.ipv4-oam-address-prefix-index' value='`$bidx`' />","comments":"","x":2718.3928871154785,"y":838.5596051216125,"z":"8068ded9.ccc26","wires":[]},{"id":"e90d4fd9.29402","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1781.0476303100586,"y":5397.285304069519,"z":"8068ded9.ccc26","wires":[["4fa2d7bb.85da48","f10bbb20.7f4fc8"]]},{"id":"4852b9cd.b1f178","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1760.1904983520508,"y":5736.142643928528,"z":"8068ded9.ccc26","wires":[["c64f4bcd.8c05f8","e8551427.6b64e8"]]},{"id":"f10bbb20.7f4fc8","type":"save","name":"save l3-interface-ipv4-address","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"l3-interface-ipv4-address-list\"\n\t\tkey=\"l3-interface-ipv4-address-list.l3-interface-ipv4-address = $ss.param.ipv4-oam-address \n\t\tAND generic-vnf.vnf-id = $ss.param.vnf-id \n\t\tAND l-interface.interface-name = $ss.param.oam-interface-name\" >\n<parameter name=\"l3-interface-ipv4-address\" value='`$ss.param.ipv4-oam-address`' />\n<parameter name=\"l3-interface-ipv4-prefix-length\" value='`$ss.param.ipv4-oam-address-prefix`' />\n","comments":"","outputs":1,"x":2057.619125366211,"y":5542.999936103821,"z":"8068ded9.ccc26","wires":[["a8aab5fb.8eca68","93c4ee1c.dd6d6"]]},{"id":"a8aab5fb.8eca68","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2278.619125366211,"y":5542.999936103821,"z":"8068ded9.ccc26","wires":[["402e134b.ab039c"]]},{"id":"402e134b.ab039c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2448.3691177368164,"y":5542.99990940094,"z":"8068ded9.ccc26","wires":[["c292c4a4.2a1388","75ee05f7.6473bc"]]},{"id":"c292c4a4.2a1388","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create l3-interface-ipv4-address-list with l3-interface-ipv4-address = ' + $ss.param.ipv4-oam-address + ' in AnAI. ' + $error-message`\" />\n","comments":"","x":2632.54776763916,"y":5543.333536148071,"z":"8068ded9.ccc26","wires":[]},{"id":"93c4ee1c.dd6d6","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2286.6904907226562,"y":5585.286260604858,"z":"8068ded9.ccc26","wires":[["402e134b.ab039c"]]},{"id":"e8551427.6b64e8","type":"save","name":"save l3-interface-ipv4-address","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"l3-interface-ipv4-address-list\"\n\t\tkey=\"l3-interface-ipv4-address-list.l3-interface-ipv4-address = $ss.param.ipv4-loopback0-address \n\t\tAND generic-vnf.vnf-id = $ss.param.vnf-id \n\t\tAND l-interface.interface-name = $ss.param.lo0-interface-name\" >\n<parameter name=\"l3-interface-ipv4-address\" value='`$ss.param.ipv4-loopback0-address`' />\n<parameter name=\"l3-interface-ipv4-prefix-length\" value='32' />\n","comments":"","outputs":1,"x":2034.6191024780273,"y":5852.713961601257,"z":"8068ded9.ccc26","wires":[["2cfc8fb5.b92c4","a3b0bac1.66c468"]]},{"id":"2cfc8fb5.b92c4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2255.6191024780273,"y":5852.713961601257,"z":"8068ded9.ccc26","wires":[["7b9df773.727b78"]]},{"id":"7b9df773.727b78","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2425.369094848633,"y":5852.7139348983765,"z":"8068ded9.ccc26","wires":[["7a983387.d8620c","5713a33e.10386c"]]},{"id":"7a983387.d8620c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create l3-interface-ipv4-address-list with l3-interface-ipv4-address = ' + $ss.param.loopback0-ipv4-address + ' in AnAI. ' + $error-message`\" />\n","comments":"","x":2609.5477447509766,"y":5853.047561645508,"z":"8068ded9.ccc26","wires":[]},{"id":"a3b0bac1.66c468","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2263.6904678344727,"y":5895.000286102295,"z":"8068ded9.ccc26","wires":[["7b9df773.727b78"]]},{"id":"1bae6e26.b48422","type":"comment","name":"Delete l-interface will delete l3-interface-ipv4-address-list","info":"","comments":"","x":4662.333908081055,"y":4894.429103851318,"z":"8068ded9.ccc26","wires":[]},{"id":"930c302f.87d9a","type":"execute","name":"param[].name startsWith 'sriov'","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='startsWith' emitsOutcome='true' >\n <parameter name=\"source\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].name`\" />\n\t<parameter name=\"target\" value=\"sriov\"/>\n","comments":"","outputs":1,"x":1611.0475387573242,"y":360.666711807251,"z":"8068ded9.ccc26","wires":[["d36b238f.c2eeb","136cf5dd.278b9a"]]},{"id":"d36b238f.c2eeb","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1821.2975387573242,"y":360.916711807251,"z":"8068ded9.ccc26","wires":[["71ba3468.524d5c"]]},{"id":"71ba3468.524d5c","type":"execute","name":"param[].name endsWith 'sriov'","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='endsWith' emitsOutcome='true' >\n <parameter name=\"source\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].name`\" />\n\t<parameter name=\"target\" value=\"_net_id\"/>\n","comments":"","outputs":1,"x":2038.1903686523438,"y":360.6667175292969,"z":"8068ded9.ccc26","wires":[["f28d4124.551b2"]]},{"id":"f28d4124.551b2","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2248.1902389526367,"y":360.2381229400635,"z":"8068ded9.ccc26","wires":[["892a94df.748008"]]},{"id":"b1277757.3b3778","type":"set","name":"set ss.network[$nidx].netid","xml":"<set>\n<parameter name='ss.network[$nidx].netid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n","comments":"","x":2599.618574142456,"y":359.66666984558105,"z":"8068ded9.ccc26","wires":[]},{"id":"8447582e.713cf8","type":"set","name":"nidx++","xml":"<set>\n<parameter name='nidx' value='`$nidx + 1`' />\n","comments":"","x":2539.618682861328,"y":403.09529304504395,"z":"8068ded9.ccc26","wires":[]},{"id":"823c2354.c6c5","type":"set","name":"set nidx = 0","xml":"<set>\n<parameter name='nidx' value='0' />\n","comments":"","x":1208.190185546875,"y":277.2380828857422,"z":"8068ded9.ccc26","wires":[]},{"id":"892a94df.748008","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2386.761890411377,"y":360.52386569976807,"z":"8068ded9.ccc26","wires":[["b1277757.3b3778","8447582e.713cf8"]]},{"id":"136cf5dd.278b9a","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1822.4762840270996,"y":403.80954360961914,"z":"8068ded9.ccc26","wires":[["a1dc9b53.b001a8"]]},{"id":"b307f248.13b72","type":"for","name":"for n in nidx","xml":"<for silentFailure='true' index='n' start='0' end='`$nidx`' >\n","comments":"","outputs":1,"x":1454.952407836914,"y":6171.667496681213,"z":"8068ded9.ccc26","wires":[["2dbbe18d.9f749e"]]},{"id":"4933575b.c49bc8","type":"save","name":"save l3-network relationships for VNF","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf:relationship-list\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"l3-network\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`$ss.l3-network.related-link`\" />\n<!--\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=\"`$ss.network[$n].netid`\" />\n-->","comments":"","outputs":1,"x":1898.1426467895508,"y":6219.333839416504,"z":"8068ded9.ccc26","wires":[["5f1ee172.8d495","f18a8eef.b86b4"]]},{"id":"11ee6506.d86e0b","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2845.761329650879,"y":4910.857924699783,"z":"8068ded9.ccc26","wires":[["a92d33a0.72b72"]]},{"id":"5f1ee172.8d495","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2173.857063293457,"y":6220.048072814941,"z":"8068ded9.ccc26","wires":[["61369a55.267e34"]]},{"id":"61369a55.267e34","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2370.6070556640625,"y":6220.048046112061,"z":"8068ded9.ccc26","wires":[["b7e15b92.6b9328","a7686c4c.48a2b"]]},{"id":"b7e15b92.6b9328","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`' Failed to create generic-vnf releationship for l3-network with network-id =' + $ss.network[$n].netid + ' in AnAI. ' + $error-message`\" />\n","comments":"","x":2550.7857055664062,"y":6220.381672859192,"z":"8068ded9.ccc26","wires":[]},{"id":"f18a8eef.b86b4","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2183.095016479492,"y":6265.096248626709,"z":"8068ded9.ccc26","wires":[["61369a55.267e34"]]},{"id":"48809820.da73e8","type":"save","name":"delete VNF l3-network relationships","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"generic-vnf:relationship-list\" \n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \n\t\tAND related-to = l3-network \n\t\tAND relationship.related-link = $tmp.related-link\" >","comments":"","outputs":1,"x":5329.524971008301,"y":5635.285350322723,"z":"8068ded9.ccc26","wires":[["88a59c9a.2b00b","de38bac1.0b21e8","71f6c03f.9af32"]]},{"id":"88a59c9a.2b00b","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":5592.596336364746,"y":5635.761086940765,"z":"8068ded9.ccc26","wires":[["7d871113.d9d1b"]]},{"id":"de38bac1.0b21e8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":5600.846347808838,"y":5678.511121273041,"z":"8068ded9.ccc26","wires":[["ea95c949.66b368"]]},{"id":"71f6c03f.9af32","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":5597.667594909668,"y":5721.772691249847,"z":"8068ded9.ccc26","wires":[["ad0bb67e.3bf9b8"]]},{"id":"ffea8954.bee348","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to delete VNF l3-network relationship for generic-vnf.vnfid = ' + $ss.param.vnf-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":6059.02445602417,"y":5634.891801357269,"z":"8068ded9.ccc26","wires":[]},{"id":"ea95c949.66b368","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' l3-network relationship with related-path = ' + $tmp.related-path + ' not found in AAI. Consider silent success!'`\" />\n","comments":"","x":5793.02481842041,"y":5678.725495815277,"z":"8068ded9.ccc26","wires":[]},{"id":"fc646437.90d098","type":"record","name":"record VNF l3-network relationship ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK VNF l3-network relationship\"/>","comments":"","outputs":1,"x":5173.512390136719,"y":5526.345165252686,"z":"8068ded9.ccc26","wires":[[]]},{"id":"e665f06b.96f35","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4855.9888916015625,"y":5527.166730880737,"z":"8068ded9.ccc26","wires":[["fc646437.90d098","2f789ede.6f8722"]]},{"id":"ad0bb67e.3bf9b8","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback (delete) of generic-vnf l3-network relationships completed.'`\" />\n","comments":"","x":5780.774826049805,"y":5722.2254939079285,"z":"8068ded9.ccc26","wires":[]},{"id":"2f789ede.6f8722","type":"for","name":"for n in nidx","xml":"<for silentFailure='true' index='n' start='0' end='`$nidx`' >\n","comments":"","outputs":1,"x":5061.143711090088,"y":5587.381254673004,"z":"8068ded9.ccc26","wires":[["48809820.da73e8","4faa8555.6c3d7c"]]},{"id":"a7686c4c.48a2b","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4141.334602355957,"y":5268.095029830933,"z":"8068ded9.ccc26","wires":[["5713a33e.10386c","ecb6efb1.19ad9"]]},{"id":"603a3397.22016c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1893.3812103271484,"y":4058.47643327713,"z":"8068ded9.ccc26","wires":[["5819b51f.e401ec"]]},{"id":"8f404e48.285a6","type":"outcome","name":"aai-vf-module-put","xml":"<outcome value='aai-vf-module-put'>\n","comments":"","outputs":1,"x":2342.5713500976562,"y":1310.7143058776855,"z":"8068ded9.ccc26","wires":[["11703c8e.d0e733"]]},{"id":"51b14fbd.75b3e","type":"set","name":"set ss.param.aai-vf-module-put-index","xml":"<set>\n<parameter name='ss.param.aai-vf-module-put-index' value='`$bidx`' />\n","comments":"","x":2784.714401245117,"y":1310.5714855194092,"z":"8068ded9.ccc26","wires":[]},{"id":"43c0a50b.639d9c","type":"outcome","name":"unassign","xml":"<outcome value='unassign'>","comments":"","outputs":1,"x":469.1074523925781,"y":798.2615756988525,"z":"8068ded9.ccc26","wires":[["255c7c9f.01ed14"]]},{"id":"81d44ce6.28309","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1025.5951538085938,"y":276.8809232711792,"z":"8068ded9.ccc26","wires":[["823c2354.c6c5","32c37498.d5047c","385ba57a.8df6da"]]},{"id":"11ac6461.2c5e7c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3352.3096084594727,"y":2988.3092212677,"z":"8068ded9.ccc26","wires":[["b6293e2c.6351f","470ddb4b.ffbda4","ecb6efb1.19ad9","47592f63.65ff8","16cd30f3.c7e79f"]]},{"id":"255c7c9f.01ed14","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":632.1905670166016,"y":797.7618198394775,"z":"8068ded9.ccc26","wires":[["11ac6461.2c5e7c","81d44ce6.28309","15d745ea.7fb6ba","b07947b2.6ba8c8"]]},{"id":"15d745ea.7fb6ba","type":"set","name":"set tmp.return-failure = true","xml":"<set>\n<parameter name='tmp.return-failure' value ='true' />","comments":"","x":1116.047607421875,"y":796.3332469463348,"z":"8068ded9.ccc26","wires":[]},{"id":"19fd6e4b.a54a02","type":"switchNode","name":"switch tmp.return-failure","xml":"<switch test='`$tmp.return-failure`'>\n","comments":"","outputs":1,"x":6194.024250030518,"y":4233.785830497742,"z":"8068ded9.ccc26","wires":[["e9f416b9.bf4c78"]]},{"id":"6a891b2f.3bef34","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":5944.691295623779,"y":4058.7855892181396,"z":"8068ded9.ccc26","wires":[["d76a7da6.218ec","19fd6e4b.a54a02"]]},{"id":"e9f416b9.bf4c78","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":6387.691581726074,"y":4233.7856702804565,"z":"8068ded9.ccc26","wires":[["bcf9460c.c83dd8"]]},{"id":"db5e8538.a78a48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='`$error-message`' />\n","comments":"","x":6762.691753387451,"y":4285.1189222335815,"z":"8068ded9.ccc26","wires":[]},{"id":"395726ee.6fab7a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":5954.024467468262,"y":4404.7858057022095,"z":"8068ded9.ccc26","wires":[["4031474c.e3e268","f8e8b37a.dee57"]]},{"id":"4031474c.e3e268","type":"switchNode","name":"switch tmp.return-failure","xml":"<switch test='`$tmp.return-failure`'>\n","comments":"","outputs":1,"x":6203.357421875,"y":4579.7860469818115,"z":"8068ded9.ccc26","wires":[["f7d354b0.a531b8"]]},{"id":"ba1b62f2.0c98","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":6237.691120147705,"y":4808.1190395355225,"z":"8068ded9.ccc26","wires":[["d37f00eb.31762","8c6a392a.c8ded8"]]},{"id":"d37f00eb.31762","type":"switchNode","name":"switch tmp.return-failure","xml":"<switch test='`$tmp.return-failure`'>\n","comments":"","outputs":1,"x":6487.024074554443,"y":4979.1192808151245,"z":"8068ded9.ccc26","wires":[["9c9b56a.2f3efa8"]]},{"id":"9c9b56a.2f3efa8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":6680.69140625,"y":4979.119120597839,"z":"8068ded9.ccc26","wires":[["6aab8121.6a61f"]]},{"id":"e857a6e0.098918","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":6149.690906524658,"y":5213.785968780518,"z":"8068ded9.ccc26","wires":[["63a5e50e.8c1fac","9c8d41ed.27a7c"]]},{"id":"63a5e50e.8c1fac","type":"switchNode","name":"switch tmp.return-failure","xml":"<switch test='`$tmp.return-failure`'>\n","comments":"","outputs":1,"x":6399.0238609313965,"y":5388.78621006012,"z":"8068ded9.ccc26","wires":[["2a23691a.d2dc36"]]},{"id":"2a23691a.d2dc36","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":6592.691192626953,"y":5388.7860498428345,"z":"8068ded9.ccc26","wires":[["303089b7.8759a6"]]},{"id":"7d871113.d9d1b","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":5828.2629737854,"y":5634.880418300629,"z":"8068ded9.ccc26","wires":[["9f47089c.1b3508","ffea8954.bee348"]]},{"id":"9f47089c.1b3508","type":"switchNode","name":"switch tmp.return-failure","xml":"<switch test='`$tmp.return-failure`'>\n","comments":"","outputs":1,"x":6077.595928192139,"y":5809.880659580231,"z":"8068ded9.ccc26","wires":[["5173c626.5e8d58"]]},{"id":"5173c626.5e8d58","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":6271.263259887695,"y":5809.880499362946,"z":"8068ded9.ccc26","wires":[["d589e67a.08f778"]]},{"id":"b07947b2.6ba8c8","type":"set","name":"set resource-resolution-data.status = DELETED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='DELETED' />\n","comments":"","x":966.9048004150391,"y":6656.333566665649,"z":"8068ded9.ccc26","wires":[]},{"id":"72952054.933dc","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":6860.024913787842,"y":4232.785665035248,"z":"8068ded9.ccc26","wires":[]},{"id":"bcf9460c.c83dd8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":6548.691387176514,"y":4233.118878364563,"z":"8068ded9.ccc26","wires":[["72952054.933dc","db5e8538.a78a48"]]},{"id":"f7d354b0.a531b8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":6397.024753570557,"y":4579.785886764526,"z":"8068ded9.ccc26","wires":[["eca1d6d8.eda8c8"]]},{"id":"20de2c42.a3d634","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='`$error-message`' />\n","comments":"","x":6775.691108703613,"y":4631.452404975891,"z":"8068ded9.ccc26","wires":[]},{"id":"7c8af4c6.8e0ccc","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":6873.024269104004,"y":4579.119147777557,"z":"8068ded9.ccc26","wires":[]},{"id":"eca1d6d8.eda8c8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":6561.690742492676,"y":4579.452361106873,"z":"8068ded9.ccc26","wires":[["7c8af4c6.8e0ccc","20de2c42.a3d634"]]},{"id":"935f61e6.451d4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='`$error-message`' />\n","comments":"","x":7069.357624053955,"y":5031.1190395355225,"z":"8068ded9.ccc26","wires":[]},{"id":"6d4ca687.6e4358","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":7166.690784454346,"y":4978.785782337189,"z":"8068ded9.ccc26","wires":[]},{"id":"6aab8121.6a61f","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":6855.357257843018,"y":4979.118995666504,"z":"8068ded9.ccc26","wires":[["6d4ca687.6e4358","935f61e6.451d4"]]},{"id":"40d75454.77644c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='`$error-message`' />\n","comments":"","x":6976.357410430908,"y":5441.119464874268,"z":"8068ded9.ccc26","wires":[]},{"id":"51fd880c.bcbaf8","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":7073.690570831299,"y":5388.786207675934,"z":"8068ded9.ccc26","wires":[]},{"id":"303089b7.8759a6","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":6762.357044219971,"y":5389.119421005249,"z":"8068ded9.ccc26","wires":[["51fd880c.bcbaf8","40d75454.77644c"]]},{"id":"cafc31da.005e7","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='`$error-message`' />\n","comments":"","x":6661.596378326416,"y":5861.214030742645,"z":"8068ded9.ccc26","wires":[]},{"id":"dfaf7e7b.49ee9","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":6758.929538726807,"y":5808.8807735443115,"z":"8068ded9.ccc26","wires":[]},{"id":"d589e67a.08f778","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":6447.5960121154785,"y":5809.213986873627,"z":"8068ded9.ccc26","wires":[["dfaf7e7b.49ee9","cafc31da.005e7"]]},{"id":"133a1544.17dc0b","type":"outcome","name":"nfc-naming-code","xml":"<outcome value='nfc-naming-code'>","comments":"","outputs":1,"x":2334.3572387695312,"y":968.976146697998,"z":"8068ded9.ccc26","wires":[["25e3fff7.35115"]]},{"id":"25e3fff7.35115","type":"set","name":"set ss.param.vnfc-name, indexnfc-naming-code","xml":"<set>\n<parameter name='ss.param.nfc-naming-code' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.nfc-naming-code-index' value='`$bidx`' />","comments":"","x":2731.1787109375,"y":969.1547613143921,"z":"8068ded9.ccc26","wires":[]},{"id":"ec83fc2d.1db1b","type":"outcome","name":"nfc-function","xml":"<outcome value='nfc-function'>","comments":"","outputs":1,"x":2319.071521759033,"y":1010.4047336578369,"z":"8068ded9.ccc26","wires":[["79ed605a.86905"]]},{"id":"79ed605a.86905","type":"set","name":"set ss.param.nfc-function, index","xml":"<set>\n<parameter name='ss.param.nfc-function' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.nfc-function-index' value='`$bidx`' />","comments":"","x":2681.3215522766113,"y":1010.4405193328857,"z":"8068ded9.ccc26","wires":[]},{"id":"ca7c357a.02aee8","type":"outcome","name":"vnfc-model-customization-uuid","xml":"<outcome value='vnfc-model-customization-uuid'>","comments":"","outputs":1,"x":2378.500198364258,"y":1050.4047679901123,"z":"8068ded9.ccc26","wires":[["94c3f286.c2c34"]]},{"id":"94c3f286.c2c34","type":"set","name":"set ss.param.vnfc-model-customization-uuid, index","xml":"<set>\n<parameter name='ss.param.vnfc-model-customization-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.vnfc-model-customization-uuid-index' value='`$bidx`' />","comments":"","x":2738.750228881836,"y":1050.4405536651611,"z":"8068ded9.ccc26","wires":[]},{"id":"f5541fce.c9fc9","type":"outcome","name":"vnfc-model-invariant-uuid","xml":"<outcome value='vnfc-model-invariant-uuid'>","comments":"","outputs":1,"x":2363.2144508361816,"y":1091.8333730697632,"z":"8068ded9.ccc26","wires":[["dbebcefd.68335"]]},{"id":"dbebcefd.68335","type":"set","name":"set ss.param.vnfc-model-invariant-uuid, index","xml":"<set>\n<parameter name='ss.param.vnfc-model-invariant-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.vnfc-model-invariant-uuid-index' value='`$bidx`' />","comments":"","x":2722.4644813537598,"y":1091.869158744812,"z":"8068ded9.ccc26","wires":[]},{"id":"2b83386b.477738","type":"outcome","name":"vnfc-model-version","xml":"<outcome value='vnfc-model-version'>","comments":"","outputs":1,"x":2343.643020629883,"y":1133.261926651001,"z":"8068ded9.ccc26","wires":[["dfca8723.2b1448"]]},{"id":"dfca8723.2b1448","type":"set","name":"set ss.param.vnfc-model-version, index","xml":"<set>\n<parameter name='ss.param.vnfc-model-version' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.vnfc-model-version-index' value='`$bidx`' />","comments":"","x":2703.893051147461,"y":1133.2977123260498,"z":"8068ded9.ccc26","wires":[]},{"id":"43435160.6954c","type":"set","name":"set TEST DATA","xml":"<set>\n<parameter name='vnf-index' value='0' />\n<parameter name='vf-module-index' value='0' />\n<parameter name='ss.capability-name' value='aai-vf-module-put' />\n<parameter name='ss.capability-action' value='unassign' />\n<parameter name='service-data.vnfs.vnf[0].vnf-id' value = '7324200933' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vnf-topology.vnf-parameters-data.param[0].name' value = 'vnf_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vnf-topology.vnf-parameters-data.param[0].value' value = '7324200933' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vnf-topology.sdnc-generated-cloud-resources' value='true' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.service-information.service-instance-id' value='11' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vnf-information.vnf-id' value='7324200933' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-topology.sdnc-generated-cloud-resources' value = 'true' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param_length' value = '36' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].name' value = 'vlan-tag-1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].value' value = '${vlan-tag-1v}' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].name' value = 'policy-instance-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].value' value = 'JQIN1810SRIOV.Config_MS_SRIOV_VlanTag_1810_ADIOD_VPE.*' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[1].name' value = 'resource-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[1].value' value = 'vlan-tag-1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[2].name' value = 'resource-value' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[2].value' value = '' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[3].name' value = 'scope-id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[3].value' value = 'MTCLL2238F' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[4].name' value = 'vlan-tag-key' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[4].value' value = 'dvncom4003' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[5].name' value = 'vlan-type' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[5].value' value = 'vlan-id-outer' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[6].name' value = 'vnfc-network-role' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[6].value' value = 'network-role-1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key_length' value = '7' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.status' value = 'SUCCESS' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.capability-name' value = 'mS-vlan-tag-assign' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].name' value = 'vlan-tag-2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].value' value = 'manually-assigned-vlan-tag-2v' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[0].name' value = 'policy-instance-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[0].value' value = 'JQIN1810SRIOV.Config_MS_SRIOV_VlanTag_1810_ADIOD_VPE.*' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[1].name' value = 'resource-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[1].value' value = 'vlan-tag-2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[2].name' value = 'resource-value' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[2].value' value = 'manually-assigned-vlan-tag-2v' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[3].name' value = 'scope-id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[3].value' value = 'MTCLL2238F' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[4].name' value = 'vlan-tag-key' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[4].value' value = 'dvncom4003' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[5].name' value = 'vlan-type' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[5].value' value = 'vlan-id-filter' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[6].name' value = 'vnfc-network-role' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[6].value' value = 'network-role-2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key_length' value = '7' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.status' value = 'SUCCESS' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.capability-name' value = 'INPUT' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[2].name' value = 'bogus1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[2].value' value = 'bogus1' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[3].name' value = 'bogus2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[3].value' value = 'bogus2' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[4].name' value = 'bogus3' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[4].value' value = 'bogus3' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[5].name' value = 'bogus4' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[5].value' value = 'bogus4' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[6].name' value = 'bogus5' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[6].value' value = 'bogus5' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[7].name' value = 'aic-cloud-region' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[7].value' value = 'mtn6' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[8].name' value = 'ipv4-loopback0-address' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[8].value' value = '1.1.1.1' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].name' value = 'ipv4-oam-address' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].value' value = '2.2.2.2' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].name' value = 'as-number' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].value' value = '11' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[11].name' value = 'vlan-id-outer' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[11].value' value = '[999]' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[12].name' value = 'bad_vnf_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[12].value' value = '7324200933' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[13].name' value = 'vf_module_name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[13].value' value = 'NEW_SELF_SERVE_VF_MODULE_TEST_1' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[14].name' value = 'volume-group-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[14].value' value = 'dummyvolumegroupname' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[15].name' value = 'volume_group_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[15].value' value = 'vg-1-999' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[16].name' value = 'vf_module_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[16].value' value = '7323683661' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[17].name' value = 'vf_module_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[17].value' value = '7323683661' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[18].name' value = 'vnfc-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[18].value' value = 'bogus-vnfc-name' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[19].name' value = 'vm_name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[19].value' value = 'bogus-vnfc-name' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[20].name' value = 'vm-type' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[20].value' value = 'oam' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[21].name' value = 'nfc-function' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[21].value' value = 'data' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[22].name' value = 'nfc-naming-code' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[22].value' value = 'dummy-naming-code' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[23].name' value = 'vnfc-model-customization-uuid' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[23].value' value = 'bbbb-99999' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[24].name' value = 'vnfc-model-invariant-uuid' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[24].value' value = 'aaaaa-10000' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[25].name' value = 'vnfc-model-version' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[25].value' value = 'model1' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[26].name' value = 'oam-interface-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[26].value' value = 'oamintfname' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[27].name' value = 'lo0-interface-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[27].value' value = 'lo0intfname' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[28].name' value = 'sriov41_net_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[28].value' value = '4141414141' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[29].name' value = 'sriov42_net_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[29].value' value = '4242424242' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[30].name' value = 'sriov43_net_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[30].value' value = '4343434343' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[31].name' value = 'sriov44_net_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[31].value' value = '4444444444' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[32].name' value = 'sriov21_net_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[32].value' value = '2121212121' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[33].name' value = 'sriov22_net_id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[33].value' value = '2222222222' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].name' value = 'aai-vf-module-put' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].value' value = '${status}' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].resource-resolution-data.resource-key[0].name' value = 'generic-vnf' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].resource-resolution-data.resource-key[0].value' value = 'generic-vnf' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].resource-resolution-data.resource-key[1].name' value = 'vf-module' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].resource-resolution-data.resource-key[1].value' value = 'vf-module' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].resource-resolution-data.resource-key[2].name' value = 'volume-group' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].resource-resolution-data.resource-key[2].value' value = 'volume-group' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].resource-resolution-data.resource-key[3].name' value = 'vnfc' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].resource-resolution-data.resource-key[3].value' value = 'vnfc' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].resource-resolution-data.resource-key[4].name' value = 'connection-points' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].resource-resolution-data.resource-key[4].value' value = 'connection-points' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].resource-resolution-data.resource-key[5].name' value = 'l-interface' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].resource-resolution-data.resource-key[5].value' value = 'l-interface' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].resource-resolution-data.resource-key[6].name' value = 'l3-network' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].resource-resolution-data.resource-key[6].value' value = 'l3-network' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].resource-resolution-data.resource-key_length' value = '7' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[34].resource-resolution-data.status' value = 'PENDING' />\n\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[35].name' value = 'availability_zone_0' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[35].value' value = 'nova0' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].onap-model-information.model-customization-uuid' value = 'bbbb-99999' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].onap-model-information.model-invariant-uuid' value = 'aaaaa-10000' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].onap-model-information.model-version' value = 'model1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-type' value = 'oam' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-name' value = 'bogus-vnfc-name' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length' value = '2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[0].vnfc-network-role' value = 'network-role-1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[0].connection-point.connection-point-id' value = '789cddfa-58ba-4095-addc-8f7181186380' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[0].connection-point.vlan-data[0].vlan-role' value = '' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[0].connection-point.vlan-data[0].vlan-tag-description' value = 'VPE-Cust' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[0].connection-point.vlan-data[0].vlan-tag-id' value = '3553' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[0].connection-point.vlan-data[0].vlan-uuid' value = '56034624-9296-426c-8103-79a09c23e872' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].vnfc-network-role' value = 'network-role-2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.connection-point-id' value = 'd1bdc1ae-4e67-42c3-ad25-2051ddae65a7' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[0].vlan-role' value = 'outer-tag' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[0].vlan-tag-description' value = 'VPE-Cust-Outer' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[0].vlan-tag-id' value = '3503' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[0].vlan-uuid' value = 'fdc089af-0c00-41c0-a403-1501fb06909f' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[1].vlan-role' value = 'outer-tag' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[1].vlan-tag-description' value = 'VPE-Core1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[1].vlan-tag-id' value = '4001' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[1].vlan-uuid' value = 'f48473ff-fc11-4c38-bcf7-7dec483d81da' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[2].vlan-role' value = 'outer-tag' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[2].vlan-tag-description' value = 'VPE-Core2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[2].vlan-tag-id' value = '4002' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[1].connection-point.vlan-data[2].vlan-uuid' value = '147afe9e-81d3-4872-a298-f470999ba915' />","comments":"","x":953.2142868041992,"y":92.40475368499756,"z":"8068ded9.ccc26","wires":[]},{"id":"593dcc0e.8e3134","type":"outcome","name":"ipv4-loopback0-address","xml":"<outcome value='ipv4-loopback0-address'>","comments":"","outputs":1,"x":2355.3572692871094,"y":925.2618856430054,"z":"8068ded9.ccc26","wires":[["ef23ff6.9991e"]]},{"id":"ef23ff6.9991e","type":"set","name":"set ss.param.ipv4-loopback0-address, index","xml":"<set>\n<parameter name='ss.param.ipv4-loopback0-address' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.ipv4-loopback0-address-index' value='`bidx`' />","comments":"","x":2715.607292175293,"y":925.0119018554688,"z":"8068ded9.ccc26","wires":[]},{"id":"982628c3.cc5ec8","type":"outcome","name":"vlan-id-outer","xml":"<outcome value='vlan-id-outer'>","comments":"","outputs":1,"x":2324.8928451538086,"y":1220.0476179122925,"z":"8068ded9.ccc26","wires":[["bf23dba.cbde728"]]},{"id":"26c08944.595276","type":"outcome","name":"as-number","xml":"<outcome value='as-number'>","comments":"","outputs":1,"x":2319.678535461426,"y":1177.869029045105,"z":"8068ded9.ccc26","wires":[["104fad01.672133"]]},{"id":"104fad01.672133","type":"set","name":"set ss.param.as-number, index","xml":"<set>\n<parameter name='ss.param.as-number' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.as-number-index' value='`$bidx`' />","comments":"","x":2679.178512573242,"y":1178.3690299987793,"z":"8068ded9.ccc26","wires":[]},{"id":"bf23dba.cbde728","type":"set","name":"set vlan-id-outer, indexss.param.","xml":"<set>\n<parameter name='ss.param.vlan-id-outer' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.vlan-id-outer-index' value='`$bidx`' />","comments":"","x":2687.392822265625,"y":1219.7976169586182,"z":"8068ded9.ccc26","wires":[]},{"id":"385ba57a.8df6da","type":"set","name":"set ss.param.vnf-id","xml":"<set>\n<parameter name='ss.param.vnf-id' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-id`' />","comments":"","x":1228.6903991699219,"y":464.7856855392456,"z":"8068ded9.ccc26","wires":[]},{"id":"90cb9541.006378","type":"execute","name":"execute PropertiesNode","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":975.3570785522461,"y":141.4523696899414,"z":"8068ded9.ccc26","wires":[[]]},{"id":"369fedc4.640742","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":738.6903991699219,"y":114.78570365905762,"z":"8068ded9.ccc26","wires":[["43435160.6954c","90cb9541.006378"]]},{"id":"b3dc72d7.6c11b","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'volume-group not found in AnAI with volume-group-id=' + $ss.param.volume-group-id + '; ' + $error-message`\" />\n","comments":"","x":2223.5953254699707,"y":3915.5000128746033,"z":"8068ded9.ccc26","wires":[]},{"id":"be71747e.761fd8","type":"save","name":"get volume-group","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"volume-group\"\n\t\tkey=\"cloud-region.cloud-owner = $prop.cloud-owner \n\t\t\tAND cloud-region.cloud-region-id = $ss.param.aic-cloud-region \n\t\t\tAND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner \n\t\t\tAND volume-group-id = $ss.param.volume-group-id\" \n\tpfx=\"tmp.aai.volume-group\" >\n","comments":"","outputs":1,"x":1666.1788330078125,"y":3825.2141947746277,"z":"8068ded9.ccc26","wires":[["ab7cc2ae.b3122","491c18b8.279c08"]]},{"id":"ab7cc2ae.b3122","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1855.4288177490234,"y":3824.7141394615173,"z":"8068ded9.ccc26","wires":[["dd469fcd.ed1f6"]]},{"id":"491c18b8.279c08","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1863.1072998046875,"y":3880.749830722809,"z":"8068ded9.ccc26","wires":[["5df59ce5.ec4624"]]},{"id":"f712058.ba8fdf8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to get volume-group in AnAI with volume-group-id = ' + $ss.param.volume-group-id + '; ' + $error-message`\" />\n","comments":"","x":2223.726306915283,"y":3860.7142462730408,"z":"8068ded9.ccc26","wires":[]},{"id":"dd469fcd.ed1f6","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2027.39306640625,"y":3825.2143034934998,"z":"8068ded9.ccc26","wires":[["f712058.ba8fdf8","5baa82ec.dffecc"]]},{"id":"5df59ce5.ec4624","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2027.6430473327637,"y":3880.714282512665,"z":"8068ded9.ccc26","wires":[["b3dc72d7.6c11b","5baa82ec.dffecc"]]},{"id":"4faa8555.6c3d7c","type":"set","name":"set tmp.related-link","xml":"<set>\n<parameter name='tmp.related-link' value=\"`'/aai/v$/network/l3-networks/l3-network/' + $ss.network[$n].netid`\" />\n<!--\n<parameter name='tmp.related-link' value=\"`'/aai/' + $prop.aai.version + '/network/l3-networks/l3-network/' + $ss.network[$n].netid`\" />\n-->","comments":"","x":5282.429328918457,"y":5587.7142329216,"z":"8068ded9.ccc26","wires":[]},{"id":"9669e0ca.90c8f","type":"switchNode","name":"switch: ss.capability-name","xml":"<switch test='`$ss.capability-name`'>\n","comments":"","outputs":1,"x":363.5715103149414,"y":176.33332633972168,"z":"8068ded9.ccc26","wires":[["e32786de.9df318"]]},{"id":"e32786de.9df318","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":570.571533203125,"y":176.8333249092102,"z":"8068ded9.ccc26","wires":[["7197124b.04b54c"]]},{"id":"7197124b.04b54c","type":"returnFailure","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=\"ss.capability-name is null\" />\n","comments":"","x":730.4882049560547,"y":176.9444236755371,"z":"8068ded9.ccc26","wires":[]},{"id":"3b0adeb0.0eb082","type":"set","name":"set param[$ss.param.aai-vnf-put-index].value = SUCCESS","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].value' \n\tvalue='SUCCESS' />\n","comments":"","x":467.5714569091797,"y":1141.8094778060913,"z":"8068ded9.ccc26","wires":[]},{"id":"b9bf0de4.48018","type":"switchNode","name":"ss.param.ipv4-loopback0-address != NULL","xml":"<switch test=\"`$ss.param.ipv4-loopback0-address != ''`\">\n\n\n","comments":"","outputs":1,"x":1357.5237159729004,"y":1846.4284987449646,"z":"8068ded9.ccc26","wires":[["ceaf4524.23f4d8"]]},{"id":"ceaf4524.23f4d8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1625.9520988464355,"y":1845.8570322990417,"z":"8068ded9.ccc26","wires":[["43f75d58.570a74"]]},{"id":"43f75d58.570a74","type":"execute","name":"ss.param.ipv4-loopback0-address contains $","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >\n <parameter name='source' value='`$ss.param.ipv4-loopback0-address`' />\n <parameter name='target' value='$' />\n","comments":"","outputs":1,"x":1897.761646270752,"y":1846.2380146980286,"z":"8068ded9.ccc26","wires":[["38011e7f.dd8f82","dcbb8012.d1394"]]},{"id":"38011e7f.dd8f82","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2184.7615852355957,"y":1845.5235419273376,"z":"8068ded9.ccc26","wires":[["1622e59b.0a538a"]]},{"id":"dcbb8012.d1394","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2185.2384243011475,"y":1894.380756855011,"z":"8068ded9.ccc26","wires":[["27de274a.88c098"]]},{"id":"1622e59b.0a538a","type":"record","name":"record ipv4-loopback0-address","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=\"`'ss.param.ipv4-loopback0-address = ' + $ss.param.ipv4-loopback0-address`\"/>\n<parameter name=\"field3\" value=\"__SKIP ipv4-loopback0-address update for generic-vnf in AnAI__\"/>","comments":"","outputs":1,"x":2427.285556793213,"y":1845.9524359703064,"z":"8068ded9.ccc26","wires":[[]]},{"id":"7327e39b.b7381c","type":"save","name":"update generic-vnf","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \" >\n<parameter name=\"ipv4-oam-address\" value='`$ss.param.ipv4-oam-address`' />\n","comments":"","outputs":1,"x":2275.5120964050293,"y":2121.7620272636414,"z":"8068ded9.ccc26","wires":[["7a590d98.438b34","45273777.668128","a8611fe4.861fc"]]},{"id":"7a590d98.438b34","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2475.7621269226074,"y":2122.119074344635,"z":"8068ded9.ccc26","wires":[["ecf0ba29.86e7a8"]]},{"id":"45273777.668128","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2482.012138366699,"y":2172.8691086769104,"z":"8068ded9.ccc26","wires":[["bdb288a7.c9e8f8"]]},{"id":"276849b.b8825b6","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update generic-vnf.ipv4-oam-address in AnAI with ipv4-oam-address=' + $ss.param.ipv4-oam-address + '; ' + $error-message`\" />\n","comments":"","x":2851.6310844421387,"y":2121.904778957367,"z":"8068ded9.ccc26","wires":[]},{"id":"ff10d38d.f4ef5","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update generic-vnf because vnf-id =' + $ss.param.vnf-id + ' is not found in AAI' + '; ' + $error-message`\" />\n","comments":"","x":2852.2026023864746,"y":2172.142955303192,"z":"8068ded9.ccc26","wires":[]},{"id":"ecf0ba29.86e7a8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2649.1906929016113,"y":2122.190598964691,"z":"8068ded9.ccc26","wires":[["276849b.b8825b6","71faeb89.83a694"]]},{"id":"bdb288a7.c9e8f8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2652.047908782959,"y":2173.047740459442,"z":"8068ded9.ccc26","wires":[["ff10d38d.f4ef5","71faeb89.83a694"]]},{"id":"26afdd51.b0c082","type":"switchNode","name":"ss.param.ipv4-oam-address != NULL","xml":"<switch test=\"`$ss.param.ipv4-oam-address != ''`\">\n\n\n","comments":"","outputs":1,"x":1333.428638458252,"y":2071.9880661964417,"z":"8068ded9.ccc26","wires":[["1b81e3ed.85387c"]]},{"id":"1b81e3ed.85387c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1569.857021331787,"y":2072.416599750519,"z":"8068ded9.ccc26","wires":[["6a5b7911.12efb8"]]},{"id":"6a5b7911.12efb8","type":"execute","name":"ss.param.ipv4-oam-address contains $","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >\n <parameter name='source' value='`$ss.param.ipv4-oam-address`' />\n <parameter name='target' value='$' />\n","comments":"","outputs":1,"x":1813.6665687561035,"y":2072.7975821495056,"z":"8068ded9.ccc26","wires":[["e4511a53.c7e968","c52ae99f.811838"]]},{"id":"e4511a53.c7e968","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2069.6665077209473,"y":2072.0831093788147,"z":"8068ded9.ccc26","wires":[["cf116e57.4d2d6"]]},{"id":"c52ae99f.811838","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2070.143346786499,"y":2120.940324306488,"z":"8068ded9.ccc26","wires":[["7327e39b.b7381c"]]},{"id":"cf116e57.4d2d6","type":"record","name":"record ipv4-oam-address","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=\"`'ss.param.ipv4-oam-address = ' + $ss.param.ipv4-oam-address`\"/>\n<parameter name=\"field3\" value=\"__SKIP ipv4-oam-address update for generic-vnf in AnAI__\"/>","comments":"","outputs":1,"x":2293.1904792785645,"y":2072.5120034217834,"z":"8068ded9.ccc26","wires":[[]]},{"id":"e5889051.c0258","type":"save","name":"Rollback generic-vnf update","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \" >\n<parameter name=\"ipv4-loopback0-address\" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />","comments":"","outputs":1,"x":5601.476459503174,"y":1553.7621817588806,"z":"8068ded9.ccc26","wires":[["22af1de1.3fb9e2","8bf8665b.1437d8","c2c65d3e.5dfc2"]]},{"id":"22af1de1.3fb9e2","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":5839.726444244385,"y":1553.2621264457703,"z":"8068ded9.ccc26","wires":[["5e63f4b2.4ac3cc"]]},{"id":"8bf8665b.1437d8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":5845.976455688477,"y":1605.0121607780457,"z":"8068ded9.ccc26","wires":[["ad206450.c1ee18"]]},{"id":"2d67b279.3df1de","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":5652.904941558838,"y":1508.1308035850525,"z":"8068ded9.ccc26","wires":[]},{"id":"c2c65d3e.5dfc2","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":5843.797702789307,"y":1653.2737307548523,"z":"8068ded9.ccc26","wires":[["ec787945.492e18"]]},{"id":"47e8bd96.8ba9d4","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":5331.226184844971,"y":1463.5237832069397,"z":"8068ded9.ccc26","wires":[["2d67b279.3df1de","e5889051.c0258","384189da.b5f976"]]},{"id":"5e63f4b2.4ac3cc","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback generic-vnf.ipv4-loopback0-address update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":6022.54764175415,"y":1553.3808007240295,"z":"8068ded9.ccc26","wires":[]},{"id":"ad206450.c1ee18","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":6025.04764175415,"y":1604.6308026313782,"z":"8068ded9.ccc26","wires":[]},{"id":"ec787945.492e18","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback of generic-vnf.ipv4-loopback0-address update completed. '`\" />\n","comments":"","x":6027.54764175415,"y":1653.6308007240295,"z":"8068ded9.ccc26","wires":[]},{"id":"384189da.b5f976","type":"record","name":"record generic-vnf ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK generic-vnf.ipv4-loopback0-address update\"/>","comments":"","outputs":1,"x":5607.04764175415,"y":1463.6308016777039,"z":"8068ded9.ccc26","wires":[[]]},{"id":"da76951d.afdea8","type":"comment","name":"ROLLBACK STARET HERE","info":"","comments":"","x":4691.0475997924805,"y":1417.7256727218628,"z":"8068ded9.ccc26","wires":[]},{"id":"bb524829.b73d08","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4512.619209289551,"y":1588.9048280715942,"z":"8068ded9.ccc26","wires":[["e2e1d228.1cac","71faeb89.83a694"]]},{"id":"e4a213fe.1cb","type":"save","name":"update generic-vnf","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \" >\n<parameter name=\"as-number\" value='`$ss.param.as-number`' />","comments":"","outputs":1,"x":2249.000072479248,"y":2371.190616130829,"z":"8068ded9.ccc26","wires":[["4efbae39.8c274","da35a4e3.507258","4bc8cbf7.d420c4"]]},{"id":"4efbae39.8c274","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2449.250102996826,"y":2371.5476632118225,"z":"8068ded9.ccc26","wires":[["a1700ab5.e0ada8"]]},{"id":"da35a4e3.507258","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2455.500114440918,"y":2422.297697544098,"z":"8068ded9.ccc26","wires":[["cd623d9e.bad95"]]},{"id":"2c15727.a84458e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update generic-vnf.as-number in AnAI with as-number=' + $ss.param.as-number + '; ' + $error-message`\" />\n","comments":"","x":2825.1190605163574,"y":2371.3333678245544,"z":"8068ded9.ccc26","wires":[]},{"id":"41bc64c.41bf29c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update generic-vnf because vnf-id =' + $ss.param.vnf-id + ' is not found in AAI. ' + $error-message`\" />\n","comments":"","x":2825.6905784606934,"y":2421.5715441703796,"z":"8068ded9.ccc26","wires":[]},{"id":"a1700ab5.e0ada8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2622.67866897583,"y":2371.6191878318787,"z":"8068ded9.ccc26","wires":[["2c15727.a84458e","bb524829.b73d08"]]},{"id":"cd623d9e.bad95","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2625.5358848571777,"y":2422.4763293266296,"z":"8068ded9.ccc26","wires":[["41bc64c.41bf29c","bb524829.b73d08"]]},{"id":"908814ee.d3c7b8","type":"switchNode","name":"ss.param.as-number != NULL","xml":"<switch test=\"`$ss.param.as-number != ''`\">\n\n\n","comments":"","outputs":1,"x":1306.9166145324707,"y":2321.416655063629,"z":"8068ded9.ccc26","wires":[["737e972.985f168"]]},{"id":"737e972.985f168","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1543.3449974060059,"y":2321.8451886177063,"z":"8068ded9.ccc26","wires":[["1c5589e.b307676"]]},{"id":"1c5589e.b307676","type":"execute","name":"ss.param.as-number contains $","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >\n <parameter name='source' value='`$ss.param.as-number`' />\n <parameter name='target' value='$' />\n","comments":"","outputs":1,"x":1787.1545448303223,"y":2322.226171016693,"z":"8068ded9.ccc26","wires":[["497ff762.9d1748","992db45d.438d38"]]},{"id":"497ff762.9d1748","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2043.154483795166,"y":2321.511698246002,"z":"8068ded9.ccc26","wires":[["deaa07b.61227f8"]]},{"id":"992db45d.438d38","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2043.6313228607178,"y":2370.3689131736755,"z":"8068ded9.ccc26","wires":[["e4a213fe.1cb"]]},{"id":"deaa07b.61227f8","type":"record","name":"record as-number","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=\"`'ss.param.as-number = ' + $ss.param.as-number`\"/>\n<parameter name=\"field3\" value=\"__SKIP as-number update for generic-vnf in AnAI__\"/>","comments":"","outputs":1,"x":2246.678455352783,"y":2321.940543651581,"z":"8068ded9.ccc26","wires":[[]]},{"id":"74f743f6.6c2a9c","type":"save","name":"Rollback generic-vnf update","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \" >\n<parameter name=\"ipv4-oam-address\" value='`$tmp.aai.vnf.ipv4-oam-address`' />","comments":"","outputs":1,"x":5424.047866821289,"y":1822.1906266212463,"z":"8068ded9.ccc26","wires":[["8ab667c6.6dc778","127a91f5.5edaee","6dc5a4c1.0050bc"]]},{"id":"8ab667c6.6dc778","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":5662.2978515625,"y":1821.690571308136,"z":"8068ded9.ccc26","wires":[["ca5f07de.46aa38"]]},{"id":"127a91f5.5edaee","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":5668.547863006592,"y":1873.4406056404114,"z":"8068ded9.ccc26","wires":[["7d6b1b6d.e73344"]]},{"id":"a407c233.f5534","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":5475.476348876953,"y":1776.5592484474182,"z":"8068ded9.ccc26","wires":[]},{"id":"6dc5a4c1.0050bc","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":5666.369110107422,"y":1921.702175617218,"z":"8068ded9.ccc26","wires":[["79516859.473258"]]},{"id":"768b08a.664faf8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":5166.654808044434,"y":1732.9521927833557,"z":"8068ded9.ccc26","wires":[["a407c233.f5534","74f743f6.6c2a9c","9082c4e7.fb2758"]]},{"id":"ca5f07de.46aa38","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback generic-vnf.ipv4-oam-address update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":5845.119049072266,"y":1821.8092455863953,"z":"8068ded9.ccc26","wires":[]},{"id":"7d6b1b6d.e73344","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":5847.619049072266,"y":1873.059247493744,"z":"8068ded9.ccc26","wires":[]},{"id":"79516859.473258","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback of generic-vnf.ipv4-oam-address update completed. '`\" />\n","comments":"","x":5850.119049072266,"y":1922.0592455863953,"z":"8068ded9.ccc26","wires":[]},{"id":"9082c4e7.fb2758","type":"record","name":"record generic-vnf ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK generic-vnf.ipv4-oam-address update\"/>","comments":"","outputs":1,"x":5429.619049072266,"y":1732.0592465400696,"z":"8068ded9.ccc26","wires":[[]]},{"id":"cb879e8.7659c6","type":"save","name":"update generic-vnf","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \" >\n<parameter name=\"vlan-id-outer\" value='`$ss.param.vlan-id-outer`' />","comments":"","outputs":1,"x":2255.2262687683105,"y":2602.619082927704,"z":"8068ded9.ccc26","wires":[["6f7ecbf3.9e2ac4","747eeb7.c55af14","39d08edc.6b6b42"]]},{"id":"6f7ecbf3.9e2ac4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2455.4762992858887,"y":2602.9761300086975,"z":"8068ded9.ccc26","wires":[["2c7b95a3.b6cfda"]]},{"id":"747eeb7.c55af14","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2461.7263107299805,"y":2653.726164340973,"z":"8068ded9.ccc26","wires":[["e8fe8375.a7f86"]]},{"id":"22896c5.57d9394","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update generic-vnf.vlan-id-outer in AnAI with as-number=' + $ss.param.as-number + '; ' + $error-message`\" />\n","comments":"","x":2831.34525680542,"y":2602.7618346214294,"z":"8068ded9.ccc26","wires":[]},{"id":"1bdd53be.37f77c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update generic-vnf because vnf-id =' + $ss.param.vnf-id + ' is not found in AAI. ' + $error-message`\" />\n","comments":"","x":2831.916774749756,"y":2653.0000109672546,"z":"8068ded9.ccc26","wires":[]},{"id":"2c7b95a3.b6cfda","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2628.9048652648926,"y":2603.0476546287537,"z":"8068ded9.ccc26","wires":[["22896c5.57d9394","d65ee09f.37cd9"]]},{"id":"e8fe8375.a7f86","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2631.7620811462402,"y":2653.9047961235046,"z":"8068ded9.ccc26","wires":[["1bdd53be.37f77c","d65ee09f.37cd9"]]},{"id":"c975e01d.234e2","type":"switchNode","name":"ss.param.vlan-id-outer != NULL","xml":"<switch test=\"`$ss.param.vlan-id-outer != ''`\">\n\n\n","comments":"","outputs":1,"x":1313.1428108215332,"y":2552.845121860504,"z":"8068ded9.ccc26","wires":[["93830daa.215c2"]]},{"id":"93830daa.215c2","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1549.5711936950684,"y":2553.2736554145813,"z":"8068ded9.ccc26","wires":[["27539cc9.080cc4"]]},{"id":"27539cc9.080cc4","type":"execute","name":"ss.param.vlan-id-outer contains $","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >\n <parameter name='source' value='`$ss.param.vlan-id-outer`' />\n <parameter name='target' value='$' />\n","comments":"","outputs":1,"x":1793.3807411193848,"y":2553.654637813568,"z":"8068ded9.ccc26","wires":[["105606fa.800439","2247889c.578818"]]},{"id":"105606fa.800439","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2049.3806800842285,"y":2552.940165042877,"z":"8068ded9.ccc26","wires":[["531a6486.a6295c"]]},{"id":"2247889c.578818","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2049.8575191497803,"y":2601.7973799705505,"z":"8068ded9.ccc26","wires":[["cb879e8.7659c6"]]},{"id":"531a6486.a6295c","type":"record","name":"record vlan-id-outer","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=\"`'ss.param.vlan-id-outer = ' + $ss.param.vlan-id-outer`\"/>\n<parameter name=\"field3\" value=\"__SKIP vlan-id-outer update for generic-vnf in AnAI__\"/>","comments":"","outputs":1,"x":2255.761905670166,"y":2552.7977175712585,"z":"8068ded9.ccc26","wires":[[]]},{"id":"e5473ddc.047be","type":"save","name":"Rollback generic-vnf update","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \" >\n<parameter name=\"as-number\" value='`$tmp.aai.vnf.as-number`' />","comments":"","outputs":1,"x":5173.047737121582,"y":2097.0475330352783,"z":"8068ded9.ccc26","wires":[["285f2e24.1586f2","83023384.2b811","8076ba5d.d50338"]]},{"id":"285f2e24.1586f2","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":5411.297721862793,"y":2096.547477722168,"z":"8068ded9.ccc26","wires":[["fa907b6a.b7f9e8"]]},{"id":"83023384.2b811","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":5417.547733306885,"y":2148.2975120544434,"z":"8068ded9.ccc26","wires":[["f07a54b8.00eae8"]]},{"id":"e1190313.df098","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":5224.476219177246,"y":2051.41615486145,"z":"8068ded9.ccc26","wires":[]},{"id":"8076ba5d.d50338","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":5415.368980407715,"y":2196.55908203125,"z":"8068ded9.ccc26","wires":[["ebf1b213.e06bf"]]},{"id":"b0942bbb.c31398","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":4922.226112365723,"y":2002.9517307281494,"z":"8068ded9.ccc26","wires":[["e1190313.df098","e5473ddc.047be","25ff6863.c55cb8"]]},{"id":"fa907b6a.b7f9e8","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback generic-vnf.as-number update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":5594.118919372559,"y":2096.6661520004272,"z":"8068ded9.ccc26","wires":[]},{"id":"f07a54b8.00eae8","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":5596.618919372559,"y":2147.916153907776,"z":"8068ded9.ccc26","wires":[]},{"id":"ebf1b213.e06bf","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback of generic-vnf.as-number update completed. '`\" />\n","comments":"","x":5599.118919372559,"y":2196.9161520004272,"z":"8068ded9.ccc26","wires":[]},{"id":"25ff6863.c55cb8","type":"record","name":"record generic-vnf ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK generic-vnf.as-number update\"/>","comments":"","outputs":1,"x":5177.190353393555,"y":2002.0587844848633,"z":"8068ded9.ccc26","wires":[[]]},{"id":"34d61ff5.579e6","type":"save","name":"Rollback generic-vnf update","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \" >\n<parameter name=\"vlan-id-outer\" value='`$tmp.aai.vnf.vlan-id-outer`' />","comments":"","outputs":1,"x":5037.905044555664,"y":2414.761951446533,"z":"8068ded9.ccc26","wires":[["629cce5b.29146","7a205153.d31fb","a1d97f77.5519b"]]},{"id":"629cce5b.29146","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":5276.155029296875,"y":2414.261896133423,"z":"8068ded9.ccc26","wires":[["89392aae.d68578"]]},{"id":"7a205153.d31fb","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":5282.405040740967,"y":2466.0119304656982,"z":"8068ded9.ccc26","wires":[["6d7e4c44.4dfcc4"]]},{"id":"5195e96f.8c0d38","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":5089.333526611328,"y":2369.130573272705,"z":"8068ded9.ccc26","wires":[]},{"id":"a1d97f77.5519b","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":5279.226287841797,"y":2514.273500442505,"z":"8068ded9.ccc26","wires":[["9a615e51.2921d"]]},{"id":"d49362f8.a641c","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":4786.511985778809,"y":2325.5235176086426,"z":"8068ded9.ccc26","wires":[["5195e96f.8c0d38","34d61ff5.579e6","502f025d.7ed22c"]]},{"id":"89392aae.d68578","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback generic-vnf.vlan-id-outer update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":5458.976226806641,"y":2414.380570411682,"z":"8068ded9.ccc26","wires":[]},{"id":"6d7e4c44.4dfcc4","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":5461.476226806641,"y":2465.6305723190308,"z":"8068ded9.ccc26","wires":[]},{"id":"9a615e51.2921d","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback of generic-vnf.vlan-id-outer update completed. '`\" />\n","comments":"","x":5462.976226806641,"y":2514.630570411682,"z":"8068ded9.ccc26","wires":[]},{"id":"502f025d.7ed22c","type":"record","name":"record generic-vnf ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK generic-vnf.vlan-id-outer update\"/>","comments":"","outputs":1,"x":5043.476226806641,"y":2324.6305713653564,"z":"8068ded9.ccc26","wires":[[]]},{"id":"a8611fe4.861fc","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2479.8570671081543,"y":2224.6192326545715,"z":"8068ded9.ccc26","wires":[["9662e07e.fc4a8"]]},{"id":"9662e07e.fc4a8","type":"set","name":"set ss.ipv4-oam-address-updated = true","xml":"<set>\n<parameter name='ss.ipv4-oam-address-updated' value='true' />\n","comments":"","x":2734.9998893737793,"y":2224.0476994514465,"z":"8068ded9.ccc26","wires":[]},{"id":"39d08edc.6b6b42","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2460.999927520752,"y":2706.904727458954,"z":"8068ded9.ccc26","wires":[["e4253280.219b1"]]},{"id":"e4253280.219b1","type":"set","name":"set ss.vlan-id-outer-updated = true","xml":"<set>\n<parameter name='ss.vlan-id-outer-updated' value='true' />\n","comments":"","x":2697.142749786377,"y":2706.333194255829,"z":"8068ded9.ccc26","wires":[]},{"id":"d5eb2c25.f7bf1","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2594.428638458252,"y":1994.0476365089417,"z":"8068ded9.ccc26","wires":[["25b6966a.a2a8ca"]]},{"id":"25b6966a.a2a8ca","type":"set","name":"set ss.ipv4-loopback0-address-updated = true","xml":"<set>\n<parameter name='ss.ipv4-loopback0-address-updated' value='true' />\n","comments":"","x":2867.571460723877,"y":1993.4761033058167,"z":"8068ded9.ccc26","wires":[]},{"id":"4bc8cbf7.d420c4","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2451.4286613464355,"y":2474.047793865204,"z":"8068ded9.ccc26","wires":[["f06d656f.af5598"]]},{"id":"f06d656f.af5598","type":"set","name":"set ss.as-number-updated = true","xml":"<set>\n<parameter name='ss.as-number-updated' value='true' />\n","comments":"","x":2686.5714836120605,"y":2473.476260662079,"z":"8068ded9.ccc26","wires":[]},{"id":"1efb2ace.960c85","type":"switchNode","name":"ss.ipv4-loopback0-address-updated","xml":"<switch test=\"`$ss.ipv4-loopback0-address-updated`\">\n\n\n","comments":"","outputs":1,"x":4926.33345413208,"y":1463.4764018058777,"z":"8068ded9.ccc26","wires":[["30f66413.98e80c"]]},{"id":"30f66413.98e80c","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":5161.47624206543,"y":1463.0478825569153,"z":"8068ded9.ccc26","wires":[["47e8bd96.8ba9d4"]]},{"id":"e2e1d228.1cac","type":"switchNode","name":"ss.ipv4-oam-address-updated","xml":"<switch test=\"`$ss.ipv4-oam-address-updated`\">\n\n\n","comments":"","outputs":1,"x":4762.619338989258,"y":1733.4761872291565,"z":"8068ded9.ccc26","wires":[["161a1549.8e506b"]]},{"id":"161a1549.8e506b","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4991.190628051758,"y":1732.904776096344,"z":"8068ded9.ccc26","wires":[["768b08a.664faf8"]]},{"id":"6e213c89.99cdc4","type":"switchNode","name":"ss.as-number-updated","xml":"<switch test=\"`$ss.as-number-updated`\">\n\n\n","comments":"","outputs":1,"x":4573.190734863281,"y":2002.0476455688477,"z":"8068ded9.ccc26","wires":[["c40b28e0.f8bd18"]]},{"id":"c40b28e0.f8bd18","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4764.762023925781,"y":2002.4762344360352,"z":"8068ded9.ccc26","wires":[["b0942bbb.c31398"]]},{"id":"dab326d4.4c5188","type":"switchNode","name":"ss.vlan-id-outer-updated","xml":"<switch test=\"`$ss.vlan-id-outer-updated`\">\n\n\n","comments":"","outputs":1,"x":4435.619369506836,"y":2325.47625541687,"z":"8068ded9.ccc26","wires":[["615d0461.0886fc"]]},{"id":"615d0461.0886fc","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4622.190658569336,"y":2325.9048442840576,"z":"8068ded9.ccc26","wires":[["d49362f8.a641c"]]},{"id":"d65ee09f.37cd9","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4358.333808898926,"y":1811.3334674835205,"z":"8068ded9.ccc26","wires":[["bb524829.b73d08","6e213c89.99cdc4"]]},{"id":"7102730.01d478c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4204.905014038086,"y":2084.76189994812,"z":"8068ded9.ccc26","wires":[["d65ee09f.37cd9","dab326d4.4c5188"]]},{"id":"71faeb89.83a694","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4691.762203216553,"y":1463.7620449066162,"z":"8068ded9.ccc26","wires":[["1efb2ace.960c85"]]},{"id":"11703c8e.d0e733","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2534.9999504089355,"y":1310.4761638641357,"z":"8068ded9.ccc26","wires":[["51b14fbd.75b3e","812c36d9.0a3ac8"]]},{"id":"e9f498df.26a9b8","type":"switchNode","name":"switch: resource-key[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].name`'>\n","comments":"","outputs":1,"x":3044.4289016723633,"y":1386.4762229919434,"z":"8068ded9.ccc26","wires":[["1f45c3a7.b75a7c","51073227.b22b1c","289fcfcb.8ee7","3c596d6c.b48dd2","b9f013b2.25b3f","3565db8d.625714","be2c548e.1c4a58"]]},{"id":"1f45c3a7.b75a7c","type":"outcome","name":"vf-module","xml":"<outcome value='vf-module'>\n","comments":"","outputs":1,"x":3305.448585510254,"y":1296.6546630859375,"z":"8068ded9.ccc26","wires":[["ca74e487.dcffc8"]]},{"id":"812c36d9.0a3ac8","type":"for","name":"for kidx in resource-key_length","xml":"<for silentFailure='true' index=\"kidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key_length`\">","comments":"","outputs":1,"x":2765.2899780273438,"y":1386.3373336791992,"z":"8068ded9.ccc26","wires":[["e9f498df.26a9b8"]]},{"id":"51073227.b22b1c","type":"outcome","name":"generic-vnf","xml":"<outcome value='generic-vnf'>\n","comments":"","outputs":1,"x":3306.9087677001953,"y":1250.6903667449951,"z":"8068ded9.ccc26","wires":[["a2bddea8.fee28"]]},{"id":"a2bddea8.fee28","type":"set","name":"set ss.resource-key.generic-vnf","xml":"<set>\n<parameter name='ss.resource-key.generic-vnf' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":3609.4126205444336,"y":1250.944284439087,"z":"8068ded9.ccc26","wires":[]},{"id":"289fcfcb.8ee7","type":"outcome","name":"volume-group","xml":"<outcome value='volume-group'>\n","comments":"","outputs":1,"x":3320.571662902832,"y":1341.1905689239502,"z":"8068ded9.ccc26","wires":[["532ce28c.3776ac"]]},{"id":"3c596d6c.b48dd2","type":"outcome","name":"vnfc","xml":"<outcome value='vnfc'>\n","comments":"","outputs":1,"x":3300.000442504883,"y":1385.4763507843018,"z":"8068ded9.ccc26","wires":[["c4bd3f7e.1c8b5"]]},{"id":"b9f013b2.25b3f","type":"outcome","name":"connection-points","xml":"<outcome value='connection-points'>\n","comments":"","outputs":1,"x":3334.7143173217773,"y":1429.7620134353638,"z":"8068ded9.ccc26","wires":[["5e1b7935.47e818"]]},{"id":"3565db8d.625714","type":"outcome","name":"l-interface","xml":"<outcome value='l-interface'>\n","comments":"","outputs":1,"x":3311.2858123779297,"y":1475.333511352539,"z":"8068ded9.ccc26","wires":[["8c93fc68.5c60f"]]},{"id":"be2c548e.1c4a58","type":"outcome","name":"l3-network","xml":"<outcome value='l3-netework'>\n","comments":"","outputs":1,"x":3314.1430587768555,"y":1519.761960029602,"z":"8068ded9.ccc26","wires":[["c92bdf18.2a6ef"]]},{"id":"ca74e487.dcffc8","type":"set","name":"set ss.resource-key.vf-module","xml":"<set>\n<parameter name='ss.resource-key.vf-module' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":3607.000015258789,"y":1296.6191234588623,"z":"8068ded9.ccc26","wires":[]},{"id":"c4bd3f7e.1c8b5","type":"set","name":"set ss.resource-key.vnfc","xml":"<set>\n<parameter name='ss.resource-key.vnfc' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":3593.0003051757812,"y":1385.6191215515137,"z":"8068ded9.ccc26","wires":[]},{"id":"5e1b7935.47e818","type":"set","name":"set ss.resource-key.connection-points","xml":"<set>\n<parameter name='ss.resource-key.connection-points' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":3635.143081665039,"y":1429.9048519134521,"z":"8068ded9.ccc26","wires":[]},{"id":"532ce28c.3776ac","type":"set","name":"set ss.resource-key.volume-group","xml":"<set>\n<parameter name='ss.resource-key.volume-group' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":3622.428939819336,"y":1341.1904468536377,"z":"8068ded9.ccc26","wires":[]},{"id":"8c93fc68.5c60f","type":"set","name":"set ss.resource-key.l-interface","xml":"<set>\n<parameter name='ss.resource-key.l-interface' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":3611.5715560913086,"y":1474.0477256774902,"z":"8068ded9.ccc26","wires":[]},{"id":"c92bdf18.2a6ef","type":"set","name":"set ss.resource-key.l3-network","xml":"<set>\n<parameter name='ss.resource-key.l3-network' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":3614.143165588379,"y":1520.9047985076904,"z":"8068ded9.ccc26","wires":[]},{"id":"1e19f844.9c0ec8","type":"switchNode","name":"switch: ss.resource-key.generic-vnf","xml":"<switch test=\"`$ss.resource-key.generic-vnf`\">\n\n\n","comments":"","outputs":1,"x":1004.285888671875,"y":1415.8333263397217,"z":"8068ded9.ccc26","wires":[["22799027.e77b3"]]},{"id":"22799027.e77b3","type":"outcome","name":"generic-vnf","xml":"<outcome value='generic-vnf'>\n","comments":"","outputs":1,"x":1258.3174285888672,"y":1415.5832529067993,"z":"8068ded9.ccc26","wires":[["e09c2dd9.09452"]]},{"id":"8d88acea.3f4ec","type":"outcome","name":"volume-group","xml":"<outcome value='volume-group'>\n","comments":"","outputs":1,"x":1275.2182846069336,"y":3825.154559135437,"z":"8068ded9.ccc26","wires":[["2d857037.91483"]]},{"id":"6b9d6bf5.bbd334","type":"outcome","name":"vnfc","xml":"<outcome value='vnfc'>\n","comments":"","outputs":1,"x":1189.9327087402344,"y":4289.536512374878,"z":"8068ded9.ccc26","wires":[["6e76a93a.5e0588"]]},{"id":"6caebe95.cbe41","type":"outcome","name":"connection-points","xml":"<outcome value='connection-points'>\n","comments":"","outputs":1,"x":1308.7895584106445,"y":4614.012176275253,"z":"8068ded9.ccc26","wires":[["b7dc825b.8fad"]]},{"id":"7b7e9ace.8bcdd4","type":"outcome","name":"l-interface","xml":"<outcome value='l-interface'>\n","comments":"","outputs":1,"x":1249.0278244018555,"y":5281.91733455658,"z":"8068ded9.ccc26","wires":[["dbc07084.be7f5"]]},{"id":"4c582c8b.e26454","type":"outcome","name":"l3-network","xml":"<outcome value='l3-netework'>\n","comments":"","outputs":1,"x":1267.741928100586,"y":6171.630530357361,"z":"8068ded9.ccc26","wires":[["b307f248.13b72"]]},{"id":"e09c2dd9.09452","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1043.74995803833,"y":1644.6191158294678,"z":"8068ded9.ccc26","wires":[["cdbfc33f.d52a7","b9bf0de4.48018","26afdd51.b0c082","908814ee.d3c7b8","c975e01d.234e2","70689778.84aa08"]]},{"id":"b7a3bc44.8c264","type":"outcome","name":"availability_zone_0","xml":"<outcome value='availability_zone_0'>","comments":"","outputs":1,"x":2346.4286346435547,"y":1263.6190452575684,"z":"8068ded9.ccc26","wires":[["edac9821.fddc48"]]},{"id":"edac9821.fddc48","type":"set","name":"set ss.param.availability-zone-0, index","xml":"<set>\n<parameter name='ss.param.availability-zone-0' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />\n<parameter name='ss.param.availability-zone-0-index' value='`$bidx`' />","comments":"","x":2702.928611755371,"y":1263.369044303894,"z":"8068ded9.ccc26","wires":[]},{"id":"b6529101.23526","type":"save","name":"save availability-zone relationship","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf:relationship-list\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"availability-zone\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`$ss.availability-zone.related-link`\" />\n<!--\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=\"`$prop.cloud-region.cloud-owner`\" />\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=\"`$ss.param.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=\"`$ss.param.availability-zone-0`\" />\n-->","comments":"","outputs":1,"x":2502.2857818603516,"y":2878.3335857391357,"z":"8068ded9.ccc26","wires":[["eff6042e.114c48","d6c66a3.e397a98","d3081601.d09528"]]},{"id":"eff6042e.114c48","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2751.5358123779297,"y":2878.6906328201294,"z":"8068ded9.ccc26","wires":[["7582c90f.6e1e58"]]},{"id":"d6c66a3.e397a98","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2757.7858238220215,"y":2929.440667152405,"z":"8068ded9.ccc26","wires":[["285dd4bf.b8919c"]]},{"id":"f35164aa.6c0648","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to save availability-zone relationship for generic-vnf in AnAI with availability-zone-name =' + $ss.param.as-number + '; ' + $error-message`\" />\n","comments":"","x":3127.404769897461,"y":2878.4763374328613,"z":"8068ded9.ccc26","wires":[]},{"id":"ef238623.db9c18","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to create availability-zone relationship because generic-vnf with vnf-id =' + $ss.param.vnf-id + ' is not found in AAI. ' + $error-message`\" />\n","comments":"","x":3127.976287841797,"y":2928.7145137786865,"z":"8068ded9.ccc26","wires":[]},{"id":"7582c90f.6e1e58","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2924.9643783569336,"y":2878.7621574401855,"z":"8068ded9.ccc26","wires":[["f35164aa.6c0648","7102730.01d478c"]]},{"id":"285dd4bf.b8919c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2927.8215942382812,"y":2929.6192989349365,"z":"8068ded9.ccc26","wires":[["ef238623.db9c18","7102730.01d478c"]]},{"id":"70689778.84aa08","type":"switchNode","name":"ss.param.availability-zone-0 != NULL","xml":"<switch test=\"`$ss.param.availability-zone-0 != ''`\">\n\n\n","comments":"","outputs":1,"x":1326.7736320495605,"y":2782.845057487488,"z":"8068ded9.ccc26","wires":[["2be7ec40.58f454"]]},{"id":"2be7ec40.58f454","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1563.2020149230957,"y":2783.273591041565,"z":"8068ded9.ccc26","wires":[["8780edee.3bd45"]]},{"id":"8780edee.3bd45","type":"execute","name":"ss.param.availability-zone-0 contains $","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >\n <parameter name='source' value='`$ss.param.availability-zone-0`' />\n <parameter name='target' value='$' />\n","comments":"","outputs":1,"x":1807.011562347412,"y":2783.6545734405518,"z":"8068ded9.ccc26","wires":[["4bde0e1f.c32f9","bf9059c2.977898"]]},{"id":"4bde0e1f.c32f9","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2063.011501312256,"y":2782.940100669861,"z":"8068ded9.ccc26","wires":[["95fe6fb0.516f"]]},{"id":"bf9059c2.977898","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2063.4883403778076,"y":2831.797315597534,"z":"8068ded9.ccc26","wires":[["f23554a3.c0f0c8"]]},{"id":"95fe6fb0.516f","type":"record","name":"availability_zone_0","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=\"`'ss.param.availability-zone-0 = ' + $ss.param.availability-zone-0`\"/>\n<parameter name=\"field3\" value=\"__SKIP availability-zone-0 update for generic-vnf in AnAI__\"/>","comments":"","outputs":1,"x":2253.535655975342,"y":2783.2263259887695,"z":"8068ded9.ccc26","wires":[[]]},{"id":"d3081601.d09528","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2759.0594635009766,"y":2981.6192302703857,"z":"8068ded9.ccc26","wires":[["abfe1557.59faf8"]]},{"id":"abfe1557.59faf8","type":"set","name":"set availability-zone-0-updated = true","xml":"<set>\n<parameter name='ss.availability-zone-0-updated' value='true' />\n","comments":"","x":3001.2022857666016,"y":2981.0476970672607,"z":"8068ded9.ccc26","wires":[]},{"id":"96bf497d.7c0b58","type":"save","name":"Rollback generic-vnf update","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"generic-vnf:relationship-list\" \n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \n\t\tAND related-to = availability-zone \n\t\tAND relationship.related-link = $tmp.related-link\" >","comments":"","outputs":1,"x":4930.714065551758,"y":2756.9527320861816,"z":"8068ded9.ccc26","wires":[["518876d5.324a98","4baf9d28.7def04","d702b2c2.0eebd"]]},{"id":"518876d5.324a98","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":5167.964050292969,"y":2756.4526767730713,"z":"8068ded9.ccc26","wires":[["97aeb615.ee80a8"]]},{"id":"4baf9d28.7def04","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":5174.214061737061,"y":2808.2027111053467,"z":"8068ded9.ccc26","wires":[["6bbd2d7b.4fd744"]]},{"id":"84056dd2.6ed0f","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":4981.142532348633,"y":2659.6545724868774,"z":"8068ded9.ccc26","wires":[]},{"id":"d702b2c2.0eebd","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":5172.035308837891,"y":2856.4642810821533,"z":"8068ded9.ccc26","wires":[["5d7ab32b.2f0aac"]]},{"id":"e5f99cea.bb11a","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":4678.320991516113,"y":2616.047516822815,"z":"8068ded9.ccc26","wires":[["84056dd2.6ed0f","96bf497d.7c0b58","b1f6477e.336b08","49a4a067.9c036"]]},{"id":"97aeb615.ee80a8","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback generic-vnf availability-zone relationship from AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":5350.785247802734,"y":2756.5713510513306,"z":"8068ded9.ccc26","wires":[]},{"id":"6bbd2d7b.4fd744","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback generic-vnf availability-zone relationship because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":5353.285247802734,"y":2807.821352958679,"z":"8068ded9.ccc26","wires":[]},{"id":"5d7ab32b.2f0aac","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback of generic-vnf availability-zone relationship completed. '`\" />\n","comments":"","x":5355.785247802734,"y":2856.8213510513306,"z":"8068ded9.ccc26","wires":[]},{"id":"b1f6477e.336b08","type":"record","name":"record generic-vnf relationship ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK availability-zone relationship\"/>","comments":"","outputs":1,"x":4973.285232543945,"y":2615.154570579529,"z":"8068ded9.ccc26","wires":[[]]},{"id":"48bbb5d3.ee15fc","type":"switchNode","name":"ss.availability-zone-0-updated","xml":"<switch test=\"`$ss.availability-zone-0-updated`\">\n\n\n","comments":"","outputs":1,"x":4297.428375244141,"y":2616.0002546310425,"z":"8068ded9.ccc26","wires":[["caa3d3a3.6b923"]]},{"id":"caa3d3a3.6b923","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4513.999664306641,"y":2616.42884349823,"z":"8068ded9.ccc26","wires":[["e5f99cea.bb11a"]]},{"id":"40e8fb80.4fe434","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4059.0478286743164,"y":2410.9524269104004,"z":"8068ded9.ccc26","wires":[["48bbb5d3.ee15fc","7102730.01d478c"]]},{"id":"49a4a067.9c036","type":"set","name":"set tmp.related-link","xml":"<set>\n<parameter name='tmp.related-link' \n\tvalue=\"`'/aai/v$/cloud-infrastructure/cloud-regions/cloud-region/' + \n\t$prop.cloud-region.cloud-owner + \n\t'/' + \n\t$ss.param.aic-cloud-region + \n\t'/availability-zones/availability-zone/' + \n\t$ss.param.availability-zone-0`\" /> ","comments":"","x":4901.380401611328,"y":2708.6194067001343,"z":"8068ded9.ccc26","wires":[]},{"id":"a393fb3d.925a18","type":"switchNode","name":"switch: ss.resource-key.vf-module","xml":"<switch test=\"`$ss.resource-key.vf-module`\">\n\n\n","comments":"","outputs":1,"x":993.0477256774902,"y":3363.7859120368958,"z":"8068ded9.ccc26","wires":[["212cb7fa.9054e8"]]},{"id":"212cb7fa.9054e8","type":"outcome","name":"vf-module","xml":"<outcome value='vf-module'>\n","comments":"","outputs":1,"x":1246.8410301208496,"y":3363.4166798591614,"z":"8068ded9.ccc26","wires":[["f0e5f31a.7af32"]]},{"id":"f0e5f31a.7af32","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1438.7499465942383,"y":3363.9762563705444,"z":"8068ded9.ccc26","wires":[["fff7178f.f6b028","e53f3779.d51718","61212051.1f615"]]},{"id":"12288572.4b441b","type":"switchNode","name":"switch: ss.resource-key.generic-vnf","xml":"<switch test=\"`$ss.resource-key.generic-vnf`\">\n\n\n","comments":"","outputs":1,"x":5412.858173370361,"y":3067.3337631225586,"z":"8068ded9.ccc26","wires":[["2de67d2d.eaa8c2"]]},{"id":"2de67d2d.eaa8c2","type":"outcome","name":"generic-vnf","xml":"<outcome value='generic-vnf'>\n","comments":"","outputs":1,"x":5666.8897132873535,"y":3067.0836896896362,"z":"8068ded9.ccc26","wires":[["1c8efb54.0d2e25"]]},{"id":"e9ef052a.050278","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":5172.8579177856445,"y":3067.762412071228,"z":"8068ded9.ccc26","wires":[["12288572.4b441b"]]},{"id":"310596e2.42bc4a","type":"switchNode","name":"switch: ss.resource-key.volume-group","xml":"<switch test=\"`$ss.resource-key.volume-group`\">\n\n\n","comments":"","outputs":1,"x":1000.2382659912109,"y":3824.571523666382,"z":"8068ded9.ccc26","wires":[["8d88acea.3f4ec"]]},{"id":"2d857037.91483","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1464.368953704834,"y":3825.5235500335693,"z":"8068ded9.ccc26","wires":[["be71747e.761fd8","2bb84732.4581c8"]]},{"id":"5a1044bf.9a5c0c","type":"switchNode","name":"switch: ss.resource-key.vf-module","xml":"<switch test=\"`$ss.resource-key.vf-module`\">\n\n\n","comments":"","outputs":1,"x":5263.715049743652,"y":3456.6194343566895,"z":"8068ded9.ccc26","wires":[["2202a5e9.5bf9ba"]]},{"id":"2202a5e9.5bf9ba","type":"outcome","name":"vf-module","xml":"<outcome value='vf-module'>\n","comments":"","outputs":1,"x":5507.508354187012,"y":3456.250202178955,"z":"8068ded9.ccc26","wires":[["3d611339.da18cc"]]},{"id":"5baa82ec.dffecc","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":5016.715049743652,"y":3282.6194343566895,"z":"8068ded9.ccc26","wires":[["e9ef052a.050278","5a1044bf.9a5c0c"]]},{"id":"61212051.1f615","type":"set","name":"set ss.selflink","xml":"<set>\n<parameter name='ss.selflink' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/' + \n$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.service-instance-id + \n'/service-data/vnfs/vnf/' + \n$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.vnf-id + \n'/vnf-data/vf-modules/vf-module/' + \n$ss.param.vf-module-id + \n'/vf-module-data/vf-module-topology/'`\" />\n","comments":"","x":1667.333381652832,"y":3496.237877845764,"z":"8068ded9.ccc26","wires":[]},{"id":"c0feb185.c5348","type":"switchNode","name":"switch: ss.resource-key.vnfc","xml":"<switch test=\"`$ss.resource-key.vnfc`\">\n\n\n","comments":"","outputs":1,"x":967.3056488037109,"y":4289.608148574829,"z":"8068ded9.ccc26","wires":[["6b9d6bf5.bbd334"]]},{"id":"f10164da.04f358","type":"switchNode","name":"switch: ss.resource-key.connection-points","xml":"<switch test=\"`$ss.resource-key.connection-points`\">\n\n\n","comments":"","outputs":1,"x":1014.3810577392578,"y":4614.28610253334,"z":"8068ded9.ccc26","wires":[["6caebe95.cbe41"]]},{"id":"40f8f017.2403a","type":"switchNode","name":"switch: ss.resource-key.l-interface","xml":"<switch test=\"`$ss.resource-key.l-interface`\">\n\n\n","comments":"","outputs":1,"x":995.7143478393555,"y":5281.61899471283,"z":"8068ded9.ccc26","wires":[["7b7e9ace.8bcdd4"]]},{"id":"4fcc988.d1ea868","type":"switchNode","name":"switch: ss.resource-key.l3-network","xml":"<switch test=\"`$ss.resource-key.l3-network`\">\n\n\n","comments":"","outputs":1,"x":1004.9998321533203,"y":6172.333167076111,"z":"8068ded9.ccc26","wires":[["4c582c8b.e26454"]]},{"id":"5819b51f.e401ec","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2080.2382049560547,"y":4058.3332056999207,"z":"8068ded9.ccc26","wires":[["270b03e3.958a6c","5baa82ec.dffecc"]]},{"id":"270b03e3.958a6c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'volume-group not found in AnAI with volume-group-id=' + $ss.param.volume-group-id + '; ' + $error-message`\" />\n","comments":"","x":2271.9048805236816,"y":4057.4047617912292,"z":"8068ded9.ccc26","wires":[]},{"id":"2da1393.d2f90c6","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1758.4762687683105,"y":4334.190864562988,"z":"8068ded9.ccc26","wires":[["6b1f5790.4f6e98","4c4f8f77.4d5e8"]]},{"id":"1a8d278c.ff1d48","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1567.6667938232422,"y":4334.476434707642,"z":"8068ded9.ccc26","wires":[["2da1393.d2f90c6"]]},{"id":"1dadc5fe.f7b3aa","type":"switchNode","name":"switch: ss.resource-key.volume-group","xml":"<switch test=\"`$ss.resource-key.volume-group`\">\n\n\n","comments":"","outputs":1,"x":5108.714794158936,"y":3733.9529342651367,"z":"8068ded9.ccc26","wires":[["e0077fc8.8ce35"]]},{"id":"e0077fc8.8ce35","type":"outcome","name":"volume-group","xml":"<outcome value='volume-group'>\n","comments":"","outputs":1,"x":5365.508098602295,"y":3733.5837020874023,"z":"8068ded9.ccc26","wires":[["5688630b.c730bc"]]},{"id":"8bd683f0.0ff8a","type":"outcome","name":"vnfc","xml":"<outcome value='vnfc'>\n","comments":"","outputs":1,"x":5170.715019226074,"y":4010.6193017959595,"z":"8068ded9.ccc26","wires":[["35fbb6bd.1fe98a"]]},{"id":"b6293e2c.6351f","type":"switchNode","name":"switch: ss.resource-key.vnfc","xml":"<switch test=\"`$ss.resource-key.vnfc`\">\n\n\n","comments":"","outputs":1,"x":4948.087959289551,"y":4010.6909379959106,"z":"8068ded9.ccc26","wires":[["8bd683f0.0ff8a"]]},{"id":"6686e089.e3643","type":"comment","name":"UNASSIGN","info":"","comments":"","x":3334.7619705200195,"y":2942.61895942688,"z":"8068ded9.ccc26","wires":[]},{"id":"db46c464.eb3478","type":"outcome","name":"l-interface","xml":"<outcome value='l-interface'>\n","comments":"","outputs":1,"x":4883.857345581055,"y":4758.047756195068,"z":"8068ded9.ccc26","wires":[["5de01092.e1692"]]},{"id":"47592f63.65ff8","type":"switchNode","name":"switch: ss.resource-key.l-interface","xml":"<switch test=\"`$ss.resource-key.l-interface`\">\n\n\n","comments":"","outputs":1,"x":4650.543869018555,"y":4757.749416351318,"z":"8068ded9.ccc26","wires":[["db46c464.eb3478"]]},{"id":"1c0b6aa6.c62445","type":"outcome","name":"l3-network","xml":"<outcome value='l3-netework'>\n","comments":"","outputs":1,"x":4667.61856842041,"y":5527.523387908936,"z":"8068ded9.ccc26","wires":[["e665f06b.96f35"]]},{"id":"ecb6efb1.19ad9","type":"switchNode","name":"switch: ss.resource-key.l3-network","xml":"<switch test=\"`$ss.resource-key.l3-network`\">\n","comments":"","outputs":1,"x":4404.8764724731445,"y":5528.226024627686,"z":"8068ded9.ccc26","wires":[["1c0b6aa6.c62445"]]},{"id":"3b70420c.dc52de","type":"outcome","name":"l-interface","xml":"<outcome value='l-interface'>\n","comments":"","outputs":1,"x":4778.714279174805,"y":5166.619045257568,"z":"8068ded9.ccc26","wires":[["3199093e.07e6f6"]]},{"id":"16cd30f3.c7e79f","type":"switchNode","name":"switch: ss.resource-key.l-interface","xml":"<switch test=\"`$ss.resource-key.l-interface`\">\n\n\n","comments":"","outputs":1,"x":4545.400802612305,"y":5166.320705413818,"z":"8068ded9.ccc26","wires":[["3b70420c.dc52de"]]},{"id":"408e0f2b.32827","type":"set","name":"set ss.cp.related-link","xml":"<set>\n<parameter name='ss.cp.related-link' \n\tvalue=\"`'/aai/v$/network/vnfcs/vnfc/' + \n\t$ss.param.vnfc-name + \n\t'/cps/cp/' + \n\t$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id`\" />","comments":"","x":2628.666618347168,"y":4817.666753053665,"z":"8068ded9.ccc26","wires":[]},{"id":"998e8a86.fc6368","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2416.666435241699,"y":4817.999890565872,"z":"8068ded9.ccc26","wires":[["408e0f2b.32827","2f9cf95b.a79726"]]},{"id":"8725d510.792668","type":"set","name":"set ss.l3-network.related-link","xml":"<set>\n<parameter name='ss.l3-network.related-link' \n\tvalue=\"`'/aai/v$/network/l3-networks/l3-network/' + $ss.network[$n].netid`\" />","comments":"","x":1869.9998779296875,"y":6171.000082015991,"z":"8068ded9.ccc26","wires":[]},{"id":"2dbbe18d.9f749e","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1631.666618347168,"y":6171.333102226257,"z":"8068ded9.ccc26","wires":[["8725d510.792668","4933575b.c49bc8"]]},{"id":"ed90b580.692598","type":"set","name":"set ss.availability-zone.related-link","xml":"<set>\n<parameter name='ss.availability-zone.related-link' \n\tvalue=\"`'/aai/v$/cloud-infrastructure/cloud-regions/cloud-region/' + \n\t$prop.cloud-region.cloud-owner + '/' + $ss.param.aic-cloud-region + \n\t'/availability-zones/availability-zone/' + \n\t$ss.param.availability-zone-0`\" />\n","comments":"","x":2502.7144470214844,"y":2831.857195854187,"z":"8068ded9.ccc26","wires":[]},{"id":"f23554a3.c0f0c8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2240.571601867676,"y":2832.2856311798096,"z":"8068ded9.ccc26","wires":[["ed90b580.692598","b6529101.23526"]]}] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-aai-vnf-put.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-aai-vnf-put.json
index f65f029f..044dac70 100644
--- a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-aai-vnf-put.json
+++ b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-aai-vnf-put.json
@@ -1 +1 @@
-[{"id":"fc34e26a.96e7e","type":"dgstart","name":"DGSTART","outputs":1,"x":118.75,"y":41.25,"z":"4bad730a.4cb0cc","wires":[["e33febc3.973b58"]]},{"id":"aa02a26f.e2363","type":"method","name":"method self-serve-aai-vnf-put","xml":"<method rpc='self-serve-aai-vnf-put' mode='sync'>\n","comments":"","outputs":1,"x":249.5357208251953,"y":116.71032333374023,"z":"4bad730a.4cb0cc","wires":[["a6f33c2f.b3f31"]]},{"id":"a6f33c2f.b3f31","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":135.07144165039062,"y":197.4881191253662,"z":"4bad730a.4cb0cc","wires":[["159c2262.814bae","7c881808.c8e0d8"]]},{"id":"e33febc3.973b58","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":391.6071472167969,"y":40.67856693267822,"z":"4bad730a.4cb0cc","wires":[["aa02a26f.e2363"]]},{"id":"159c2262.814bae","type":"switchNode","name":"switch: ss.capability-action","xml":"<switch test='`$ss.capability-action`'>\n","comments":"","outputs":1,"x":373.75002670288086,"y":197.14285230636597,"z":"4bad730a.4cb0cc","wires":[["b572550b.adbec8","13e8cc58.3cd934"]]},{"id":"b572550b.adbec8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":597.2500228881836,"y":197.39285230636597,"z":"4bad730a.4cb0cc","wires":[["a1e45c16.d893f"]]},{"id":"a1e45c16.d893f","type":"returnFailure","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=\"ss.capability-action is null\" />\n","comments":"","x":757.1666946411133,"y":197.50395107269287,"z":"4bad730a.4cb0cc","wires":[]},{"id":"13e8cc58.3cd934","type":"outcome","name":"assign","xml":"<outcome value='assign'>","comments":"","outputs":1,"x":597.0000190734863,"y":246.39285564422607,"z":"4bad730a.4cb0cc","wires":[["425f104b.9ea2a"]]},{"id":"894f7c33.637f5","type":"for","name":"for aidx in param_length (VNF)","xml":"<for silentFailure='true' index=\"aidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`\">","comments":"","outputs":1,"x":1018.9920196533203,"y":246.35323905944824,"z":"4bad730a.4cb0cc","wires":[["3de67184.4f327e"]]},{"id":"7c881808.c8e0d8","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss.aai.vfmoduleput.log' />\n","comments":"","outputs":1,"x":337.3809509277344,"y":424.34521102905273,"z":"4bad730a.4cb0cc","wires":[[]]},{"id":"3de67184.4f327e","type":"switchNode","name":"switch: param[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].name`'>\n","comments":"","outputs":1,"x":1281.5357055664062,"y":246.60714530944824,"z":"4bad730a.4cb0cc","wires":[["7ed75f6a.32c6","f9b29c72.cce46","30bf111a.e4111e","b1d0b1ac.319c6","88e38ba8.f37628"]]},{"id":"7ed75f6a.32c6","type":"outcome","name":"vnf_name","xml":"<outcome value='vnf_name'>","comments":"","outputs":1,"x":1502.5715560913086,"y":246.39284086227417,"z":"4bad730a.4cb0cc","wires":[["4cac8e62.ec887"]]},{"id":"f9b29c72.cce46","type":"outcome","name":"vnf_id","xml":"<outcome value='vnf_id'>","comments":"","outputs":1,"x":1495.214500427246,"y":288.21429920196533,"z":"4bad730a.4cb0cc","wires":[["b1503d7c.2ca81"]]},{"id":"4cac8e62.ec887","type":"set","name":"set vnf-name, index","xml":"<set>\n<parameter name='ss.param.vnf-name' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].value`' />\n<parameter name='ss.param.vnf-name-index' value='`$aidx`' />","comments":"","x":1693.5715637207031,"y":246.8928565979004,"z":"4bad730a.4cb0cc","wires":[]},{"id":"b1503d7c.2ca81","type":"set","name":"set vnf-id, index","xml":"<set>\n<parameter name='ss.param.vnf-id' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].value`' />\n<parameter name='ss.param.vnf-id-index' value='`$aidx`' />","comments":"","x":1670.714511871338,"y":287.96430015563965,"z":"4bad730a.4cb0cc","wires":[]},{"id":"1a08570b.7300c9","type":"save","name":"update generic-vnf","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \" >\n<parameter name=\"vnf-name\" value='`$ss.param.vnf-name`' />","comments":"","outputs":1,"x":987.0713844299316,"y":655.1429500579834,"z":"4bad730a.4cb0cc","wires":[["2326d53c.cf2f8a","4f81e373.6b324c"]]},{"id":"2326d53c.cf2f8a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1187.3214149475098,"y":655.499997138977,"z":"4bad730a.4cb0cc","wires":[["1776578e.beb728"]]},{"id":"4f81e373.6b324c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1193.5714263916016,"y":707.2500314712524,"z":"4bad730a.4cb0cc","wires":[["eeacaa58.638de8"]]},{"id":"65eeae87.ef3cb","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update generic-vnf.vnf-name in AnAI with vnf-name=' + $ss.param.vnf-name`\" />\n","comments":"","x":1625.190372467041,"y":655.285701751709,"z":"4bad730a.4cb0cc","wires":[]},{"id":"44537861.e8d898","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'generic-vnf with vnf-id =' + $ss.param.vnf-id + ' is not found in AAI'`\" />\n","comments":"","x":1625.761890411377,"y":705.5238780975342,"z":"4bad730a.4cb0cc","wires":[]},{"id":"366de731.14b3b8","type":"save","name":"get generic-vnf","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \"\n\tpfx=\"tmp.aai.vnf\" >\n\n","comments":"","outputs":1,"x":980.3571090698242,"y":496.03571796417236,"z":"4bad730a.4cb0cc","wires":[["3f089da.b9edc62","a9e8b83.38fa648"]]},{"id":"3f089da.b9edc62","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1188.8927421569824,"y":495.5356388092041,"z":"4bad730a.4cb0cc","wires":[["1368d9eb.216fa6"]]},{"id":"a9e8b83.38fa648","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1195.1426620483398,"y":594.4285469055176,"z":"4bad730a.4cb0cc","wires":[["b3eb8abb.73a328"]]},{"id":"daac54ac.6fed98","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Encountered error to get generic-vnf with vnf-id=' + $ss.param.vnf-id + ' from AnAI'`\" />\n","comments":"","x":1631.3329467773438,"y":541.0356578826904,"z":"4bad730a.4cb0cc","wires":[]},{"id":"3b6018e9.9fd408","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'generic-vnf.vnf-name with vnf-id=' + $ss.param.vnf-id + ' not found in AAI'`\" />\n","comments":"","x":1633.047420501709,"y":594.9882154464722,"z":"4bad730a.4cb0cc","wires":[]},{"id":"425f104b.9ea2a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":754.7500152587891,"y":246.6428518295288,"z":"4bad730a.4cb0cc","wires":[["894f7c33.637f5","366de731.14b3b8","1a08570b.7300c9","59e77635.57a7d8","638f61c1.41893","fb296a32.323408"]]},{"id":"1368d9eb.216fa6","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1360.4643287658691,"y":495.57143211364746,"z":"4bad730a.4cb0cc","wires":[["619aa30e.6fa38c","daac54ac.6fed98"]]},{"id":"1776578e.beb728","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1360.7499809265137,"y":655.5715217590332,"z":"4bad730a.4cb0cc","wires":[["619aa30e.6fa38c","65eeae87.ef3cb"]]},{"id":"eeacaa58.638de8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1363.6071968078613,"y":706.4286632537842,"z":"4bad730a.4cb0cc","wires":[["619aa30e.6fa38c","44537861.e8d898"]]},{"id":"b3eb8abb.73a328","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1361.3214073181152,"y":594.5714321136475,"z":"4bad730a.4cb0cc","wires":[["619aa30e.6fa38c","3b6018e9.9fd408"]]},{"id":"619aa30e.6fa38c","type":"set","name":"set resource-resolution-data.status = FAILED","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":1728.035717010498,"y":495.2857437133789,"z":"4bad730a.4cb0cc","wires":[]},{"id":"2ca2191b.da43e6","type":"comment","name":"VNF params","info":"","comments":"","x":993.0357131958008,"y":196.7261905670166,"z":"4bad730a.4cb0cc","wires":[]},{"id":"30bf111a.e4111e","type":"outcome","name":"license-assignment-group-uuid","xml":"<outcome value='license-assignment-group-uuid'>","comments":"","outputs":1,"x":1572.2500228881836,"y":331.2500057220459,"z":"4bad730a.4cb0cc","wires":[["7907a01.d16bd6"]]},{"id":"7907a01.d16bd6","type":"set","name":"set license-assignment-group-uuid, index","xml":"<set>\n<parameter name='ss.param.license-assignment-group-uuid' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].value`' />\n<parameter name='ss.param.license-assignment-group-uuid-index' value='`$aidx`' />","comments":"","x":1915.7500343322754,"y":331.0000066757202,"z":"4bad730a.4cb0cc","wires":[]},{"id":"b1d0b1ac.319c6","type":"outcome","name":"entitlement-assignment-group-uuid","xml":"<outcome value='entitlement-assignment-group-uuid'>","comments":"","outputs":1,"x":1587.2500228881836,"y":373.7500057220459,"z":"4bad730a.4cb0cc","wires":[["6859c77e.afd8f8"]]},{"id":"6859c77e.afd8f8","type":"set","name":"set entitlement-assignment-group-uuid, index","xml":"<set>\n<parameter name='ss.param.entitlement-assignment-group-uuid' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].value`' />\n<parameter name='ss.param.entitlement-assignment-group-uuid-index' value='`$aidx`' />","comments":"","x":1930.7500343322754,"y":373.5000066757202,"z":"4bad730a.4cb0cc","wires":[]},{"id":"57c694b7.6a6c2c","type":"save","name":"Rollback generic-vnf update","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \" >\n<parameter name=\"vnf-name\" value='`$tmp.aai.vnf.vnf-anme`' />","comments":"","outputs":1,"x":2238.7500228881836,"y":861.2500438690186,"z":"4bad730a.4cb0cc","wires":[["479539a3.5e3eb8","c7f71566.354288","d7404b28.fccd98"]]},{"id":"479539a3.5e3eb8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2477.0000076293945,"y":860.7499885559082,"z":"4bad730a.4cb0cc","wires":[["16d802eb.6e7f5d"]]},{"id":"c7f71566.354288","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2487.0000610351562,"y":901.2500591278076,"z":"4bad730a.4cb0cc","wires":[["31ea71b2.605ebe"]]},{"id":"221e0ece.1641c2","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":2290.1785049438477,"y":815.6186656951904,"z":"4bad730a.4cb0cc","wires":[]},{"id":"d7404b28.fccd98","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2484.8213500976562,"y":942.0116558074951,"z":"4bad730a.4cb0cc","wires":[["de15617c.c087c"]]},{"id":"2268c8e0.737d88","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1981.3569641113281,"y":772.0116100311279,"z":"4bad730a.4cb0cc","wires":[["221e0ece.1641c2","57c694b7.6a6c2c","c997983c.e414e8"]]},{"id":"16d802eb.6e7f5d","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":2659.82120513916,"y":860.8686628341675,"z":"4bad730a.4cb0cc","wires":[]},{"id":"31ea71b2.605ebe","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`' Failed to rollback generic-vnf update because generic-vnf with vnf-id = ' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":2666.07124710083,"y":900.8687009811401,"z":"4bad730a.4cb0cc","wires":[]},{"id":"de15617c.c087c","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\" Rollback of generic-vnf update completed. \" />\n","comments":"","x":2668.5712890625,"y":942.3687257766724,"z":"4bad730a.4cb0cc","wires":[]},{"id":"c997983c.e414e8","type":"record","name":"record generic-vnf ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK generic-vnf update\"/>","comments":"","outputs":1,"x":2244.32120513916,"y":771.1186637878418,"z":"4bad730a.4cb0cc","wires":[[]]},{"id":"27eb24b1.d3230c","type":"comment","name":"ROLLBACK STARET HERE","info":"","comments":"","x":2012.892677307129,"y":717.0709800720215,"z":"4bad730a.4cb0cc","wires":[]},{"id":"59e77635.57a7d8","type":"save","name":"save license","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"license\"\n\t\tkey=\"license.group-uuid = $ss.param.license-assignment-group-uuid \n\t\tAND license.resource-uuid = $ss.param.license-key\n\t\tAND generic-vnf.vnf-id = $ss.param.vnf-id\" >\n<parameter name=\"group-uuid\" value='`$ss.param.license-assignment-group-uuid`' />\n<parameter name=\"resource-uuid\" value='`$ss.param.license-key`' />","comments":"","outputs":1,"x":977.5000152587891,"y":900.0000133514404,"z":"4bad730a.4cb0cc","wires":[["6c6afa6b.37f854","3b4fc64e.114caa"]]},{"id":"6c6afa6b.37f854","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1177.7500457763672,"y":900.3570604324341,"z":"4bad730a.4cb0cc","wires":[["4303b02a.95a9c"]]},{"id":"3b4fc64e.114caa","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1184.000057220459,"y":952.1070947647095,"z":"4bad730a.4cb0cc","wires":[["87f79ab6.f4fa48"]]},{"id":"c155bdde.6cfd4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to save license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' in AAI'`\" />\n","comments":"","x":1552.6190032958984,"y":900.142765045166,"z":"4bad730a.4cb0cc","wires":[]},{"id":"d7aad25c.c9e05","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' is not found in AAI'`\" />\n","comments":"","x":1553.1905212402344,"y":950.3809413909912,"z":"4bad730a.4cb0cc","wires":[]},{"id":"4303b02a.95a9c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1351.178611755371,"y":900.4285850524902,"z":"4bad730a.4cb0cc","wires":[["c155bdde.6cfd4","2268c8e0.737d88"]]},{"id":"87f79ab6.f4fa48","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1354.0358276367188,"y":951.2857265472412,"z":"4bad730a.4cb0cc","wires":[["d7aad25c.c9e05","2268c8e0.737d88"]]},{"id":"638f61c1.41893","type":"save","name":"save entitlement","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"entitlement\"\n\t\tkey=\"entitlement.group-uuid = $ss.param.entitlement-assignment-group-uuid \n\t\tAND entitlement.resource-uuid = $ss.param.entitlement-key\n\t\tAND generic-vnf.vnf-id = $ss.param.vnf-id\" >\n<parameter name=\"group-uuid\" value='`$ss.param.entitlement-assignment-group-uuid`' />\n<parameter name=\"resource-uuid\" value='`$ss.param.entitlement-key`' />","comments":"","outputs":1,"x":990.0000152587891,"y":1120.0000171661377,"z":"4bad730a.4cb0cc","wires":[["a9eaa28.849b36","339db2d7.0a2e8e"]]},{"id":"a9eaa28.849b36","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1190.2500457763672,"y":1120.3570642471313,"z":"4bad730a.4cb0cc","wires":[["64c15d4f.6a4eb4"]]},{"id":"339db2d7.0a2e8e","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1196.500057220459,"y":1172.1070985794067,"z":"4bad730a.4cb0cc","wires":[["73bedfd7.cf59b"]]},{"id":"4e9ebb33.9b3b34","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to save entitlement with group-uuid = ' + $ss.param.entitlement-assignment-group-uuid + ' AND entitlement.resource-uuid = ' + $ss.param.entitlement-key + ' in AAI'`\" />\n","comments":"","x":1565.1190032958984,"y":1120.1427688598633,"z":"4bad730a.4cb0cc","wires":[]},{"id":"d21ac2d9.64649","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'entitlement with group-uuid = ' + $ss.param.entitlement-assignment-group-uuid + ' AND entitlement.resource-uuid = ' + $ss.param.entitlement-key + ' is not found in AAI'`\" />\n","comments":"","x":1565.6905212402344,"y":1170.3809452056885,"z":"4bad730a.4cb0cc","wires":[]},{"id":"64c15d4f.6a4eb4","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1363.678611755371,"y":1120.4285888671875,"z":"4bad730a.4cb0cc","wires":[["4e9ebb33.9b3b34","6c68a9e5.44bdb8"]]},{"id":"73bedfd7.cf59b","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1366.5358276367188,"y":1171.2857303619385,"z":"4bad730a.4cb0cc","wires":[["d21ac2d9.64649","6c68a9e5.44bdb8"]]},{"id":"1c60d424.125ddc","type":"save","name":"Rollback license save","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"license\"\n\t\tkey=\"license.group-uuid = $ss.param.license-assignment-group-uuid \n\t\tAND license.resource-uuid = $ss.param.license-key\" >","comments":"","outputs":1,"x":2236.2500610351562,"y":1132.5000667572021,"z":"4bad730a.4cb0cc","wires":[["13f982bb.433ccd","48040f10.fecd2","5dde3ab7.572a64"]]},{"id":"13f982bb.433ccd","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2474.500045776367,"y":1132.0000114440918,"z":"4bad730a.4cb0cc","wires":[["27a2fe8c.d48f22"]]},{"id":"48040f10.fecd2","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2483.2500610351562,"y":1171.2500667572021,"z":"4bad730a.4cb0cc","wires":[["5b6af0a0.6387c"]]},{"id":"5dde3ab7.572a64","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2481.0713539123535,"y":1209.5116634368896,"z":"4bad730a.4cb0cc","wires":[["778a127d.bdd04c"]]},{"id":"9e98b07c.4dc51","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":2000.1069641113281,"y":1090.7616138458252,"z":"4bad730a.4cb0cc","wires":[["1c60d424.125ddc","f68b4441.2a1838"]]},{"id":"27a2fe8c.d48f22","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`' Failed to rollback license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' in AAI. MANUAL ROLLBACK IS REQUIRED!'`\" />\n","comments":"","x":2657.321243286133,"y":1132.118685722351,"z":"4bad730a.4cb0cc","wires":[]},{"id":"5b6af0a0.6387c","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`' Failed to rollback license because license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' NOT FOUND in AAI. SILENT SUCCESS! '`\" />\n","comments":"","x":2662.32124710083,"y":1170.8687086105347,"z":"4bad730a.4cb0cc","wires":[]},{"id":"778a127d.bdd04c","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\" Rollback of license completed. \" />\n","comments":"","x":2664.8212928771973,"y":1209.868733406067,"z":"4bad730a.4cb0cc","wires":[]},{"id":"f68b4441.2a1838","type":"record","name":"record license ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK license\"/>","comments":"","outputs":1,"x":2251.07120513916,"y":1089.868667602539,"z":"4bad730a.4cb0cc","wires":[[]]},{"id":"6c68a9e5.44bdb8","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1838.7500305175781,"y":986.2500152587891,"z":"4bad730a.4cb0cc","wires":[["2268c8e0.737d88","9e98b07c.4dc51"]]},{"id":"fb296a32.323408","type":"set","name":"set resource-resolution-data.status = SUCCESS","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status' \n\tvalue='SUCCESS' />\n","comments":"","x":1090.8333129882812,"y":1286.6666355133057,"z":"4bad730a.4cb0cc","wires":[]},{"id":"88e38ba8.f37628","type":"outcome","name":"aai-vnf-put","xml":"<outcome value='aai-vnf-put'>","comments":"","outputs":1,"x":1514.5,"y":417.5,"z":"4bad730a.4cb0cc","wires":[["a2a465aa.af8988"]]},{"id":"a2a465aa.af8988","type":"set","name":"set ss.param.aai-vnf-put-index","xml":"<set>\n<parameter name='ss.param.aai-vnf-put-index' value='`$aidx`' />","comments":"","x":1748.0000114440918,"y":417.2500009536743,"z":"4bad730a.4cb0cc","wires":[]}] \ No newline at end of file
+[{"id":"55d0537a.aad9ac","type":"dgstart","name":"DGSTART","outputs":1,"x":140,"y":37.14285659790039,"z":"85bef54a.63a4f8","wires":[["d3d5c485.a4c258"]]},{"id":"3fcd67d7.8f74e8","type":"method","name":"method self-serve-aai-vnf-put","xml":"<method rpc='self-serve-aai-vnf-put' mode='sync'>\n","comments":"","outputs":1,"x":270.7857208251953,"y":112.60317993164062,"z":"85bef54a.63a4f8","wires":[["dfd5ae04.f32e3"]]},{"id":"dfd5ae04.f32e3","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":159.46430206298828,"y":259.09527111053467,"z":"85bef54a.63a4f8","wires":[["1ef56451.f805fc","c307398e.690a88","43d1bc2b.422f64","ac85cbde.bc5418"]]},{"id":"d3d5c485.a4c258","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":412.8571472167969,"y":36.57142353057861,"z":"85bef54a.63a4f8","wires":[["3fcd67d7.8f74e8"]]},{"id":"1ef56451.f805fc","type":"switchNode","name":"switch: ss.capability-action","xml":"<switch test='`$ss.capability-action`'>\n","comments":"","outputs":1,"x":402.5000305175781,"y":313.03571128845215,"z":"85bef54a.63a4f8","wires":[["f78a5ca3.c9ff1","545c7cf1.7eb664"]]},{"id":"f78a5ca3.c9ff1","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":626.0000267028809,"y":313.28571128845215,"z":"85bef54a.63a4f8","wires":[["d3b4d1fc.2a362"]]},{"id":"d3b4d1fc.2a362","type":"returnFailure","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=\"ss.capability-action is null\" />\n","comments":"","x":785.9166984558105,"y":313.39681005477905,"z":"85bef54a.63a4f8","wires":[]},{"id":"545c7cf1.7eb664","type":"outcome","name":"assign","xml":"<outcome value='assign'>","comments":"","outputs":1,"x":625.7500228881836,"y":362.28571462631226,"z":"85bef54a.63a4f8","wires":[["72205822.388d68"]]},{"id":"df1f48c5.e7d9e8","type":"for","name":"for aidx in param_length (VNF)","xml":"<for silentFailure='true' index=\"aidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`\">","comments":"","outputs":1,"x":1047.7420234680176,"y":362.2460980415344,"z":"85bef54a.63a4f8","wires":[["37dfb14b.c1f7be"]]},{"id":"c307398e.690a88","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss-aai-vnfput.log' />\n","comments":"","outputs":1,"x":358.9880828857422,"y":544.523811340332,"z":"85bef54a.63a4f8","wires":[[]]},{"id":"37dfb14b.c1f7be","type":"switchNode","name":"switch: param[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].name`'>\n","comments":"","outputs":1,"x":1310.2857093811035,"y":362.5000042915344,"z":"85bef54a.63a4f8","wires":[["c5a32a56.cd5118","c689826d.88f7f","58892a1d.521944","b4a84036.4788c","29e202.a7a62dfe","d7859900.1cb0d8","5c6dfc03.287a34"]]},{"id":"c5a32a56.cd5118","type":"outcome","name":"vnf_name","xml":"<outcome value='vnf_name'>","comments":"","outputs":1,"x":1531.3215599060059,"y":362.28569984436035,"z":"85bef54a.63a4f8","wires":[["55a24330.b52acc"]]},{"id":"c689826d.88f7f","type":"outcome","name":"vnf_id","xml":"<outcome value='vnf_id'>","comments":"","outputs":1,"x":1523.9645042419434,"y":404.1071581840515,"z":"85bef54a.63a4f8","wires":[["aa844c30.45db1"]]},{"id":"55a24330.b52acc","type":"set","name":"set vnf-name, index","xml":"<set>\n<parameter name='ss.param.vnf-name' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].value`' />\n<parameter name='ss.param.vnf-name-index' value='`$aidx`' />","comments":"","x":1722.3215675354004,"y":362.7857155799866,"z":"85bef54a.63a4f8","wires":[]},{"id":"aa844c30.45db1","type":"set","name":"set vnf-id, index","xml":"<set>\n<parameter name='ss.param.vnf-id' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].value`' />\n<parameter name='ss.param.vnf-id-index' value='`$aidx`' />","comments":"","x":1699.4645156860352,"y":403.85715913772583,"z":"85bef54a.63a4f8","wires":[]},{"id":"86241a75.30e1b8","type":"save","name":"update generic-vnf","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \" >\n<parameter name=\"vnf-name\" value=\"`$ss.param.vnf-name`\" />\n<parameter name=\"prov-status\" value=\"PREPROV\" />\n<parameter name=\"operational-status\" value=\"out-of-service-path\" />\n<parameter name=\"selflink\" value=\"`$ss.selflink`\" />\n<parameter name=\"model-customization-id\" \n\tvalue=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.onap-model-information.model-customization-uuid`\" />\n<parameter name=\"model-invariant-id\" \n\tvalue=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.onap-model-information.model-invariant-uuid`\" />\n<parameter name=\"model-version-id\" \n\tvalue=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.onap-model-information.model-uuid`\" />","comments":"","outputs":1,"x":1012.1784973144531,"y":963.1072387695312,"z":"85bef54a.63a4f8","wires":[["4c5244df.ce970c","7dd9e5a8.f30c7c"]]},{"id":"4c5244df.ce970c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1212.4285278320312,"y":963.4642858505249,"z":"85bef54a.63a4f8","wires":[["e6a6591.117aea8"]]},{"id":"7dd9e5a8.f30c7c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1218.678539276123,"y":1015.2143201828003,"z":"85bef54a.63a4f8","wires":[["684c9c20.1ac634"]]},{"id":"80d924b7.aface8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update generic-vnf.vnf-name in AnAI with vnf-name=' + $ss.param.vnf-name`\" />\n","comments":"","x":1650.2974853515625,"y":963.2499904632568,"z":"85bef54a.63a4f8","wires":[]},{"id":"facbfa08.015888","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'generic-vnf with vnf-id =' + $ss.param.vnf-id + ' is not found in AAI'`\" />\n","comments":"","x":1650.8690032958984,"y":1013.488166809082,"z":"85bef54a.63a4f8","wires":[]},{"id":"8157040a.eb58e8","type":"save","name":"get generic-vnf","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \"\n\tpfx=\"tmp.aai.vnf\" >\n\n","comments":"","outputs":1,"x":1003.4642219543457,"y":748.0000066757202,"z":"85bef54a.63a4f8","wires":[["ef982b26.77f938","75c917ec.7702b8"]]},{"id":"ef982b26.77f938","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1211.999855041504,"y":747.499927520752,"z":"85bef54a.63a4f8","wires":[["b75ef25a.515e5"]]},{"id":"75c917ec.7702b8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1220.2497749328613,"y":846.3928356170654,"z":"85bef54a.63a4f8","wires":[["63c26544.05168c"]]},{"id":"a4abae3c.5acf","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Encountered error to get generic-vnf with vnf-id=' + $ss.param.vnf-id + ' from AnAI'`\" />\n","comments":"","x":1656.4400596618652,"y":792.9999465942383,"z":"85bef54a.63a4f8","wires":[]},{"id":"e95a3d2d.d5c19","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'generic-vnf.vnf-name with vnf-id=' + $ss.param.vnf-id + ' not found in AAI'`\" />\n","comments":"","x":1658.1545333862305,"y":846.95250415802,"z":"85bef54a.63a4f8","wires":[]},{"id":"72205822.388d68","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":783.5000190734863,"y":362.535710811615,"z":"85bef54a.63a4f8","wires":[["df1f48c5.e7d9e8","8157040a.eb58e8","86241a75.30e1b8","47acecfe.290644","3d3628a4.f5f868","110e04e.b280ffb","c62e5711.65deb8"]]},{"id":"b75ef25a.515e5","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1383.5714416503906,"y":747.5357208251953,"z":"85bef54a.63a4f8","wires":[["8eb3ba4a.2df338","a4abae3c.5acf"]]},{"id":"e6a6591.117aea8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1385.8570938110352,"y":963.535810470581,"z":"85bef54a.63a4f8","wires":[["8eb3ba4a.2df338","80d924b7.aface8"]]},{"id":"684c9c20.1ac634","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1388.7143096923828,"y":1014.392951965332,"z":"85bef54a.63a4f8","wires":[["8eb3ba4a.2df338","facbfa08.015888"]]},{"id":"63c26544.05168c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1386.4285202026367,"y":846.5357208251953,"z":"85bef54a.63a4f8","wires":[["8eb3ba4a.2df338","e95a3d2d.d5c19"]]},{"id":"8eb3ba4a.2df338","type":"set","name":"set resource-resolution-data.status = FAILED","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":1753.1428298950195,"y":747.2500324249268,"z":"85bef54a.63a4f8","wires":[]},{"id":"56dac433.4ebe4c","type":"comment","name":"VNF params","info":"","comments":"","x":1021.785717010498,"y":312.6190495491028,"z":"85bef54a.63a4f8","wires":[]},{"id":"58892a1d.521944","type":"outcome","name":"license-assignment-group-uuid","xml":"<outcome value='license-assignment-group-uuid'>","comments":"","outputs":1,"x":1601.0000267028809,"y":447.1428647041321,"z":"85bef54a.63a4f8","wires":[["33858d6f.c508c2"]]},{"id":"33858d6f.c508c2","type":"set","name":"set license-assignment-group-uuid, index","xml":"<set>\n<parameter name='ss.param.license-assignment-group-uuid' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].value`' />\n<parameter name='ss.param.license-assignment-group-uuid-index' value='`$aidx`' />","comments":"","x":1944.5000381469727,"y":446.8928656578064,"z":"85bef54a.63a4f8","wires":[]},{"id":"b4a84036.4788c","type":"outcome","name":"entitlement-assignment-group-uuid","xml":"<outcome value='entitlement-assignment-group-uuid'>","comments":"","outputs":1,"x":1616.0000267028809,"y":489.6428647041321,"z":"85bef54a.63a4f8","wires":[["6b87d852.7227f8"]]},{"id":"6b87d852.7227f8","type":"set","name":"set entitlement-assignment-group-uuid, index","xml":"<set>\n<parameter name='ss.param.entitlement-assignment-group-uuid' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].value`' />\n<parameter name='ss.param.entitlement-assignment-group-uuid-index' value='`$aidx`' />","comments":"","x":1959.5000381469727,"y":489.3928656578064,"z":"85bef54a.63a4f8","wires":[]},{"id":"c6893659.48b0a8","type":"save","name":"Rollback generic-vnf update","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $ss.param.vnf-id \" >\n<parameter name=\"vnf-name\" value='`$tmp.aai.vnf.vnf-anme`' />","comments":"","outputs":1,"x":3439.0000076293945,"y":978.928617477417,"z":"85bef54a.63a4f8","wires":[["5b3c33f6.ebd2cc","5d1a7d88.ced424","c0606087.f6dec"]]},{"id":"5b3c33f6.ebd2cc","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3677.2499923706055,"y":978.4285621643066,"z":"85bef54a.63a4f8","wires":[["19c115b9.1a8d5a"]]},{"id":"5d1a7d88.ced424","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3687.250045776367,"y":1018.928632736206,"z":"85bef54a.63a4f8","wires":[["9038539f.5722d"]]},{"id":"d601c3d4.6d50b","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$ss.param.aai-vf-put-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":3490.4284896850586,"y":933.2972393035889,"z":"85bef54a.63a4f8","wires":[]},{"id":"c0606087.f6dec","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3685.071334838867,"y":1059.6902294158936,"z":"85bef54a.63a4f8","wires":[["7acb4638.07b6a8"]]},{"id":"c470bf3f.ce10b","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":3189.606948852539,"y":889.6901836395264,"z":"85bef54a.63a4f8","wires":[["d601c3d4.6d50b","c6893659.48b0a8","7f2cc0f0.2fb8"]]},{"id":"19c115b9.1a8d5a","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":3860.071189880371,"y":978.5472364425659,"z":"85bef54a.63a4f8","wires":[]},{"id":"9038539f.5722d","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id = ' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`\" />\n","comments":"","x":3866.321231842041,"y":1018.5472745895386,"z":"85bef54a.63a4f8","wires":[]},{"id":"7acb4638.07b6a8","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback of generic-vnf update completed. '`\" />\n","comments":"","x":3868.821273803711,"y":1060.0472993850708,"z":"85bef54a.63a4f8","wires":[]},{"id":"7f2cc0f0.2fb8","type":"record","name":"record generic-vnf ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK generic-vnf update\"/>","comments":"","outputs":1,"x":3444.571189880371,"y":888.7972373962402,"z":"85bef54a.63a4f8","wires":[[]]},{"id":"b21660af.9463e","type":"comment","name":"ROLLBACK STARET HERE","info":"","comments":"","x":3213.14266204834,"y":834.7495536804199,"z":"85bef54a.63a4f8","wires":[]},{"id":"c68671d5.40c25","type":"save","name":"save license","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"license\"\n\t\tkey=\"license.group-uuid = $ss.param.license-assignment-group-uuid \n\t\tAND license.resource-uuid = $ss.param.license-key\n\t\tAND generic-vnf.vnf-id = $ss.param.vnf-id\" >\n<parameter name=\"group-uuid\" value='`$ss.param.license-assignment-group-uuid`' />\n<parameter name=\"resource-uuid\" value='`$ss.param.license-key`' />","comments":"","outputs":1,"x":2126.321647644043,"y":1164.821494102478,"z":"85bef54a.63a4f8","wires":[["596f2794.29bd08","3babeea8.206f12","d8ad3e8c.2f704"]]},{"id":"596f2794.29bd08","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2326.571678161621,"y":1165.1785411834717,"z":"85bef54a.63a4f8","wires":[["d5f43627.b5ce68"]]},{"id":"3babeea8.206f12","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2332.821689605713,"y":1216.928575515747,"z":"85bef54a.63a4f8","wires":[["379e1f2a.c8bb6"]]},{"id":"ba258248.c8735","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to save license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' in AA. ' + $error-message`\" />\n","comments":"","x":2701.4406356811523,"y":1164.9642457962036,"z":"85bef54a.63a4f8","wires":[]},{"id":"37505579.aeb93a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' is not found in AAI. ' + $error-message`\" />\n","comments":"","x":2702.0121536254883,"y":1215.2024221420288,"z":"85bef54a.63a4f8","wires":[]},{"id":"d5f43627.b5ce68","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2500.000244140625,"y":1165.2500658035278,"z":"85bef54a.63a4f8","wires":[["ba258248.c8735","c470bf3f.ce10b"]]},{"id":"379e1f2a.c8bb6","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2502.8574600219727,"y":1216.1072072982788,"z":"85bef54a.63a4f8","wires":[["37505579.aeb93a","c470bf3f.ce10b"]]},{"id":"25fd194b.69a846","type":"save","name":"save entitlement","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"entitlement\"\n\t\tkey=\"entitlement.group-uuid = $ss.param.entitlement-assignment-group-uuid \n\t\tAND entitlement.resource-uuid = $ss.param.entitlement-key\n\t\tAND generic-vnf.vnf-id = $ss.param.vnf-id\" >\n<parameter name=\"group-uuid\" value='`$ss.param.entitlement-assignment-group-uuid`' />\n<parameter name=\"resource-uuid\" value='`$ss.param.entitlement-key`' />","comments":"","outputs":1,"x":2148.583366394043,"y":1518.2499980926514,"z":"85bef54a.63a4f8","wires":[["6aa55b3.95b14a4","c6d02bd0.b0edd8"]]},{"id":"6aa55b3.95b14a4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2348.833396911621,"y":1518.607045173645,"z":"85bef54a.63a4f8","wires":[["71ccf768.2c3b38"]]},{"id":"c6d02bd0.b0edd8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2355.083408355713,"y":1570.3570795059204,"z":"85bef54a.63a4f8","wires":[["67dfc015.a0271"]]},{"id":"d3bfd616.246fd8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to save entitlement with group-uuid = ' + $ss.param.entitlement-assignment-group-uuid + ' AND entitlement.resource-uuid = ' + $ss.param.entitlement-key + ' in AAI. ' + $error-message`\" />\n","comments":"","x":2717.98819732666,"y":1518.3926372528076,"z":"85bef54a.63a4f8","wires":[]},{"id":"18dde61b.aca13a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'entitlement with group-uuid = ' + $ss.param.entitlement-assignment-group-uuid + ' AND entitlement.resource-uuid = ' + $ss.param.entitlement-key + ' is not found in AAI. ' + $error-message`\" />\n","comments":"","x":2724.2738723754883,"y":1568.6309261322021,"z":"85bef54a.63a4f8","wires":[]},{"id":"71ccf768.2c3b38","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2522.261962890625,"y":1518.6785697937012,"z":"85bef54a.63a4f8","wires":[["d3bfd616.246fd8","479bbe95.38113"]]},{"id":"67dfc015.a0271","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2525.1191787719727,"y":1569.5357112884521,"z":"85bef54a.63a4f8","wires":[["18dde61b.aca13a","479bbe95.38113"]]},{"id":"85eb871.2640978","type":"save","name":"Rollback license save","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"license\"\n\t\tkey=\"license.group-uuid = $ss.param.license-assignment-group-uuid \n\t\tAND license.resource-uuid = $ss.param.license-key\" >","comments":"","outputs":1,"x":3809.3573417663574,"y":1243.6072721481323,"z":"85bef54a.63a4f8","wires":[["6ce1b45f.4ed2bc","93d8b7a8.2141d8","d4c04554.422618"]]},{"id":"6ce1b45f.4ed2bc","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":4047.6073265075684,"y":1243.107216835022,"z":"85bef54a.63a4f8","wires":[["1e973b6a.3ecc25"]]},{"id":"93d8b7a8.2141d8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":4056.3573417663574,"y":1282.3572721481323,"z":"85bef54a.63a4f8","wires":[["d0cb4d6e.6f6cf"]]},{"id":"d4c04554.422618","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":4054.1786346435547,"y":1320.6188688278198,"z":"85bef54a.63a4f8","wires":[["dae35973.8abc38"]]},{"id":"d86b3e46.6b4fb","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":3573.2142448425293,"y":1201.8688192367554,"z":"85bef54a.63a4f8","wires":[["85eb871.2640978","7905671f.4688f8"]]},{"id":"1e973b6a.3ecc25","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' in AAI. MANUAL ROLLBACK IS REQUIRED!'`\" />\n","comments":"","x":4230.428524017334,"y":1243.2258911132812,"z":"85bef54a.63a4f8","wires":[]},{"id":"d0cb4d6e.6f6cf","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Failed to rollback license because license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' NOT FOUND in AAI. SILENT SUCCESS! '`\" />\n","comments":"","x":4235.428527832031,"y":1281.9759140014648,"z":"85bef54a.63a4f8","wires":[]},{"id":"dae35973.8abc38","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value=\"`$error-message + ' Rollback of license completed. '`\" />\n","comments":"","x":4237.928573608398,"y":1320.975938796997,"z":"85bef54a.63a4f8","wires":[]},{"id":"7905671f.4688f8","type":"record","name":"record license ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK license\"/>","comments":"","outputs":1,"x":3824.1784858703613,"y":1200.9758729934692,"z":"85bef54a.63a4f8","wires":[[]]},{"id":"479bbe95.38113","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":3030.428451538086,"y":1063.9285678863525,"z":"85bef54a.63a4f8","wires":[["c470bf3f.ce10b","b081f7f0.a01508"]]},{"id":"47acecfe.290644","type":"set","name":"set resource-resolution-data.status = SUCCESS","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status' \n\tvalue='SUCCESS' />\n","comments":"","x":1090.845458984375,"y":1695.5354652404785,"z":"85bef54a.63a4f8","wires":[]},{"id":"29e202.a7a62dfe","type":"outcome","name":"aai-vnf-put","xml":"<outcome value='aai-vnf-put'>","comments":"","outputs":1,"x":1543.2500038146973,"y":533.3928589820862,"z":"85bef54a.63a4f8","wires":[["5d6926ab.0be6e8"]]},{"id":"5d6926ab.0be6e8","type":"set","name":"set ss.param.aai-vnf-put-index","xml":"<set>\n<parameter name='ss.param.aai-vnf-put-index' value='`$aidx`' />","comments":"","x":1776.750015258789,"y":533.1428599357605,"z":"85bef54a.63a4f8","wires":[]},{"id":"43d1bc2b.422f64","type":"switchNode","name":"switch: ss.capability-name","xml":"<switch test='`$ss.capability-name`'>\n","comments":"","outputs":1,"x":400.8928451538086,"y":258.75000953674316,"z":"85bef54a.63a4f8","wires":[["760bd716.8d2598"]]},{"id":"760bd716.8d2598","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":625.8928680419922,"y":259.2500081062317,"z":"85bef54a.63a4f8","wires":[["53678390.0ec93c"]]},{"id":"53678390.0ec93c","type":"returnFailure","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=\"ss.capability-name is null\" />\n","comments":"","x":785.8095397949219,"y":259.3611068725586,"z":"85bef54a.63a4f8","wires":[]},{"id":"ac85cbde.bc5418","type":"set","name":"set param[$ss.param.aai-vnf-put-index].value = SUCCESS","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].value' \n\tvalue='SUCCESS' />\n","comments":"","x":505.6071472167969,"y":483.0357093811035,"z":"85bef54a.63a4f8","wires":[]},{"id":"d7859900.1cb0d8","type":"outcome","name":"license-key","xml":"<outcome value='license-key'>","comments":"","outputs":1,"x":1545.71439743042,"y":579.999979019165,"z":"85bef54a.63a4f8","wires":[["ef0d6945.2d36b8"]]},{"id":"ef0d6945.2d36b8","type":"set","name":"set license-key, index","xml":"<set>\n<parameter name='ss.param.license-key' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].value`' />\n<parameter name='ss.param.license-key-index' value='`$aidx`' />","comments":"","x":1781.2144088745117,"y":579.7499799728394,"z":"85bef54a.63a4f8","wires":[]},{"id":"5c6dfc03.287a34","type":"outcome","name":"entitlement-key","xml":"<outcome value='entitlement-key'>","comments":"","outputs":1,"x":1558.71439743042,"y":622.499979019165,"z":"85bef54a.63a4f8","wires":[["27af300f.e5eac"]]},{"id":"27af300f.e5eac","type":"set","name":"set entitlement-key, index","xml":"<set>\n<parameter name='ss.param.entitlement-key' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].value`' />\n<parameter name='ss.param.entitlement-key-index' value='`$aidx`' />","comments":"","x":1796.2144088745117,"y":622.2499799728394,"z":"85bef54a.63a4f8","wires":[]},{"id":"3d3628a4.f5f868","type":"switchNode","name":"ss.param.license-assignment-group-uuid != NULL","xml":"<switch test=\"`$ss.param.license-assignment-group-uuid != ''`\">\n","comments":"","outputs":1,"x":1107.1427612304688,"y":1118.428671836853,"z":"85bef54a.63a4f8","wires":[["70116375.debe9c"]]},{"id":"bea6d364.081b4","type":"execute","name":"ss.param.license-assignment-group-uuid contains $","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >\n <parameter name='source' value='`$ss.param.license-assignment-group-uuid`' />\n <parameter name='target' value='$' />\n","comments":"","outputs":1,"x":1677.5238494873047,"y":1117.8572483062744,"z":"85bef54a.63a4f8","wires":[["535af96b.aeb4e8","970650fa.244cd"]]},{"id":"535af96b.aeb4e8","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1972.5237884521484,"y":1117.1427755355835,"z":"85bef54a.63a4f8","wires":[["3ca8f5ac.1ddeda"]]},{"id":"70116375.debe9c","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1398.8095016479492,"y":1117.857219696045,"z":"85bef54a.63a4f8","wires":[["bea6d364.081b4"]]},{"id":"970650fa.244cd","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1973.0006275177002,"y":1164.9999904632568,"z":"85bef54a.63a4f8","wires":[["c68671d5.40c25"]]},{"id":"3ca8f5ac.1ddeda","type":"record","name":"record ss.param.license-assignment-group-uuid","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=\"`'ss.param.license-assignment-group-uuid = ' + $ss.param.license-assignment-group-uuid`\"/>\n<parameter name=\"field3\" value=\"__SKIP saving license object in AnAI__\"/>","comments":"","outputs":1,"x":2235.952377319336,"y":1116.4285945892334,"z":"85bef54a.63a4f8","wires":[[]]},{"id":"110e04e.b280ffb","type":"switchNode","name":"ss.param.entitlement-assignment-group-uuid NULL","xml":"<switch test=\"`$ss.param.entitlement-assignment-group-uuid != ''`\">\n","comments":"","outputs":1,"x":1108.0952453613281,"y":1469.4286861419678,"z":"85bef54a.63a4f8","wires":[["f6c3383e.93cd68"]]},{"id":"99866447.2f71e8","type":"execute","name":"ss.param.license-assignment-group-uuid contains $","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >\n <parameter name='source' value='`$ss.param.entitlement-assignment-group-uuid`' />\n <parameter name='target' value='$' />\n","comments":"","outputs":1,"x":1680.1428680419922,"y":1469.1905555725098,"z":"85bef54a.63a4f8","wires":[["723da42a.d12fec","285fe0d2.3ca42"]]},{"id":"723da42a.d12fec","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1975.142807006836,"y":1468.4760828018188,"z":"85bef54a.63a4f8","wires":[["cecb74d6.760fe8"]]},{"id":"f6c3383e.93cd68","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1401.4285202026367,"y":1469.1905269622803,"z":"85bef54a.63a4f8","wires":[["99866447.2f71e8"]]},{"id":"285fe0d2.3ca42","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1975.6195335388184,"y":1518.3333625793457,"z":"85bef54a.63a4f8","wires":[["25fd194b.69a846"]]},{"id":"cecb74d6.760fe8","type":"record","name":"record ss.param.entitlement-assignment-group-uuid","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=\"`'ss.param.entitlement-assignment-group-uuid = ' + $ss.param.entitlement-assignment-group-uuid`\"/>\n<parameter name=\"field3\" value=\"__SKIP saving entitlement object in AnAI__\"/>","comments":"","outputs":1,"x":2259.5713958740234,"y":1467.7619018554688,"z":"85bef54a.63a4f8","wires":[[]]},{"id":"d8ad3e8c.2f704","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2330,"y":1265.7143535614014,"z":"85bef54a.63a4f8","wires":[["7e08d129.12734"]]},{"id":"7e08d129.12734","type":"set","name":"set ss.license-updated = true","xml":"<set>\n<parameter name='ss.license-updated' value='true' />\n","comments":"","x":2550.142822265625,"y":1265.1428203582764,"z":"85bef54a.63a4f8","wires":[]},{"id":"b081f7f0.a01508","type":"switchNode","name":"ss.ss.license-updated","xml":"<switch test=\"`$ss.license-updated`\">\n\n\n","comments":"","outputs":1,"x":3238.5715103149414,"y":1202.4286546707153,"z":"85bef54a.63a4f8","wires":[["eaef5990.271bf8"]]},{"id":"eaef5990.271bf8","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3430.1427993774414,"y":1201.8572435379028,"z":"85bef54a.63a4f8","wires":[["d86b3e46.6b4fb"]]},{"id":"c62e5711.65deb8","type":"set","name":"set ss.selflink","xml":"<set>\n<parameter name=\"ss.selflink\" \n\tvalue=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/' + \n\t$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.service-instance-id + \n\t'/service-data/vnfs/vnf/' + \n\t$ss.param.vnf-id + \n\t'/vnf-data/vnf-topology/'`\" />\n","comments":"","x":995.9999771118164,"y":892.8571701049805,"z":"85bef54a.63a4f8","wires":[]}] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-capability-param-resolution.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-capability-param-resolution.json
index 1c4de41f..12d9839d 100644
--- a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-capability-param-resolution.json
+++ b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-capability-param-resolution.json
@@ -1 +1 @@
-[{"id":"b2f9de4.fde782","type":"dgstart","name":"DGSTART","outputs":1,"x":127.5,"y":65.00000000000001,"z":"2eed414c.ede50e","wires":[["d02e6a72.1e6a48"]]},{"id":"b3a65ba9.eb9688","type":"method","name":"self-serve-capability-param-resolution","xml":"<method rpc='self-serve-capability-param-resolution' mode='sync'>","comments":"","outputs":1,"x":236.49998474121094,"y":129.28572177886963,"z":"2eed414c.ede50e","wires":[["be1c8d3f.9ef6b"]]},{"id":"d02e6a72.1e6a48","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":435.5,"y":65.00000000000001,"z":"2eed414c.ede50e","wires":[["b3a65ba9.eb9688"]]},{"id":"be1c8d3f.9ef6b","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":158.2142791748047,"y":193.14286041259766,"z":"2eed414c.ede50e","wires":[["7f9405a.75baafc"]]},{"id":"c011bd0.1ca2f4","type":"for","name":"for i in vnf-parameters-data.param[]","xml":"<for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n","comments":"","outputs":1,"x":720.7857666015625,"y":328,"z":"2eed414c.ede50e","wires":[["e3613cb3.e23c"]]},{"id":"e3613cb3.e23c","type":"switchNode","name":"switch capability-name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.capability-name == $ss.capability-name`'>\n","comments":"","outputs":1,"x":1001.9286308288574,"y":328.57142305374146,"z":"2eed414c.ede50e","wires":[["453b20b8.0bf3"]]},{"id":"453b20b8.0bf3","type":"not-found","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1206.928581237793,"y":328.0000033378601,"z":"2eed414c.ede50e","wires":[["83285695.56f8f8"]]},{"id":"6d2ac1ec.6947d","type":"for","name":"for j in resource-key[]","xml":"<for silentFailure='true' index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key_length`' >\n","comments":"","outputs":1,"x":818.2142333984375,"y":468.1428527832031,"z":"2eed414c.ede50e","wires":[["57b15620.094f48"]]},{"id":"57b15620.094f48","type":"execute","name":"slistringUtils - check value for $","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >\n <parameter name=\"source\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`\" />\n <parameter name=\"target\" value=\"$\"/>\n \n","comments":"","outputs":1,"x":1095.7857208251953,"y":467.142861366272,"z":"2eed414c.ede50e","wires":[["ac3fad8b.2f5fc"]]},{"id":"ac3fad8b.2f5fc","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1325.2142333984375,"y":466.1428527832031,"z":"2eed414c.ede50e","wires":[["fe88f79e.c02fb8"]]},{"id":"277ff0ac.3260f","type":"execute","name":"split resource-resolution-data","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\n <parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`' />\n <parameter name='regex' value='\\$\\{' />\n","comments":"","outputs":1,"x":1161.9286346435547,"y":588.7143096923828,"z":"2eed414c.ede50e","wires":[[]]},{"id":"7b0114.5d80beec","type":"set","name":"set","xml":"<set>\n <parameter name=\"tmp.s1\" value='`$resource-resolution-split[0]`'/>\n <parameter name=\"tmp.s2.s2\" value=''/>\n <parameter name=\"tmp.resolved.var.value\" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`'/>\n \n\n","comments":"","x":1099.2143630981445,"y":660.4285774230957,"z":"2eed414c.ede50e","wires":[]},{"id":"6aba5cdd.959204","type":"execute","name":"split s2","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n <parameter name='ctx_memory_result_key' value='s2' />\n <parameter name='original_string' value='`$resource-resolution-split[1]`' />\n <parameter name='regex' value='\\}' />\n","comments":"","outputs":1,"x":1101.2143630981445,"y":731.4285774230957,"z":"2eed414c.ede50e","wires":[[]]},{"id":"f80112e3.e8376","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1481.2143630981445,"y":823.4285774230957,"z":"2eed414c.ede50e","wires":[["a0d1d1d7.06391","16a1ad1c.4c38f3"]]},{"id":"16a1ad1c.4c38f3","type":"set","name":"set","xml":"<set>\n <parameter name=\"tmp.s2.s2\" value='`$s2[1]`'/>\n \n\n","comments":"","x":1650.2143630981445,"y":857.4285774230957,"z":"2eed414c.ede50e","wires":[]},{"id":"b8edb73c.2cd188","type":"set","name":"set","xml":"<set>\n <parameter name=\"tmp.s2.s1\" value='`$s2[0]`'/>\n \n\n","comments":"","x":1475.2143630981445,"y":753.4285774230957,"z":"2eed414c.ede50e","wires":[]},{"id":"b7190e5.81e8af","type":"execute","name":"concat","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\n <parameter name='source' value='`$tmp.s1`' />\n <parameter name='target' value='`$tmp.resolved.var.value`' />\n <parameter name='outputPath' value='tmp.result' />\n","comments":"","outputs":1,"x":1093.0714263916016,"y":982.9999985694885,"z":"2eed414c.ede50e","wires":[[]]},{"id":"91228785.77c5c8","type":"switchNode","name":"switch s2 length","xml":"<switch test='`$s2_length`'>\n","comments":"","outputs":1,"x":1129.2143630981445,"y":795.4285774230957,"z":"2eed414c.ede50e","wires":[["1bed4afb.3b60b5","cf8df26e.65e38"]]},{"id":"1bed4afb.3b60b5","type":"outcome","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1315.2143630981445,"y":753.4285774230957,"z":"2eed414c.ede50e","wires":[["b8edb73c.2cd188"]]},{"id":"cf8df26e.65e38","type":"outcome","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1318.2143630981445,"y":824.4285774230957,"z":"2eed414c.ede50e","wires":[["f80112e3.e8376"]]},{"id":"a0d1d1d7.06391","type":"set","name":"set","xml":"<set>\n <parameter name=\"tmp.s2.s1\" value='`$s2[0]`'/>\n \n\n","comments":"","x":1646.2143630981445,"y":788.4285774230957,"z":"2eed414c.ede50e","wires":[]},{"id":"e12991dc.9f762","type":"execute","name":"concat","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\n <parameter name='source' value='`$tmp.result`' />\n <parameter name='target' value='`$tmp.s2.s2`' />\n <parameter name='outputPath' value='tmp.result' />\n","comments":"","outputs":1,"x":1497.0714263916016,"y":1105.9999985694885,"z":"2eed414c.ede50e","wires":[[]]},{"id":"9ee590b9.86b03","type":"switchNode","name":"switch tmp.s2.s2 null","xml":"<switch test=\"`$tmp.s2.s2 == ''`\">\n","comments":"","outputs":1,"x":1140.0714263916016,"y":1074.9999985694885,"z":"2eed414c.ede50e","wires":[["d5945243.43236","76d2ae80.99aaa"]]},{"id":"d5945243.43236","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":1342.0714263916016,"y":1041.9999985694885,"z":"2eed414c.ede50e","wires":[[]]},{"id":"76d2ae80.99aaa","type":"other","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1345.0714263916016,"y":1104.9999985694885,"z":"2eed414c.ede50e","wires":[["e12991dc.9f762"]]},{"id":"a34fa202.a8f58","type":"set","name":"set result of resolution","xml":"<set>\n <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`' value='`$tmp.result`'/>\n \n\n","comments":"","x":1141.0714263916016,"y":1135.9999985694885,"z":"2eed414c.ede50e","wires":[]},{"id":"12905fab.09b84","type":"for","name":"for cn in vnf-parameters-data.param[]","xml":"<for silentFailure='true' index='cn' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n","comments":"","outputs":1,"x":1187.0714263916016,"y":915.9999985694885,"z":"2eed414c.ede50e","wires":[["93df27b1.8320b8"]]},{"id":"93df27b1.8320b8","type":"switchNode","name":"switch param[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$cn].name == $tmp.s2.s1`'>\n","comments":"","outputs":1,"x":1468.7857666015625,"y":915.4285984039307,"z":"2eed414c.ede50e","wires":[["74ab785e.43db98"]]},{"id":"74ab785e.43db98","type":"not-found","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1663.7857666015625,"y":915.4285984039307,"z":"2eed414c.ede50e","wires":[["ca61b0c8.8e36"]]},{"id":"ca61b0c8.8e36","type":"set","name":"set","xml":"<set>\n <parameter name='tmp.resolved.var.value' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$cn].value`'/>\n \n\n","comments":"","x":1813.7857666015625,"y":915.4285984039307,"z":"2eed414c.ede50e","wires":[]},{"id":"fe88f79e.c02fb8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":868.0714263916016,"y":527.9999985694885,"z":"2eed414c.ede50e","wires":[["277ff0ac.3260f","7b0114.5d80beec","6aba5cdd.959204","91228785.77c5c8","12905fab.09b84","b7190e5.81e8af","9ee590b9.86b03","a34fa202.a8f58","77607272.82d98c"]]},{"id":"7f9405a.75baafc","type":"switchNode","name":"switch capability-type","xml":"<switch test=\"`$ss.capability-type`\">\n","comments":"","outputs":1,"x":194.78570556640625,"y":270.2857093811035,"z":"2eed414c.ede50e","wires":[["cff28686.cdc6c8","489c8727.568328"]]},{"id":"cff28686.cdc6c8","type":"not-found","name":"vnf","xml":"<outcome value='vnf'>\n","comments":"","outputs":1,"x":385.4999694824219,"y":269.7143249511719,"z":"2eed414c.ede50e","wires":[["d8b5acf7.f5e9e"]]},{"id":"489c8727.568328","type":"not-found","name":"vf-module","xml":"<outcome value='vf-module'>\n","comments":"","outputs":1,"x":404.9285583496094,"y":1295.2857666015625,"z":"2eed414c.ede50e","wires":[["2fc1611b.146ece"]]},{"id":"4a358999.23b6a8","type":"for","name":"for i in vf-parameters-data.param[]","xml":"<for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\n","comments":"","outputs":1,"x":760.3571319580078,"y":1349.857021331787,"z":"2eed414c.ede50e","wires":[["309116d8.9b624a"]]},{"id":"309116d8.9b624a","type":"switchNode","name":"switch capability-name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.capability-name == $ss.capability-name`'>\n","comments":"","outputs":1,"x":1042.3571319580078,"y":1349.857021331787,"z":"2eed414c.ede50e","wires":[["45936ec1.758c9"]]},{"id":"45936ec1.758c9","type":"not-found","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1249.3571319580078,"y":1349.857021331787,"z":"2eed414c.ede50e","wires":[["b8b2343e.d81f58"]]},{"id":"e93f5357.c408e","type":"for","name":"for j in respurce-key[]","xml":"<for silentFailure='true' index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key_length`' >\n","comments":"","outputs":1,"x":888.21435546875,"y":1437.857177734375,"z":"2eed414c.ede50e","wires":[["e768587b.b2c608"]]},{"id":"e768587b.b2c608","type":"execute","name":"slistringUtils - check value for $","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >\n <parameter name=\"source\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`\" />\n <parameter name=\"target\" value=\"$\"/>\n \n","comments":"","outputs":1,"x":1165.21435546875,"y":1436.857177734375,"z":"2eed414c.ede50e","wires":[["419d4a7c.0714c4"]]},{"id":"419d4a7c.0714c4","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1395.21435546875,"y":1436.857177734375,"z":"2eed414c.ede50e","wires":[["ac809c2a.e7902"]]},{"id":"8e785194.b1cc6","type":"execute","name":"split resource-resolution-data","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\n <parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`' />\n <parameter name='regex' value='\\$\\{' />\n","comments":"","outputs":1,"x":1201.5000457763672,"y":1575.7143115997314,"z":"2eed414c.ede50e","wires":[[]]},{"id":"a068e82.37e7818","type":"set","name":"set","xml":"<set>\n <parameter name=\"tmp.s1\" value='`$resource-resolution-split[0]`'/>\n <parameter name=\"tmp.s2.s2\" value=''/>\n <parameter name=\"tmp.resolved.var.value\" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`'/>\n \n\n","comments":"","x":1138.7857360839844,"y":1636.285650253296,"z":"2eed414c.ede50e","wires":[]},{"id":"53bc4452.d2d82c","type":"execute","name":"split s2","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n <parameter name='ctx_memory_result_key' value='s2' />\n <parameter name='original_string' value='`$resource-resolution-split[1]`' />\n <parameter name='regex' value='\\}' />\n","comments":"","outputs":1,"x":1140.7857360839844,"y":1707.285650253296,"z":"2eed414c.ede50e","wires":[[]]},{"id":"78020424.b816cc","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1520.7857360839844,"y":1799.285650253296,"z":"2eed414c.ede50e","wires":[["b28d62f6.1f02c","ee486258.1c7fe"]]},{"id":"ee486258.1c7fe","type":"set","name":"set","xml":"<set>\n <parameter name=\"tmp.s2.s2\" value='`$s2[1]`'/>\n \n\n","comments":"","x":1689.7857360839844,"y":1833.285650253296,"z":"2eed414c.ede50e","wires":[]},{"id":"1a870566.9db06b","type":"set","name":"set","xml":"<set>\n <parameter name=\"tmp.s2.s1\" value='`$s2[0]`'/>\n \n\n","comments":"","x":1514.7857360839844,"y":1729.285650253296,"z":"2eed414c.ede50e","wires":[]},{"id":"78fe075e.f46998","type":"execute","name":"concat","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\n <parameter name='source' value='`$tmp.s1`' />\n <parameter name='target' value='`$tmp.resolved.var.value`' />\n <parameter name='outputPath' value='tmp.result' />\n","comments":"","outputs":1,"x":1144.0714263916016,"y":1955.9999985694885,"z":"2eed414c.ede50e","wires":[[]]},{"id":"72ca73d8.90947c","type":"switchNode","name":"switch s2 length","xml":"<switch test='`$s2_length`'>\n","comments":"","outputs":1,"x":1168.7857360839844,"y":1771.285650253296,"z":"2eed414c.ede50e","wires":[["7614f305.fb0e1c","9f867041.2f0b4"]]},{"id":"7614f305.fb0e1c","type":"outcome","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1354.7857360839844,"y":1729.285650253296,"z":"2eed414c.ede50e","wires":[["1a870566.9db06b"]]},{"id":"9f867041.2f0b4","type":"outcome","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1357.7857360839844,"y":1800.285650253296,"z":"2eed414c.ede50e","wires":[["78020424.b816cc"]]},{"id":"b28d62f6.1f02c","type":"set","name":"set","xml":"<set>\n <parameter name=\"tmp.s2.s1\" value='`$s2[0]`'/>\n \n\n","comments":"","x":1685.7857360839844,"y":1764.285650253296,"z":"2eed414c.ede50e","wires":[]},{"id":"10d75c04.4a43a4","type":"execute","name":"concat","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\n <parameter name='source' value='`$tmp.result`' />\n <parameter name='target' value='`$tmp.s2.s2`' />\n <parameter name='outputPath' value='tmp.result' />\n","comments":"","outputs":1,"x":1546.6429138183594,"y":2076.714319229126,"z":"2eed414c.ede50e","wires":[[]]},{"id":"d3d1db22.56e008","type":"switchNode","name":"switch tmp.s2.s2 null","xml":"<switch test=\"`$tmp.s2.s2 == ''`\">\n","comments":"","outputs":1,"x":1191.0714263916016,"y":2047.9999985694885,"z":"2eed414c.ede50e","wires":[["831b610a.e4f05","9d346e29.92e22"]]},{"id":"831b610a.e4f05","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":1391.6429138183594,"y":2013.714319229126,"z":"2eed414c.ede50e","wires":[[]]},{"id":"9d346e29.92e22","type":"other","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1395.6429138183594,"y":2076.714319229126,"z":"2eed414c.ede50e","wires":[["10d75c04.4a43a4"]]},{"id":"b9830f43.d7d8b","type":"set","name":"set result of resolution","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.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`' value='`$tmp.result`'/>\n \n\n","comments":"","x":1192.0714263916016,"y":2108.9999985694885,"z":"2eed414c.ede50e","wires":[]},{"id":"9eb906fd.1a56d8","type":"for","name":"for cn in vf-parameters-data.param[]","xml":"<for silentFailure='true' index='cn' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\n","comments":"","outputs":1,"x":1232.0714263916016,"y":1888.9999985694885,"z":"2eed414c.ede50e","wires":[["a4257282.69bd5"]]},{"id":"a4257282.69bd5","type":"switchNode","name":"switch param[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$cn].name == $tmp.s2.s1`'>\n","comments":"","outputs":1,"x":1521.0714263916016,"y":1887.9999985694885,"z":"2eed414c.ede50e","wires":[["59d239dc.21c0f8"]]},{"id":"59d239dc.21c0f8","type":"not-found","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1727.0714263916016,"y":1887.9999985694885,"z":"2eed414c.ede50e","wires":[["eb169026.04af4"]]},{"id":"eb169026.04af4","type":"set","name":"set","xml":"<set>\n <parameter name='tmp.resolved.var.value' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$cn].value`'/>\n \n\n","comments":"","x":1880.0714263916016,"y":1887.9999985694885,"z":"2eed414c.ede50e","wires":[]},{"id":"ac809c2a.e7902","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":919.0714263916016,"y":1500.9999985694885,"z":"2eed414c.ede50e","wires":[["8e785194.b1cc6","a068e82.37e7818","53bc4452.d2d82c","72ca73d8.90947c","9eb906fd.1a56d8","78fe075e.f46998","d3d1db22.56e008","b9830f43.d7d8b","d5392fd8.d89da"]]},{"id":"77607272.82d98c","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: param[].value with leading $: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`\"/>\n","comments":"","outputs":1,"x":1091.7856369018555,"y":527.4286179542542,"z":"2eed414c.ede50e","wires":[[]]},{"id":"d5392fd8.d89da","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: param[].value with leading $: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`\"/>\n","comments":"","outputs":1,"x":1128.9285736083984,"y":1501.0000076293945,"z":"2eed414c.ede50e","wires":[[]]},{"id":"d8b5acf7.f5e9e","type":"switchNode","name":"switch param_length null","xml":"<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length == ''`\">\n","comments":"","outputs":1,"x":574.5,"y":270,"z":"2eed414c.ede50e","wires":[["d9d991b7.4c7a"]]},{"id":"d9d991b7.4c7a","type":"outcome","name":"false","xml":"<outcome value='false'>","comments":"","outputs":1,"x":793.5,"y":269,"z":"2eed414c.ede50e","wires":[["c011bd0.1ca2f4"]]},{"id":"2fc1611b.146ece","type":"switchNode","name":"switch param_length null","xml":"<switch test=\"`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length == ''`\">\n","comments":"","outputs":1,"x":636.5,"y":1294,"z":"2eed414c.ede50e","wires":[["8fadf57.37efd08"]]},{"id":"8fadf57.37efd08","type":"outcome","name":"false","xml":"<outcome value='false'>","comments":"","outputs":1,"x":837.5,"y":1293,"z":"2eed414c.ede50e","wires":[["4a358999.23b6a8"]]},{"id":"83285695.56f8f8","type":"switchNode","name":"switch resource-key_length null","xml":"<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key_length == ''`\">\n","comments":"","outputs":1,"x":754.5,"y":397,"z":"2eed414c.ede50e","wires":[["17890ec9.2f6321"]]},{"id":"17890ec9.2f6321","type":"outcome","name":"false","xml":"<outcome value='false'>","comments":"","outputs":1,"x":973.5,"y":396,"z":"2eed414c.ede50e","wires":[["6d2ac1ec.6947d"]]},{"id":"b8b2343e.d81f58","type":"switchNode","name":"switch resource-key_length null","xml":"<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key_length == ''`\">\n","comments":"","outputs":1,"x":822.5,"y":1396,"z":"2eed414c.ede50e","wires":[["61744b7d.8c66d4"]]},{"id":"61744b7d.8c66d4","type":"outcome","name":"false","xml":"<outcome value='false'>","comments":"","outputs":1,"x":1041.5,"y":1395,"z":"2eed414c.ede50e","wires":[["e93f5357.c408e"]]}] \ No newline at end of file
+[{"id":"38132075.accad","type":"dgstart","name":"DGSTART","outputs":1,"x":146.66665649414062,"y":61.666664123535156,"z":"a8a36eb1.da5cb","wires":[["c336bfd5.df004"]]},{"id":"c07d9c2.a64e96","type":"method","name":"self-serve-capability-param-resolution","xml":"<method rpc='self-serve-capability-param-resolution' mode='sync'>","comments":"","outputs":1,"x":255.66664123535156,"y":125.95238590240479,"z":"a8a36eb1.da5cb","wires":[["43333f1c.57e84"]]},{"id":"c336bfd5.df004","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":454.6666564941406,"y":61.666664123535156,"z":"a8a36eb1.da5cb","wires":[["c07d9c2.a64e96"]]},{"id":"43333f1c.57e84","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":177.3809356689453,"y":189.8095245361328,"z":"a8a36eb1.da5cb","wires":[["3b32ea94.de4546","da8d0eec.e0b31"]]},{"id":"5d236dc5.28c664","type":"for","name":"for i in vnf-parameters-data.param[]","xml":"<for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n","comments":"","outputs":1,"x":956.6190795898438,"y":314.6666793823242,"z":"a8a36eb1.da5cb","wires":[["b655cf4b.9dcdd"]]},{"id":"b655cf4b.9dcdd","type":"switchNode","name":"switch capability-name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.capability-name == $ss.capability-name`'>\n","comments":"","outputs":1,"x":1237.7619438171387,"y":315.2381024360657,"z":"a8a36eb1.da5cb","wires":[["f4914b45.007328"]]},{"id":"f4914b45.007328","type":"not-found","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1442.7618942260742,"y":314.6666827201843,"z":"a8a36eb1.da5cb","wires":[["f9273a3b.485268"]]},{"id":"d382ad2f.0f0fa","type":"for","name":"for j in resource-key[]","xml":"<for silentFailure='true' index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key_length`' >\n","comments":"","outputs":1,"x":1054.0475463867188,"y":454.80953216552734,"z":"a8a36eb1.da5cb","wires":[["fe6e53c2.fd885"]]},{"id":"fe6e53c2.fd885","type":"execute","name":"slistringUtils - check value for $","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >\n <parameter name=\"source\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`\" />\n <parameter name=\"target\" value=\"$\"/>\n \n","comments":"","outputs":1,"x":1331.6190338134766,"y":453.8095407485962,"z":"a8a36eb1.da5cb","wires":[["3026cbf0.b32b04"]]},{"id":"3026cbf0.b32b04","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1561.0475463867188,"y":452.80953216552734,"z":"a8a36eb1.da5cb","wires":[["2089872f.dcdcc8"]]},{"id":"26c7ec4b.cf6d84","type":"execute","name":"split resource-resolution-data","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\n <parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`' />\n <parameter name='regex' value='\\$\\{' />\n","comments":"","outputs":1,"x":1397.761947631836,"y":575.380989074707,"z":"a8a36eb1.da5cb","wires":[[]]},{"id":"90a2a531.517608","type":"set","name":"set","xml":"<set>\n <parameter name=\"tmp.s1\" value='`$resource-resolution-split[0]`'/>\n <parameter name=\"tmp.s2.s2\" value=''/>\n <parameter name=\"tmp.resolved.var.value\" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`'/>\n \n\n","comments":"","x":1335.0476760864258,"y":647.0952568054199,"z":"a8a36eb1.da5cb","wires":[]},{"id":"19cc8c6a.9cd064","type":"execute","name":"split s2","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n <parameter name='ctx_memory_result_key' value='s2' />\n <parameter name='original_string' value='`$resource-resolution-split[1]`' />\n <parameter name='regex' value='\\}' />\n","comments":"","outputs":1,"x":1337.0476760864258,"y":718.0952568054199,"z":"a8a36eb1.da5cb","wires":[[]]},{"id":"51a3709.8177e9","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1717.0476760864258,"y":810.0952568054199,"z":"a8a36eb1.da5cb","wires":[["a2d00508.5f09f8","20734776.4ba718"]]},{"id":"20734776.4ba718","type":"set","name":"set","xml":"<set>\n <parameter name=\"tmp.s2.s2\" value='`$s2[1]`'/>\n \n\n","comments":"","x":1886.0476760864258,"y":844.0952568054199,"z":"a8a36eb1.da5cb","wires":[]},{"id":"5744a06d.fb8a2","type":"set","name":"set","xml":"<set>\n <parameter name=\"tmp.s2.s1\" value='`$s2[0]`'/>\n \n\n","comments":"","x":1711.0476760864258,"y":740.0952568054199,"z":"a8a36eb1.da5cb","wires":[]},{"id":"4678ba57.3d3cc4","type":"execute","name":"concat","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\n <parameter name='source' value='`$tmp.s1`' />\n <parameter name='target' value='`$tmp.resolved.var.value`' />\n <parameter name='outputPath' value='tmp.result' />\n","comments":"","outputs":1,"x":1328.9047393798828,"y":969.6666779518127,"z":"a8a36eb1.da5cb","wires":[[]]},{"id":"1698d8a7.734377","type":"switchNode","name":"switch s2 length","xml":"<switch test='`$s2_length`'>\n","comments":"","outputs":1,"x":1365.0476760864258,"y":782.0952568054199,"z":"a8a36eb1.da5cb","wires":[["d545785.d8c5a88","67ee90d6.ed2f5"]]},{"id":"d545785.d8c5a88","type":"outcome","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1551.0476760864258,"y":740.0952568054199,"z":"a8a36eb1.da5cb","wires":[["5744a06d.fb8a2"]]},{"id":"67ee90d6.ed2f5","type":"outcome","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1554.0476760864258,"y":811.0952568054199,"z":"a8a36eb1.da5cb","wires":[["51a3709.8177e9"]]},{"id":"a2d00508.5f09f8","type":"set","name":"set","xml":"<set>\n <parameter name=\"tmp.s2.s1\" value='`$s2[0]`'/>\n \n\n","comments":"","x":1882.0476760864258,"y":775.0952568054199,"z":"a8a36eb1.da5cb","wires":[]},{"id":"6dfe9858.462688","type":"execute","name":"concat","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\n <parameter name='source' value='`$tmp.result`' />\n <parameter name='target' value='`$tmp.s2.s2`' />\n <parameter name='outputPath' value='tmp.result' />\n","comments":"","outputs":1,"x":1732.9047393798828,"y":1092.6666779518127,"z":"a8a36eb1.da5cb","wires":[[]]},{"id":"f4dd527.c0d02b","type":"switchNode","name":"switch tmp.s2.s2 null","xml":"<switch test=\"`$tmp.s2.s2 == ''`\">\n","comments":"","outputs":1,"x":1375.9047393798828,"y":1061.6666779518127,"z":"a8a36eb1.da5cb","wires":[["3404454c.5e641a","28355807.bda818"]]},{"id":"3404454c.5e641a","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":1577.9047393798828,"y":1028.6666779518127,"z":"a8a36eb1.da5cb","wires":[[]]},{"id":"28355807.bda818","type":"other","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1580.9047393798828,"y":1091.6666779518127,"z":"a8a36eb1.da5cb","wires":[["6dfe9858.462688"]]},{"id":"9c9a923d.7bb19","type":"set","name":"set result of resolution","xml":"<set>\n <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`' value='`$tmp.result`'/>\n \n\n","comments":"","x":1376.9047393798828,"y":1122.6666779518127,"z":"a8a36eb1.da5cb","wires":[]},{"id":"75270f68.5e913","type":"for","name":"for cn in vnf-parameters-data.param[]","xml":"<for silentFailure='true' index='cn' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n","comments":"","outputs":1,"x":1422.9047393798828,"y":902.6666779518127,"z":"a8a36eb1.da5cb","wires":[["86f0255a.39da78"]]},{"id":"86f0255a.39da78","type":"switchNode","name":"switch param[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$cn].name == $tmp.s2.s1`'>\n","comments":"","outputs":1,"x":1704.6190795898438,"y":902.0952777862549,"z":"a8a36eb1.da5cb","wires":[["63f64d65.67f964"]]},{"id":"63f64d65.67f964","type":"not-found","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1899.6190795898438,"y":902.0952777862549,"z":"a8a36eb1.da5cb","wires":[["5c39dcf7.3dc1a4"]]},{"id":"5c39dcf7.3dc1a4","type":"set","name":"set","xml":"<set>\n <parameter name='tmp.resolved.var.value' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$cn].value`'/>\n \n\n","comments":"","x":2049.6190795898438,"y":902.0952777862549,"z":"a8a36eb1.da5cb","wires":[]},{"id":"2089872f.dcdcc8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1103.9047393798828,"y":514.6666779518127,"z":"a8a36eb1.da5cb","wires":[["26c7ec4b.cf6d84","90a2a531.517608","19cc8c6a.9cd064","1698d8a7.734377","75270f68.5e913","4678ba57.3d3cc4","f4dd527.c0d02b","9c9a923d.7bb19","a25ed728.dd05c8"]]},{"id":"3b32ea94.de4546","type":"switchNode","name":"switch capability-type","xml":"<switch test=\"`$ss.capability-type`\">\n","comments":"","outputs":1,"x":430.6190185546875,"y":256.95238876342773,"z":"a8a36eb1.da5cb","wires":[["95f464ec.61fa08","42a97c25.6c9024"]]},{"id":"95f464ec.61fa08","type":"not-found","name":"vnf","xml":"<outcome value='vnf'>\n","comments":"","outputs":1,"x":621.3332824707031,"y":256.3810043334961,"z":"a8a36eb1.da5cb","wires":[["f5e3f4b3.e93ca8"]]},{"id":"42a97c25.6c9024","type":"not-found","name":"vf-module","xml":"<outcome value='vf-module'>\n","comments":"","outputs":1,"x":640.7618713378906,"y":1281.9524459838867,"z":"a8a36eb1.da5cb","wires":[["1968f235.a1456e"]]},{"id":"45f374cf.bd9c4c","type":"for","name":"for i in vf-parameters-data.param[]","xml":"<for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\n","comments":"","outputs":1,"x":996.1904449462891,"y":1336.5237007141113,"z":"a8a36eb1.da5cb","wires":[["49be268c.a2c728"]]},{"id":"49be268c.a2c728","type":"switchNode","name":"switch capability-name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.capability-name == $ss.capability-name`'>\n","comments":"","outputs":1,"x":1278.190444946289,"y":1336.5237007141113,"z":"a8a36eb1.da5cb","wires":[["56faaf72.2c084"]]},{"id":"56faaf72.2c084","type":"not-found","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1485.190444946289,"y":1336.5237007141113,"z":"a8a36eb1.da5cb","wires":[["498a605e.795d9"]]},{"id":"5089ff8e.aad4f","type":"for","name":"for j in respurce-key[]","xml":"<for silentFailure='true' index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key_length`' >\n","comments":"","outputs":1,"x":1124.0476684570312,"y":1424.5238571166992,"z":"a8a36eb1.da5cb","wires":[["f0c07df5.5b959"]]},{"id":"f0c07df5.5b959","type":"execute","name":"slistringUtils - check value for $","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >\n <parameter name=\"source\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`\" />\n <parameter name=\"target\" value=\"$\"/>\n \n","comments":"","outputs":1,"x":1401.0476684570312,"y":1423.5238571166992,"z":"a8a36eb1.da5cb","wires":[["7c2f743d.18f8bc"]]},{"id":"7c2f743d.18f8bc","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1631.0476684570312,"y":1423.5238571166992,"z":"a8a36eb1.da5cb","wires":[["8bf6c63b.85a908"]]},{"id":"45027a82.e46644","type":"execute","name":"split resource-resolution-data","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\n <parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`' />\n <parameter name='regex' value='\\$\\{' />\n","comments":"","outputs":1,"x":1437.3333587646484,"y":1562.3809909820557,"z":"a8a36eb1.da5cb","wires":[[]]},{"id":"e2b0f3c5.7545e","type":"set","name":"set","xml":"<set>\n <parameter name=\"tmp.s1\" value='`$resource-resolution-split[0]`'/>\n <parameter name=\"tmp.s2.s2\" value=''/>\n <parameter name=\"tmp.resolved.var.value\" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`'/>\n \n\n","comments":"","x":1374.6190490722656,"y":1622.9523296356201,"z":"a8a36eb1.da5cb","wires":[]},{"id":"2d2c2922.5f86f6","type":"execute","name":"split s2","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n <parameter name='ctx_memory_result_key' value='s2' />\n <parameter name='original_string' value='`$resource-resolution-split[1]`' />\n <parameter name='regex' value='\\}' />\n","comments":"","outputs":1,"x":1376.6190490722656,"y":1693.9523296356201,"z":"a8a36eb1.da5cb","wires":[[]]},{"id":"850c8d89.591a3","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1756.6190490722656,"y":1785.9523296356201,"z":"a8a36eb1.da5cb","wires":[["2526c43b.35178c","cac5a2f5.0d5a1"]]},{"id":"cac5a2f5.0d5a1","type":"set","name":"set","xml":"<set>\n <parameter name=\"tmp.s2.s2\" value='`$s2[1]`'/>\n \n\n","comments":"","x":1925.6190490722656,"y":1819.9523296356201,"z":"a8a36eb1.da5cb","wires":[]},{"id":"4d102ff5.9cba4","type":"set","name":"set","xml":"<set>\n <parameter name=\"tmp.s2.s1\" value='`$s2[0]`'/>\n \n\n","comments":"","x":1750.6190490722656,"y":1715.9523296356201,"z":"a8a36eb1.da5cb","wires":[]},{"id":"3ea82f9.dd4e0d","type":"execute","name":"concat","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\n <parameter name='source' value='`$tmp.s1`' />\n <parameter name='target' value='`$tmp.resolved.var.value`' />\n <parameter name='outputPath' value='tmp.result' />\n","comments":"","outputs":1,"x":1379.9047393798828,"y":1942.6666779518127,"z":"a8a36eb1.da5cb","wires":[[]]},{"id":"9e17a20d.92733","type":"switchNode","name":"switch s2 length","xml":"<switch test='`$s2_length`'>\n","comments":"","outputs":1,"x":1404.6190490722656,"y":1757.9523296356201,"z":"a8a36eb1.da5cb","wires":[["e23af0c.b948b1","14fdc731.dfc139"]]},{"id":"e23af0c.b948b1","type":"outcome","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1590.6190490722656,"y":1715.9523296356201,"z":"a8a36eb1.da5cb","wires":[["4d102ff5.9cba4"]]},{"id":"14fdc731.dfc139","type":"outcome","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1593.6190490722656,"y":1786.9523296356201,"z":"a8a36eb1.da5cb","wires":[["850c8d89.591a3"]]},{"id":"2526c43b.35178c","type":"set","name":"set","xml":"<set>\n <parameter name=\"tmp.s2.s1\" value='`$s2[0]`'/>\n \n\n","comments":"","x":1921.6190490722656,"y":1750.9523296356201,"z":"a8a36eb1.da5cb","wires":[]},{"id":"3bf0cd93.76b4a2","type":"execute","name":"concat","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\n <parameter name='source' value='`$tmp.result`' />\n <parameter name='target' value='`$tmp.s2.s2`' />\n <parameter name='outputPath' value='tmp.result' />\n","comments":"","outputs":1,"x":1782.4762268066406,"y":2063.38099861145,"z":"a8a36eb1.da5cb","wires":[[]]},{"id":"9fbf2eed.f76d1","type":"switchNode","name":"switch tmp.s2.s2 null","xml":"<switch test=\"`$tmp.s2.s2 == ''`\">\n","comments":"","outputs":1,"x":1426.9047393798828,"y":2034.6666779518127,"z":"a8a36eb1.da5cb","wires":[["dfe12108.3c451","d9e83e57.1f044"]]},{"id":"dfe12108.3c451","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":1627.4762268066406,"y":2000.3809986114502,"z":"a8a36eb1.da5cb","wires":[[]]},{"id":"d9e83e57.1f044","type":"other","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1631.4762268066406,"y":2063.38099861145,"z":"a8a36eb1.da5cb","wires":[["3bf0cd93.76b4a2"]]},{"id":"82538112.2772d","type":"set","name":"set result of resolution","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.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`' value='`$tmp.result`'/>\n \n\n","comments":"","x":1427.9047393798828,"y":2095.6666779518127,"z":"a8a36eb1.da5cb","wires":[]},{"id":"6d023a73.719b64","type":"for","name":"for cn in vf-parameters-data.param[]","xml":"<for silentFailure='true' index='cn' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\n","comments":"","outputs":1,"x":1467.9047393798828,"y":1875.6666779518127,"z":"a8a36eb1.da5cb","wires":[["d2cfd478.963a98"]]},{"id":"d2cfd478.963a98","type":"switchNode","name":"switch param[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$cn].name == $tmp.s2.s1`'>\n","comments":"","outputs":1,"x":1756.9047393798828,"y":1874.6666779518127,"z":"a8a36eb1.da5cb","wires":[["921027a8.5df8e8"]]},{"id":"921027a8.5df8e8","type":"not-found","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1962.9047393798828,"y":1874.6666779518127,"z":"a8a36eb1.da5cb","wires":[["3fd35702.d39c68"]]},{"id":"3fd35702.d39c68","type":"set","name":"set","xml":"<set>\n <parameter name='tmp.resolved.var.value' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$cn].value`'/>\n \n\n","comments":"","x":2115.904739379883,"y":1874.6666779518127,"z":"a8a36eb1.da5cb","wires":[]},{"id":"8bf6c63b.85a908","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1154.9047393798828,"y":1487.6666779518127,"z":"a8a36eb1.da5cb","wires":[["45027a82.e46644","e2b0f3c5.7545e","2d2c2922.5f86f6","9e17a20d.92733","6d023a73.719b64","3ea82f9.dd4e0d","9fbf2eed.f76d1","82538112.2772d","f7783fb5.37a6"]]},{"id":"a25ed728.dd05c8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: param[].value with leading $: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`\"/>\n","comments":"","outputs":1,"x":1327.6189498901367,"y":514.0952973365784,"z":"a8a36eb1.da5cb","wires":[[]]},{"id":"f7783fb5.37a6","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: param[].value with leading $: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`\"/>\n","comments":"","outputs":1,"x":1364.7618865966797,"y":1487.6666870117188,"z":"a8a36eb1.da5cb","wires":[[]]},{"id":"f5e3f4b3.e93ca8","type":"switchNode","name":"switch param_length null","xml":"<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length == ''`\">\n","comments":"","outputs":1,"x":810.3333129882812,"y":256.6666793823242,"z":"a8a36eb1.da5cb","wires":[["f043a414.c6fb18"]]},{"id":"f043a414.c6fb18","type":"outcome","name":"false","xml":"<outcome value='false'>","comments":"","outputs":1,"x":1029.3333129882812,"y":255.66667938232422,"z":"a8a36eb1.da5cb","wires":[["5d236dc5.28c664"]]},{"id":"1968f235.a1456e","type":"switchNode","name":"switch param_length null","xml":"<switch test=\"`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length == ''`\">\n","comments":"","outputs":1,"x":872.3333129882812,"y":1280.6666793823242,"z":"a8a36eb1.da5cb","wires":[["ef022e86.c8ea3"]]},{"id":"ef022e86.c8ea3","type":"outcome","name":"false","xml":"<outcome value='false'>","comments":"","outputs":1,"x":1073.3333129882812,"y":1279.6666793823242,"z":"a8a36eb1.da5cb","wires":[["45f374cf.bd9c4c"]]},{"id":"f9273a3b.485268","type":"switchNode","name":"switch resource-key_length null","xml":"<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key_length == ''`\">\n","comments":"","outputs":1,"x":990.3333129882812,"y":383.6666793823242,"z":"a8a36eb1.da5cb","wires":[["1569720b.1b48de"]]},{"id":"1569720b.1b48de","type":"outcome","name":"false","xml":"<outcome value='false'>","comments":"","outputs":1,"x":1209.3333129882812,"y":382.6666793823242,"z":"a8a36eb1.da5cb","wires":[["d382ad2f.0f0fa"]]},{"id":"498a605e.795d9","type":"switchNode","name":"switch resource-key_length null","xml":"<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key_length == ''`\">\n","comments":"","outputs":1,"x":1058.3333129882812,"y":1382.6666793823242,"z":"a8a36eb1.da5cb","wires":[["b5361b06.4c14d8"]]},{"id":"b5361b06.4c14d8","type":"outcome","name":"false","xml":"<outcome value='false'>","comments":"","outputs":1,"x":1277.3333129882812,"y":1381.6666793823242,"z":"a8a36eb1.da5cb","wires":[["5089ff8e.aad4f"]]},{"id":"da8d0eec.e0b31","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=\"DONE: self-serve-capability-param-resolution\"/>","comments":"","outputs":1,"x":339.99997329711914,"y":1501.6665592193604,"z":"a8a36eb1.da5cb","wires":[[]]}] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-mS-vlan-tag-assign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-mS-vlan-tag-assign.json
index d1f15d82..30852194 100644
--- a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-mS-vlan-tag-assign.json
+++ b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-mS-vlan-tag-assign.json
@@ -1 +1 @@
-[{"id":"b50134a.9135fc8","type":"dgstart","name":"DGSTART","outputs":1,"x":119.99999237060547,"y":45,"z":"18bab70b.485059","wires":[["2ad7e6db.599bfa"]]},{"id":"2c1675b4.daf71a","type":"method","name":"method self-serve-mS-vlan-tag-assign","xml":"<method rpc='self-serve-mS-vlan-tag-assign' mode='sync'>\n","comments":"","outputs":1,"x":255.78571319580078,"y":102.1269884109497,"z":"18bab70b.485059","wires":[["bd716c4b.80fed"]]},{"id":"bd716c4b.80fed","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":149.3214340209961,"y":188.4286069869995,"z":"18bab70b.485059","wires":[["def524db.5fdc28","4f232482.f4e9fc","afe46b05.33f0c8"]]},{"id":"2ad7e6db.599bfa","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":392.85713958740234,"y":44.42856693267822,"z":"18bab70b.485059","wires":[["2c1675b4.daf71a"]]},{"id":"def524db.5fdc28","type":"switchNode","name":"switch: ss.capability-name","xml":"<switch test='`$ss.capability-name`'>\n","comments":"","outputs":1,"x":383.75,"y":189.75000476837158,"z":"18bab70b.485059","wires":[["451a9447.eefd0c"]]},{"id":"451a9447.eefd0c","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":608.7500228881836,"y":190.2500033378601,"z":"18bab70b.485059","wires":[["d536f4e1.df3898"]]},{"id":"d536f4e1.df3898","type":"returnFailure","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=\"ss.capability-name is null\" />\n","comments":"","x":768.6666946411133,"y":190.361102104187,"z":"18bab70b.485059","wires":[]},{"id":"4f232482.f4e9fc","type":"switchNode","name":"switch: ss.capability-action","xml":"<switch test='`$ss.capability-action`'>\n","comments":"","outputs":1,"x":385.0000190734863,"y":239.75000524520874,"z":"18bab70b.485059","wires":[["2ef56591.78da4a","95f263a9.16cd2","bd2b8255.e75cf"]]},{"id":"2ef56591.78da4a","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":608.5000152587891,"y":240.00000524520874,"z":"18bab70b.485059","wires":[["d591ce18.551bc"]]},{"id":"d591ce18.551bc","type":"returnFailure","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=\"ss.capability-action is null\" />\n","comments":"","x":768.4166870117188,"y":240.11110401153564,"z":"18bab70b.485059","wires":[]},{"id":"95f263a9.16cd2","type":"outcome","name":"assign","xml":"<outcome value='assign'>","comments":"","outputs":1,"x":607.2500114440918,"y":295.00000858306885,"z":"18bab70b.485059","wires":[["ff4e08f7.54efb8"]]},{"id":"8db2f25b.47c74","type":"call","name":"call self-serve-capability-param-resolution","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-capability-param-resolution' mode='sync' >\n","comments":"","outputs":1,"x":1079.6666793823242,"y":295.2500123977661,"z":"18bab70b.485059","wires":[["ae4c3885.2165f8"]]},{"id":"ae4c3885.2165f8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1335.666660308838,"y":295.25000858306885,"z":"18bab70b.485059","wires":[["6fc96497.0f616c"]]},{"id":"6fc96497.0f616c","type":"returnFailure","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=\"`'Not all assignments are resolved' + $error-message`\" />\n","comments":"","x":1494.4166412353516,"y":295.2500047683716,"z":"18bab70b.485059","wires":[]},{"id":"aa1a1fd6.29d0e","type":"set","name":"set tmp.ss.param.capability-name","xml":"<set>\n<parameter name='tmp.ss.param.capability-name' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\n","comments":"","x":1339.4206619262695,"y":399.603178024292,"z":"18bab70b.485059","wires":[]},{"id":"2eba53d8.1a760c","type":"for","name":"for pidx in param_length","xml":"<for silentFailure='true' index=\"pidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\">","comments":"","outputs":1,"x":1027.6348876953125,"y":399.6746482849121,"z":"18bab70b.485059","wires":[["35b91f64.3fbf1","aa1a1fd6.29d0e"]]},{"id":"35b91f64.3fbf1","type":"switchNode","name":"switch: capability-name - ss vs param","xml":"<switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\n","comments":"","outputs":1,"x":1352.3491897583008,"y":446.0318202972412,"z":"18bab70b.485059","wires":[["83190506.6dca78"]]},{"id":"83190506.6dca78","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1593.9563522338867,"y":445.35325145721436,"z":"18bab70b.485059","wires":[["90cb09fc.8600e8"]]},{"id":"5ec7f9e0.20e438","type":"switchNode","name":"switch: resource-key[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].name`'>\n","comments":"","outputs":1,"x":1704.6390953063965,"y":656.5516810417175,"z":"18bab70b.485059","wires":[["dc237804.389ca8","ad7cda11.eb06d8","a65f01aa.58f09","b7dea22f.e6446","2622e5a6.a4f91a","f0b67cc6.43b0e"]]},{"id":"dc237804.389ca8","type":"outcome","name":"resource-name","xml":"<outcome value='resource-name'>\n","comments":"","outputs":1,"x":1972.944736480713,"y":696.3016695976257,"z":"18bab70b.485059","wires":[["1fa65740.7b0049"]]},{"id":"1fa65740.7b0049","type":"set","name":"set vt.request[].resource-name","xml":"<set>\n<parameter name='vt.request[$qidx].resource-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2288.4446907043457,"y":696.0516657829285,"z":"18bab70b.485059","wires":[]},{"id":"a65f01aa.58f09","type":"outcome","name":"resource-value","xml":"<outcome value='resource-value'>\n","comments":"","outputs":1,"x":1975.0280113220215,"y":862.0239400863647,"z":"18bab70b.485059","wires":[["cfabc16e.d22c9"]]},{"id":"5c9fdcb3.974444","type":"set","name":"set vt.request[].resource-value","xml":"<set>\n<parameter name='vt.request[$qidx].resource-value' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2677.028018951416,"y":860.7739381790161,"z":"18bab70b.485059","wires":[]},{"id":"ad7cda11.eb06d8","type":"outcome","name":"vlan-tag-key","xml":"<outcome value='vlan-tag-key'>\n","comments":"","outputs":1,"x":1964.5400352478027,"y":779.4127435684204,"z":"18bab70b.485059","wires":[["d54cf52e.ff1ae8"]]},{"id":"d54cf52e.ff1ae8","type":"set","name":"set vt.request[].vlan-tag-key","xml":"<set>\n<parameter name='vt.request[$qidx].vlan-tag-key' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2283.5400352478027,"y":778.1627435684204,"z":"18bab70b.485059","wires":[]},{"id":"ff4e08f7.54efb8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":780.0000228881836,"y":295.25000953674316,"z":"18bab70b.485059","wires":[["2eba53d8.1a760c","1bfa8a0a.3559a6","8db2f25b.47c74","30649dde.6e1b62","e04ad205.115a6"]]},{"id":"32384dfc.cf1702","type":"for","name":"for kidx in resource-key_length","xml":"<for silentFailure='true' index=\"kidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key_length`\">","comments":"","outputs":1,"x":1425.500171661377,"y":656.4127917289734,"z":"18bab70b.485059","wires":[["5ec7f9e0.20e438"]]},{"id":"afe46b05.33f0c8","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss.ms-vlan-tag.log' />\n","comments":"","outputs":1,"x":341.25,"y":405.0000066757202,"z":"18bab70b.485059","wires":[[]]},{"id":"f0b67cc6.43b0e","type":"outcome","name":"policy-instance-name","xml":"<outcome value='policy-instance-name'>\n","comments":"","outputs":1,"x":1991.8333549499512,"y":656.0515933036804,"z":"18bab70b.485059","wires":[["944e6f13.7b1b3"]]},{"id":"944e6f13.7b1b3","type":"set","name":"set vt.request[].policy-instance-name","xml":"<set>\n<parameter name='vt.request[$qidx].policy-instance-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2306.194309234619,"y":656.1627049446106,"z":"18bab70b.485059","wires":[]},{"id":"b7dea22f.e6446","type":"outcome","name":"scope-id","xml":"<outcome value='scope-id'>\n","comments":"","outputs":1,"x":1953.8175621032715,"y":737.0238161087036,"z":"18bab70b.485059","wires":[["49fb58d2.3a5e18"]]},{"id":"49fb58d2.3a5e18","type":"set","name":"set vt.request[].scope-id","xml":"<set>\n<parameter name='vt.request[$qidx].scope-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2272.0675010681152,"y":737.0237836837769,"z":"18bab70b.485059","wires":[]},{"id":"90cb09fc.8600e8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1186.3807983398438,"y":608.9524269104004,"z":"18bab70b.485059","wires":[["32384dfc.cf1702","a912ffc8.e236b","34dc4b09.f22ba4","40ce7218.5cdf2c","93de8687.be3158"]]},{"id":"1bfa8a0a.3559a6","type":"set","name":"set qidx = 0, ss.vt. = null","xml":"<set>\n<parameter name='qidx' value='0' />\n<parameter name='ss.vt.' value='' />\n","comments":"","x":1028.2857208251953,"y":348.85713386535645,"z":"18bab70b.485059","wires":[]},{"id":"a912ffc8.e236b","type":"set","name":"qidx++","xml":"<set>\n<parameter name='qidx' value='`$qidx + 1`' />\n","comments":"","x":1348.9880828857422,"y":877.5595850944519,"z":"18bab70b.485059","wires":[]},{"id":"34dc4b09.f22ba4","type":"set","name":"set vt.request_length = qidx","xml":"<set>\n<parameter name='vt.request_length' value='`$qidx`' />\n","comments":"","x":1413.9880142211914,"y":924.5596314072609,"z":"18bab70b.485059","wires":[]},{"id":"794c3bd7.52c604","type":"set","name":"set Test Inputs","xml":"<set>\n<parameter name='vnf-index' value='0' />\n<parameter name='vf-module-index' value='0' />\n<parameter name='ss.capability-name' value='mS-vlan-tag-assign' />\n<parameter name='ss.capability-action' value='assign' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vnf-topology.sdnc-generated-cloud-resources' value='true' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-topology.sdnc-generated-cloud-resources' value = 'true' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param_length' value = '11' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].name' value = 'vmxvpfe_name_0' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].value' value = 'bogus-vnfc-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].name' value = 'vnfc-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].value' value = '${vmxvpfe_name_0}' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[2].name' value = 'vm_name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[2].value' value = 'bogus-vnfc-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[3].name' value = 'vm-type' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[3].value' value = 'oam' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[4].name' value = 'nfc-function' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[4].value' value = 'data' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[5].name' value = 'nfc-naming-code' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[5].value' value = 'dummy-naming-code' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[6].name' value = 'vnfc-model-customization-uuid' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[6].value' value = 'bbbb-99999' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[7].name' value = 'vnfc-model-invariant-uuid' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[7].value' value = 'aaaaa-10000' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[8].name' value = 'vnfc-model-version' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[8].value' value = 'model1' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].name' value = 'vlan-tag-1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].value' value = '${vlan-tag-1v}' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[0].name' value = 'policy-instance-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[0].value' value = 'JQIN1810SRIOV.Config_MS_SRIOV_VlanTag_1810_ADIOD_VPE.*' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[1].name' value = 'resource-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[1].value' value = 'vlan-tag-1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[2].name' value = 'resource-value' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[2].value' value = '' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[3].name' value = 'scope-id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[3].value' value = 'MTCLL2238F' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[4].name' value = 'vlan-tag-key' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[4].value' value = 'dvncom4003' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[5].name' value = 'vlan-type' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[5].value' value = 'vlan-id-outer' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[6].name' value = 'vnfc-network-role' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[6].value' value = 'network-role-1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key_length' value = '7' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.status' value = 'PENDING' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.capability-name' value = 'mS-vlan-tag-assign' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].name' value = 'vlan-tag-2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].value' value = '[3503, 4001, 4002]' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[0].name' value = 'policy-instance-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[0].value' value = 'JQIN1810SRIOV.Config_MS_SRIOV_VlanTag_1810_ADIOD_VPE.*' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[1].name' value = 'resource-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[1].value' value = 'vlan-tag-2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[2].name' value = 'resource-value' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[2].value' value = '[3503, 4001, 4002]' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[3].name' value = 'scope-id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[3].value' value = 'MTCLL2238F' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[4].name' value = 'vlan-tag-key' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[4].value' value = 'dvncom4003' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[5].name' value = 'vlan-type' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[5].value' value = 'vlan-id-filter' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[6].name' value = 'vnfc-network-role' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[6].value' value = 'network-role-2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key_length' value = '7' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.status' value = 'PENDING' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.capability-name' value = 'mS-vlan-tag-assign' />","comments":"","x":849.7619171142578,"y":54.04762268066406,"z":"18bab70b.485059","wires":[]},{"id":"4a7eb9fd.2690f8","type":"execute","name":"execute PropertiesNode","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":880.1429061889648,"y":93.80953407287598,"z":"18bab70b.485059","wires":[[]]},{"id":"93de8687.be3158","type":"set","name":"set ss.vt.param[].index","xml":"<set>\n<parameter name='ss.vt.param[$qidx].index' value='`$pidx`' />\n","comments":"","x":1399.238052368164,"y":609.2381477355957,"z":"18bab70b.485059","wires":[]},{"id":"40ce7218.5cdf2c","type":"set","name":"set ss.vt.param_length = qidx","xml":"<set>\n<parameter name='ss.vt.param_length' value='`$qidx`' />\n","comments":"","x":1418.702278137207,"y":971.8452777862549,"z":"18bab70b.485059","wires":[]},{"id":"9fc4e623.79ede8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Failed to get vlan-tag assisgnment from mS\" />\n","comments":"","x":1671.5115585327148,"y":1153.702296257019,"z":"18bab70b.485059","wires":[]},{"id":"30649dde.6e1b62","type":"execute","name":"execute RestApiCallNode","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.ss.mS.vlan.tag.assign.templatefile`\" />\n <parameter name='restapiUrl' value='`$prop.vt.mS.url + $tmp.ss-vlan-tag-url`' />\n <parameter name='restapiUser' value='`$prop.vt.mS.user`' />\n <parameter name='restapiPassword' value='`$prop.vt.mS.pwd`' />\n <parameter name='format' value='json' />\n <parameter name='httpMethod' value='POST' />\n <parameter name=\"responsePrefix\" value=\"vtResp\" />","comments":"","outputs":1,"x":1044.7499160766602,"y":1148.0879468917847,"z":"18bab70b.485059","wires":[["e1c863.24aa87a","68bb2ed8.54e3f","d31c1d11.cc361"]]},{"id":"e1c863.24aa87a","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1277.7720527648926,"y":1148.6575632095337,"z":"18bab70b.485059","wires":[["46abd18b.bc76a"]]},{"id":"68bb2ed8.54e3f","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1268.7721405029297,"y":1061.4433135986328,"z":"18bab70b.485059","wires":[["46abd18b.bc76a"]]},{"id":"d31c1d11.cc361","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1273.9507904052734,"y":1249.2288808822632,"z":"18bab70b.485059","wires":[["acb6c699.9add58"]]},{"id":"46abd18b.bc76a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1468.4759140014648,"y":1061.0875120162964,"z":"18bab70b.485059","wires":[["9fc4e623.79ede8","b6db0666.f88248"]]},{"id":"e6de6f19.d5c2b","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$vt-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":2061.333465576172,"y":1104.9880619049072,"z":"18bab70b.485059","wires":[]},{"id":"b6db0666.f88248","type":"for","name":"for i in ss.vt.param_length","xml":"<for index=\"i\" start=\"0\" end=\"`$ss.vt.param_length`\">","comments":"","outputs":1,"x":1723.4048156738281,"y":1060.7382593154907,"z":"18bab70b.485059","wires":[["e6de6f19.d5c2b","dd87e82f.6f3328"]]},{"id":"adc7a196.ee98f","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1856.4286193847656,"y":1250.0001058578491,"z":"18bab70b.485059","wires":[["f62c6513.3ae628","e6de6f19.d5c2b"]]},{"id":"acb6c699.9add58","type":"switchNode","name":"switch: vtResp.error-code","xml":"<switch test='`$vtResp.error-code`'>\n","comments":"","outputs":1,"x":1483.6308670043945,"y":1249.3927602767944,"z":"18bab70b.485059","wires":[["6c2735c5.2a7efc","1291f857.20fa58"]]},{"id":"6c2735c5.2a7efc","type":"outcomeTrue","name":"500","xml":"<outcome value='500'>\n","comments":"","outputs":1,"x":1695.8808631896973,"y":1249.1427602767944,"z":"18bab70b.485059","wires":[["adc7a196.ee98f"]]},{"id":"1291f857.20fa58","type":"outcomeTrue","name":"200","xml":"<outcome value='200'>\n","comments":"","outputs":1,"x":1697.3808670043945,"y":1291.8927602767944,"z":"18bab70b.485059","wires":[["3e5e9da0.cfebc2"]]},{"id":"f62c6513.3ae628","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500'/>\n<parameter name='error-message' value=\"`'Encountered error from mS-vlan-tag-assign with error-code = ' + $vtResp.error-code + ' and error-message = ' + $vtResp.error-message`\" />\n","comments":"","x":2042.7975463867188,"y":1249.559455871582,"z":"18bab70b.485059","wires":[]},{"id":"dd87e82f.6f3328","type":"set","name":"set vt-index","xml":"<set>\n<parameter name='vt-index' value='`$ss.vt.param[$i].index`' />\n","comments":"","x":1956.7975769042969,"y":1059.809471130371,"z":"18bab70b.485059","wires":[]},{"id":"ed42d5f5.7bb7e8","type":"for","name":"for vtidx in ss.vt.param_length","xml":"<for silentFailure='true' index=\"vtidx\" start=\"0\" end=\"`$ss.vt.param_length`\">","comments":"","outputs":1,"x":1274.2620086669922,"y":2020.7263746261597,"z":"18bab70b.485059","wires":[["3ea4540b.98db0c","3e079b08.0374c4"]]},{"id":"98a42b2e.eb9288","type":"call","name":"call generate-cp-instance-id","xml":"<call module=\"GENERIC-RESOURCE-API\" rpc=\"generate-cp-instance-id\" mode=\"sync\" >\n","comments":"","outputs":1,"x":2850.012279510498,"y":2474.4406089782715,"z":"18bab70b.485059","wires":[["7d39e063.15c8f"]]},{"id":"7d39e063.15c8f","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3058.5836732046946,"y":2474.5835707528254,"z":"18bab70b.485059","wires":[["3e10793b.9a74f6"]]},{"id":"3e10793b.9a74f6","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='500'/>\n\t<parameter name='error-message' value=\"`'Error in generating cp-instance-id in SDNC; ' + $error-message.generate-cp-instance-id`\" />\n","comments":"","x":3217.7623081207275,"y":2473.6671714782715,"z":"18bab70b.485059","wires":[]},{"id":"5e6c14c9.1866fc","type":"execute","name":"param[$vt-index].value contains $","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >\n <parameter name='source' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].value`' />\n <parameter name='target' value='$' />\n","comments":"","outputs":1,"x":1253.083366394043,"y":2263.155330657959,"z":"18bab70b.485059","wires":[["31b23028.25db7","d40ac253.f8c87"]]},{"id":"f6adfc0f.4da25","type":"set","name":"set capability-name = INPUT","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.vf-module-parameters.param[$vt-index].resource-resolution-data.capability-name' \n\tvalue='INPUT' />\n","comments":"","x":1917.9887161254883,"y":2606.155107498169,"z":"18bab70b.485059","wires":[]},{"id":"31b23028.25db7","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1500.1314392089844,"y":2605.298038482666,"z":"18bab70b.485059","wires":[["36cb5ee3.07d222"]]},{"id":"d40ac253.f8c87","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1506.7976531982422,"y":2262.4409923553467,"z":"18bab70b.485059","wires":[["d9d5a0ca.540d9"]]},{"id":"4f8196dd.da2ac8","type":"set","name":"set param[].value","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.vf-module-parameters.param[$vt-index].value' \n\tvalue='`$vtResp.output[$oidx].resource-value`' />\n","comments":"","x":2097.1545639038086,"y":2264.7978496551514,"z":"18bab70b.485059","wires":[]},{"id":"8d16c621.8bce48","type":"for","name":"for oidx in vtResp.output_length","xml":"<for silentFailure='true' index=\"oidx\" start=\"0\" end=\"`$vtResp.output_length`\">","comments":"","outputs":1,"x":984.7975368499756,"y":2020.9404919147491,"z":"18bab70b.485059","wires":[["ed42d5f5.7bb7e8"]]},{"id":"3ea4540b.98db0c","type":"switchNode","name":"switch: resource-name = param[].name","xml":"<switch test='`$vtResp.output[$oidx].resource-name == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].name`'>\n","comments":"","outputs":1,"x":1588.7975387573242,"y":2073.4404888153076,"z":"18bab70b.485059","wires":[["2096c67.8fa4b3a"]]},{"id":"2096c67.8fa4b3a","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1835.5475387573242,"y":2073.4404888153076,"z":"18bab70b.485059","wires":[["5e6c14c9.1866fc"]]},{"id":"3e079b08.0374c4","type":"set","name":"set vt-index","xml":"<set>\n<parameter name='vt-index' value='`$ss.vt.param[$vtidx].index`' />\n","comments":"","x":1505.0475387573242,"y":2020.9404888153076,"z":"18bab70b.485059","wires":[]},{"id":"d9d5a0ca.540d9","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1876.904525756836,"y":2264.7978229522705,"z":"18bab70b.485059","wires":[["4f8196dd.da2ac8","3f724396.103f9c","4ea576ac.864a98"]]},{"id":"ac0615e9.657588","type":"for","name":"for sidx in stored-elements_length","xml":"<for silentFailure='true' index=\"sidx\" start=\"0\" end=\"`$vtResp.output[$oidx].stored-elements_length`\">","comments":"","outputs":1,"x":2869.4406204223633,"y":2525.4406089782715,"z":"18bab70b.485059","wires":[["5ceae0f7.00dd7"]]},{"id":"2dfd3dc1.031cc2","type":"set","name":"set vnfc-network-data[$idx].vnfc-network-role","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.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].vnfc-network-role' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2901.4407501220703,"y":2429.440608024597,"z":"18bab70b.485059","wires":[]},{"id":"3dc5de79.fddbd2","type":"switchNode","name":"switch: resource-key[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].resource-resolution-data.resource-key[$kidx].name`'>\n","comments":"","outputs":1,"x":2422.2262420654297,"y":2359.654755592346,"z":"18bab70b.485059","wires":[["2952f1a9.ebdc1e"]]},{"id":"3f724396.103f9c","type":"for","name":"for kidx in resource-key_length","xml":"<for silentFailure='true' index=\"kidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].resource-resolution-data.resource-key_length`\">","comments":"","outputs":1,"x":2143.08731842041,"y":2359.515866279602,"z":"18bab70b.485059","wires":[["3dc5de79.fddbd2"]]},{"id":"2952f1a9.ebdc1e","type":"outcome","name":"vnfc-network-role","xml":"<outcome value='vnfc-network-role'>\n","comments":"","outputs":1,"x":2669.4205017089844,"y":2359.154667854309,"z":"18bab70b.485059","wires":[["5dcb1bf1.af9ca4"]]},{"id":"5ceae0f7.00dd7","type":"set","name":"set vlan-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.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.connection-point-id' \n\tvalue='`$tmp.return.generate-cp-instance-id.id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data[$sidx].vlan-uuid' \n\tvalue='`$vtResp.output[$oidx].stored-elements[$sidx].vlan-uuid`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data[$sidx].vlan-tag-id' \n\tvalue='`$vtResp.output[$oidx].stored-elements[$sidx].vlantag-value`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data[$sidx].vlan-tag-description' \n\tvalue='`$vtResp.output[$oidx].stored-elements[$sidx].vlantag-name`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data[$sidx].vlan-role' \n\tvalue='`$vtResp.output[$oidx].stored-elements[$sidx].element-vlan-role`' />\n","comments":"","x":3128.190715789795,"y":2525.4408235549927,"z":"18bab70b.485059","wires":[]},{"id":"2622e5a6.a4f91a","type":"outcome","name":"vlan-type","xml":"<outcome value='vlan-type'>\n","comments":"","outputs":1,"x":1957.9523611068726,"y":820.0237946510315,"z":"18bab70b.485059","wires":[["b1bf2c95.f0e6a"]]},{"id":"b1bf2c95.f0e6a","type":"set","name":"set vt.request[].vlan-type","xml":"<set>\n<parameter name='vt.request[$qidx].vlan-type' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2275.9523611068726,"y":819.7737946510315,"z":"18bab70b.485059","wires":[]},{"id":"cfabc16e.d22c9","type":"execute","name":"resource-key[$sidx].value contains $","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >\n <parameter name='source' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n <parameter name='target' value='$' />\n","comments":"","outputs":1,"x":2234.7023277282715,"y":861.5238199234009,"z":"18bab70b.485059","wires":[["5efdc67e.fe3a88","251c2759.c4b528"]]},{"id":"5efdc67e.fe3a88","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2470.059539794922,"y":860.8094797134399,"z":"18bab70b.485059","wires":[["5c9fdcb3.974444"]]},{"id":"251c2759.c4b528","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2470.9522972106934,"y":902.5238046646118,"z":"18bab70b.485059","wires":[["f901b2e3.5fb1c"]]},{"id":"f901b2e3.5fb1c","type":"set","name":"set vt.request[].resource-value = NULL","xml":"<set>\n<parameter name='vt.request[$qidx].resource-value' value='' />\n","comments":"","x":2705.4522972106934,"y":902.7738046646118,"z":"18bab70b.485059","wires":[]},{"id":"813436c.51287c8","type":"comment","name":"Manually ASSIGNED","info":"","comments":"","x":2670.9522972106934,"y":823.7738046646118,"z":"18bab70b.485059","wires":[]},{"id":"bd2b8255.e75cf","type":"outcome","name":"unassign","xml":"<outcome value='unassign'>","comments":"","outputs":1,"x":620.2380638122559,"y":2710.666443824768,"z":"18bab70b.485059","wires":[["536d64c5.36366c"]]},{"id":"99154e42.537fc","type":"set","name":"set tmp.ss.param.capability-name","xml":"<set>\n<parameter name='tmp.ss.param.capability-name' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\n","comments":"","x":1322.0753326416016,"y":2762.603106021881,"z":"18bab70b.485059","wires":[]},{"id":"fd9f4c5c.f9e52","type":"for","name":"for pidx in param_length","xml":"<for silentFailure='true' index=\"pidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\">","comments":"","outputs":1,"x":1032.2895584106445,"y":2762.674576282501,"z":"18bab70b.485059","wires":[["a999e575.1c2928","99154e42.537fc"]]},{"id":"a999e575.1c2928","type":"switchNode","name":"switch: capability-name - ss vs param","xml":"<switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\n","comments":"","outputs":1,"x":1334.0395584106445,"y":2806.1745800971985,"z":"18bab70b.485059","wires":[["23dc02d3.6fa67e"]]},{"id":"23dc02d3.6fa67e","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1575.6467208862305,"y":2805.4960112571716,"z":"18bab70b.485059","wires":[["60d51524.06b0bc"]]},{"id":"536d64c5.36366c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":792.6546974182129,"y":2710.916615486145,"z":"18bab70b.485059","wires":[["fd9f4c5c.f9e52","56baec5a.1b0854","462d21f2.1c665","77250b2a.b25dc4"]]},{"id":"56baec5a.1b0854","type":"set","name":"set qidx = 0, ss.vt. = null","xml":"<set>\n<parameter name='qidx' value='0' />\n<parameter name='ss.vt.' value='' />\n","comments":"","x":1032.9403915405273,"y":2711.8570618629456,"z":"18bab70b.485059","wires":[]},{"id":"3a8e387d.63afb8","type":"switchNode","name":"switch: resource-key[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].name`'>\n","comments":"","outputs":1,"x":1733.57133102417,"y":2979.666699409485,"z":"18bab70b.485059","wires":[["59a2bef6.09fc4","84d61383.95d1d","1760ce25.f69a32"]]},{"id":"59a2bef6.09fc4","type":"outcome","name":"vlan-tag-key","xml":"<outcome value='vlan-tag-key'>\n","comments":"","outputs":1,"x":1994.4721984863281,"y":3060.527895927429,"z":"18bab70b.485059","wires":[["88817bcf.c0a158"]]},{"id":"88817bcf.c0a158","type":"set","name":"set vt.request[].vlan-tag-key","xml":"<set>\n<parameter name='vt.request[$qidx].vlan-tag-key' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2286.472198486328,"y":3060.277895927429,"z":"18bab70b.485059","wires":[]},{"id":"cd2882bd.da515","type":"for","name":"for kidx in resource-key_length","xml":"<for silentFailure='true' index=\"kidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key_length`\">","comments":"","outputs":1,"x":1454.4324073791504,"y":2979.5278100967407,"z":"18bab70b.485059","wires":[["3a8e387d.63afb8"]]},{"id":"1760ce25.f69a32","type":"outcome","name":"policy-instance-name","xml":"<outcome value='policy-instance-name'>\n","comments":"","outputs":1,"x":2020.7655906677246,"y":2979.1666116714478,"z":"18bab70b.485059","wires":[["e774df4a.eaec3"]]},{"id":"e774df4a.eaec3","type":"set","name":"set vt.request[].policy-instance-name","xml":"<set>\n<parameter name='vt.request[$qidx].policy-instance-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2313.1265449523926,"y":2979.277723312378,"z":"18bab70b.485059","wires":[]},{"id":"60d51524.06b0bc","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1216.3130340576172,"y":2936.0674452781677,"z":"18bab70b.485059","wires":[["cd2882bd.da515","aebaf5e.b6d2708","91308e15.022ac","97a4853.acb1778","c481fe57.0e5fa"]]},{"id":"aebaf5e.b6d2708","type":"set","name":"qidx++","xml":"<set>\n<parameter name='qidx' value='`$qidx + 1`' />\n","comments":"","x":1377.9203758239746,"y":3139.0079622268677,"z":"18bab70b.485059","wires":[]},{"id":"91308e15.022ac","type":"set","name":"set vt.request_length = qidx","xml":"<set>\n<parameter name='vt.request_length' value='`$qidx`' />\n","comments":"","x":1442.9203071594238,"y":3186.0080085396767,"z":"18bab70b.485059","wires":[]},{"id":"c481fe57.0e5fa","type":"set","name":"set ss.vt.param[].index","xml":"<set>\n<parameter name='ss.vt.param[$qidx].index' value='`$pidx`' />\n","comments":"","x":1429.1702880859375,"y":2936.353166103363,"z":"18bab70b.485059","wires":[]},{"id":"97a4853.acb1778","type":"set","name":"set ss.vt.param_length = qidx","xml":"<set>\n<parameter name='ss.vt.param_length' value='`$qidx`' />\n","comments":"","x":1450.9679374694824,"y":3229.960410118103,"z":"18bab70b.485059","wires":[]},{"id":"84d61383.95d1d","type":"outcome","name":"vlan-type","xml":"<outcome value='vlan-type'>\n","comments":"","outputs":1,"x":1982.8845520019531,"y":3019.805567741394,"z":"18bab70b.485059","wires":[["f252d523.3cc3a8"]]},{"id":"f252d523.3cc3a8","type":"set","name":"set vt.request[].vlan-type","xml":"<set>\n<parameter name='vt.request[$qidx].vlan-type' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2276.884552001953,"y":3019.555567741394,"z":"18bab70b.485059","wires":[]},{"id":"30b32779.df0378","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Failed to get vlan-tag assisgnment from mS\" />\n","comments":"","x":1684.8092002868652,"y":3419.666482925415,"z":"18bab70b.485059","wires":[]},{"id":"462d21f2.1c665","type":"execute","name":"execute RestApiCallNode","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.ss.mS.vlan.tag.unassign.templatefile`\" />\n <parameter name='restapiUrl' value='`$prop.controller.url + $prop.restapi.ss-mS-vlan-tag-assign`' />\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='POST' />\n <parameter name=\"responsePrefix\" value=\"vtResp\" />\n\n","comments":"","outputs":1,"x":1043.0476188659668,"y":3414.623510360718,"z":"18bab70b.485059","wires":[["8f1cc4ea.d8c3f8","68438a46.bcac94","59bbb103.2c354"]]},{"id":"8f1cc4ea.d8c3f8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1291.069694519043,"y":3414.6217498779297,"z":"18bab70b.485059","wires":[["b6feb5ca.7c49b8"]]},{"id":"68438a46.bcac94","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1282.06978225708,"y":3327.407500267029,"z":"18bab70b.485059","wires":[["b6feb5ca.7c49b8"]]},{"id":"59bbb103.2c354","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1287.2484321594238,"y":3515.193067550659,"z":"18bab70b.485059","wires":[["2d4d7f91.b7a1"]]},{"id":"b6feb5ca.7c49b8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1481.7735557556152,"y":3327.0516986846924,"z":"18bab70b.485059","wires":[["30b32779.df0378","edfa51a0.5047d"]]},{"id":"78e365ab.5d123c","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$vt-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":2146.6311073303223,"y":3370.952248573303,"z":"18bab70b.485059","wires":[]},{"id":"edfa51a0.5047d","type":"for","name":"for i in ss.vt.param_length","xml":"<for index=\"i\" start=\"0\" end=\"`$ss.vt.param_length`\">","comments":"","outputs":1,"x":1773.7024574279785,"y":3326.7024459838867,"z":"18bab70b.485059","wires":[["78e365ab.5d123c","4973f586.14705c"]]},{"id":"2d4d7f91.b7a1","type":"switchNode","name":"switch: vtResp.error-code","xml":"<switch test='`$vtResp.error-code`'>\n","comments":"","outputs":1,"x":1491.9286003112793,"y":3514.69015789032,"z":"18bab70b.485059","wires":[["1d848ac5.5bffc5","e02a10a3.08af2"]]},{"id":"1d848ac5.5bffc5","type":"outcomeTrue","name":"500","xml":"<outcome value='500'>\n","comments":"","outputs":1,"x":1704.178596496582,"y":3514.44015789032,"z":"18bab70b.485059","wires":[["ebf60cda.01468"]]},{"id":"e02a10a3.08af2","type":"outcomeTrue","name":"200","xml":"<outcome value='200'>\n","comments":"","outputs":1,"x":1705.6786003112793,"y":3557.19015789032,"z":"18bab70b.485059","wires":[["89aba429.6c5b08"]]},{"id":"15cba858.25ec08","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500'/>\n<parameter name='error-message' value=\"`'Encountered error from mS-vlan-tag-assign with error-code = ' + $vtResp.error-code + ' and error-message = ' + $vtResp.error-message`\" />\n","comments":"","x":2041.0951881408691,"y":3513.856824874878,"z":"18bab70b.485059","wires":[]},{"id":"4973f586.14705c","type":"set","name":"set vt-index","xml":"<set>\n<parameter name='vt-index' value='`$ss.vt.param[$i].index`' />\n","comments":"","x":2042.0952186584473,"y":3325.773657798767,"z":"18bab70b.485059","wires":[]},{"id":"eb72df67.db143","type":"for","name":"for i in ss.vt.param_length","xml":"<for silentFailure='true' index=\"i\" start=\"0\" end=\"`$ss.vt.param_length`\">","comments":"","outputs":1,"x":2145.369260787964,"y":3557.118952512741,"z":"18bab70b.485059","wires":[["a52673f3.1fbae","2b132c6a.ce4694"]]},{"id":"89aba429.6c5b08","type":"for","name":"for oidx in output_length","xml":"<for silentFailure='true' index=\"oidx\" start=\"0\" end=\"`$vtResp.output_length`\">","comments":"","outputs":1,"x":1894.9047889709473,"y":3557.3330698013306,"z":"18bab70b.485059","wires":[["eb72df67.db143"]]},{"id":"a52673f3.1fbae","type":"set","name":"set vt-index","xml":"<set>\n<parameter name='vt-index' value='`$ss.vt.param[$i]-index`' />\n","comments":"","x":2376.154790878296,"y":3557.333066701889,"z":"18bab70b.485059","wires":[]},{"id":"2b132c6a.ce4694","type":"set","name":"set resource-resolution-data.status = DELETED","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.vf-module-parameters.param[$vt-index].resource-resolution-data.status' \n\tvalue='DELETED' />\n","comments":"","x":2481.5713996887207,"y":3611.9995889663696,"z":"18bab70b.485059","wires":[]},{"id":"ebf60cda.01468","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1863.5712699890137,"y":3514.333176612854,"z":"18bab70b.485059","wires":[["15cba858.25ec08","78e365ab.5d123c"]]},{"id":"400b190a.ad3658","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":680.2380752563477,"y":93.0000057220459,"z":"18bab70b.485059","wires":[["794c3bd7.52c604","4a7eb9fd.2690f8"]]},{"id":"5dcb1bf1.af9ca4","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2600.7739639282227,"y":2430.2738285064697,"z":"18bab70b.485059","wires":[["2dfd3dc1.031cc2","ac0615e9.657588","98a42b2e.eb9288"]]},{"id":"89615294.66cdb","type":"set","name":"set Test vtResp","xml":"<set>\n<parameter name='vtResp.output_length' value='2' />\n<parameter name='vtResp.output[0].resource-name' value='vlan-tag-1' />\n<parameter name='vtResp.output[0].resource-value' value='[3553]' />\n<parameter name='vtResp.output[0].resource-vlan-role' value='outer-tag' />\n<parameter name='vtResp.output[0].stored-elements_length' value='1' />\n<parameter name='vtResp.output[0].stored-elements[0].vlan-uuid' value='vlan-uuid-0' />\n<parameter name='vtResp.output[0].stored-elements[0].vlantag-name' value='VPE-Cust' />\n<parameter name='vtResp.output[0].stored-elements[0].vlantag-value' value='3553' />\n<parameter name='vtResp.output[0].stored-elements[0].element-vlan-role' value='' />\n\n<parameter name='vtResp.output[1].resource-name' value='vlan-tag-2' />\n<parameter name='vtResp.output[1].resource-value' value='[ 3503, 4001, 4002 ]' />\n<parameter name='vtResp.output[1].resource-vlan-role' value='' />\n<parameter name='vtResp.output[1].stored-elements_length' value='3' />\n<parameter name='vtResp.output[1].stored-elements[0].vlan-uuid' value='vlan-uuid-1' />\n<parameter name='vtResp.output[1].stored-elements[0].vlantag-name' value='VPE-Cust-Outer' />\n<parameter name='vtResp.output[1].stored-elements[0].vlantag-value' value='3503' />\n<parameter name='vtResp.output[1].stored-elements[0].element-vlan-role' value='outer-tag' />\n<parameter name='vtResp.output[1].stored-elements[1].vlan-uuid' value='vlan-uuid-2' />\n<parameter name='vtResp.output[1].stored-elements[1].vlantag-name' value='VPE-Core1' />\n<parameter name='vtResp.output[1].stored-elements[1].vlantag-value' value='4001' />\n<parameter name='vtResp.output[1].stored-elements[1].element-vlan-role' value='outer-tag' />\n<parameter name='vtResp.output[1].stored-elements[2].vlan-uuid' value='vlan-uuid-3' />\n<parameter name='vtResp.output[1].stored-elements[2].vlantag-name' value='VPE-Core2' />\n<parameter name='vtResp.output[1].stored-elements[2].vlantag-value' value='4002' />\n<parameter name='vtResp.output[1].stored-elements[2].element-vlan-role' value='outer-tag' />\n<parameter name='vtResp.error-code' value='200' />\n<parameter name='vtResp.error-message' value='Success' />","comments":"","x":1018.5713958740234,"y":154.6666488647461,"z":"18bab70b.485059","wires":[]},{"id":"4ea576ac.864a98","type":"set","name":"set status = SUCCESS","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.vf-module-parameters.param[$vt-index].resource-resolution-data.status' \n\tvalue='SUCCESS' />\n","comments":"","x":2116.6667861938477,"y":2308.953077316284,"z":"18bab70b.485059","wires":[]},{"id":"36cb5ee3.07d222","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1665.7144088745117,"y":2606.095492362976,"z":"18bab70b.485059","wires":[["f6adfc0f.4da25","d9d5a0ca.540d9"]]},{"id":"7f2ac8f5.b14ab8","type":"set","name":"set vf-module-assignments.vms.vm[0]","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.vf-module-assignments.vms.vm[0].vm-type' value = '`$ss.param.vm-type`' />\n<parameter name = 'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].onap-model-information.model-invariant-uuid' value = '`$ss.param.vnfc-model-invariant-uuid`' />\n<parameter name = 'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].onap-model-information.model-customization-uuid' value = '`$ss.param.vnfc-model-customization-uuid`' />\n<parameter name = 'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].onap-model-information.model-version' value = '`$ss.param.vnfc-model-version`' />\n<parameter name = 'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-name' value = '`$ss.param.vnfc-name`' />\n","comments":"","x":1002.6195297241211,"y":1908.4757766723633,"z":"18bab70b.485059","wires":[]},{"id":"40f8a21b.55c32c","type":"switchNode","name":"switch: param[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].name`'>\n","comments":"","outputs":1,"x":1192.6191749572754,"y":1430.047266960144,"z":"18bab70b.485059","wires":[["1e26a553.851dbb","873a1e7f.54941","6727a465.553d3c","d0b31b1f.5def08","7e326156.e1aa3","4d7f7e2a.2956b","ef3cf31.e52ee1"]]},{"id":"1e26a553.851dbb","type":"outcome","name":"nfc-function","xml":"<outcome value='nfc-function'>\n","comments":"","outputs":1,"x":1428.3691749572754,"y":1430.297266960144,"z":"18bab70b.485059","wires":[["df016e0b.7adcd"]]},{"id":"df016e0b.7adcd","type":"set","name":"set ss.param.nfc-function, index","xml":"<set>\n<parameter name='ss.param.nfc-function' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value`' />\n<parameter name='ss.param.nfc-function-index' value='`$pidx`' />\n","comments":"","x":1670.61918258667,"y":1430.5472354888916,"z":"18bab70b.485059","wires":[]},{"id":"873a1e7f.54941","type":"outcome","name":"nfc-naming-code","xml":"<outcome value='nfc-naming-code'>\n","comments":"","outputs":1,"x":1445.8691749572754,"y":1473.0472660064697,"z":"18bab70b.485059","wires":[["380568d9.a753b8"]]},{"id":"380568d9.a753b8","type":"set","name":"set ss.param.nfc-naming-code, index","xml":"<set>\n<parameter name='ss.param.nfc-naming-code' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value`' />\n<parameter name='ss.param.nfc-naming-code-index' value='`$pidx`' />\n","comments":"","x":1733.1191139221191,"y":1473.047233581543,"z":"18bab70b.485059","wires":[]},{"id":"6727a465.553d3c","type":"outcome","name":"vnfc-model-customization-uuid","xml":"<outcome value='vnfc-model-customization-uuid'>\n","comments":"","outputs":1,"x":1489.61918258667,"y":1513.047266960144,"z":"18bab70b.485059","wires":[["4b4855e5.e71dbc"]]},{"id":"4b4855e5.e71dbc","type":"set","name":"set ss.param.vnfc-model-customization-uuid, index","xml":"<set>\n<parameter name='ss.param.vnfc-model-customization-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value`' />\n<parameter name='ss.param.vnfc-model-customization-uuid-index' value='`$pidx`' />\n","comments":"","x":1843.8691215515137,"y":1513.0472345352173,"z":"18bab70b.485059","wires":[]},{"id":"d0b31b1f.5def08","type":"outcome","name":"vnfc-model-invariant-uuid","xml":"<outcome value='vnfc-model-invariant-uuid'>\n","comments":"","outputs":1,"x":1474.6191749572754,"y":1554.2972679138184,"z":"18bab70b.485059","wires":[["fe3372ce.8fc2d"]]},{"id":"fe3372ce.8fc2d","type":"set","name":"set ss.param.vnfc-model-invariant-uuid, index","xml":"<set>\n<parameter name='ss.param.vnfc-model-invariant-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value`' />\n<parameter name='ss.param.vnfc-model-invariant-uuid-index' value='`$pidx`' />\n","comments":"","x":1792.8691139221191,"y":1554.2972354888916,"z":"18bab70b.485059","wires":[]},{"id":"7e326156.e1aa3","type":"outcome","name":"vnfc-model-version","xml":"<outcome value='vnfc-model-version'>\n","comments":"","outputs":1,"x":1457.1191749572754,"y":1596.7972688674927,"z":"18bab70b.485059","wires":[["db9ea743.984528"]]},{"id":"db9ea743.984528","type":"set","name":"set ss.param.vnfc-model-version, index","xml":"<set>\n<parameter name='ss.param.vnfc-model-version' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value`' />\n<parameter name='ss.param.vnfc-model-version-index' value='`$pidx`' />\n","comments":"","x":1775.3691139221191,"y":1596.797236442566,"z":"18bab70b.485059","wires":[]},{"id":"4d7f7e2a.2956b","type":"outcome","name":"vm-type","xml":"<outcome value='vm-type'>\n","comments":"","outputs":1,"x":1425.8691749572754,"y":1639.2972688674927,"z":"18bab70b.485059","wires":[["fe2fb327.98e5"]]},{"id":"fe2fb327.98e5","type":"set","name":"set ss.param.vm-type, index","xml":"<set>\n<parameter name='ss.param.vm-type' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value`' />\n<parameter name='ss.param.vm-type-index' value='`$pidx`' />\n","comments":"","x":1668.11918258667,"y":1639.5472373962402,"z":"18bab70b.485059","wires":[]},{"id":"a086481f.d85a58","type":"for","name":"for pidx in param_length","xml":"<for silentFailure='true' index=\"pidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\">","comments":"","outputs":1,"x":963.8968772888184,"y":1430.3291292190552,"z":"18bab70b.485059","wires":[["40f8a21b.55c32c"]]},{"id":"ef3cf31.e52ee1","type":"outcome","name":"vnfc-name","xml":"<outcome value='vnfc-name'>\n","comments":"","outputs":1,"x":1432.6193161010742,"y":1684.1899585723877,"z":"18bab70b.485059","wires":[["f86260c2.177e2"]]},{"id":"3e5e9da0.cfebc2","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":723.7141952514648,"y":1430.1427745819092,"z":"18bab70b.485059","wires":[["a086481f.d85a58","7f2ac8f5.b14ab8","8d16c621.8bce48","c976c592.6bd708","d26dd0a7.d0427","819091da.5a883"]]},{"id":"ae02cee3.d0816","type":"switchNode","name":"switch: param[].name == ss.param.vnfc-name-unresolved-value","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$x].name == $ss.param.vnfc-name-unresolved-value`'>\n","comments":"","outputs":1,"x":2377.1428985595703,"y":1868.2856531143188,"z":"18bab70b.485059","wires":[["b490bc9c.d9675"]]},{"id":"1afd223.7f2abde","type":"for","name":"for x in param_length","xml":"<for silentFailure='true' index=\"x\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\">","comments":"","outputs":1,"x":2018.4206008911133,"y":1868.56751537323,"z":"18bab70b.485059","wires":[["ae02cee3.d0816"]]},{"id":"f86260c2.177e2","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1625.1428298950195,"y":1684.1429386138916,"z":"18bab70b.485059","wires":[["56061d3b.bae174","5a98edf9.ee2974","db0713cf.ddb5b","62e89f18.96e0f","49f1bd8.cda8344","5f092097.5409d"]]},{"id":"56061d3b.bae174","type":"execute","name":"replace ${ with \"\"","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n <parameter name=\"source\" value=\"`$ss.param.vnfc-name-unresolved-value`\" />\n\t<parameter name=\"target\" value=\"${\"/>\n\t<parameter name=\"replacement\" value=\"\"/>\n\t<parameter name=\"outputPath\" value=\"ss.param.vnfc-name-unresolved-value\"/>\n","comments":"","outputs":1,"x":1842.8571853637695,"y":1729.142873764038,"z":"18bab70b.485059","wires":[[]]},{"id":"5a98edf9.ee2974","type":"set","name":"set ss.param.vnfc-name-unresolved-value","xml":"<set>\n<parameter name='ss.param.vnfc-name-unresolved-value' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value`' />\n","comments":"","x":1918.5714950561523,"y":1683.8570909500122,"z":"18bab70b.485059","wires":[]},{"id":"db0713cf.ddb5b","type":"execute","name":"replace } with \"\"","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n <parameter name=\"source\" value=\"`$ss.param.vnfc-name-unresolved-value`\" />\n\t<parameter name=\"target\" value=\"}\"/>\n\t<parameter name=\"replacement\" value=\"\"/>\n\t<parameter name=\"outputPath\" value=\"ss.param.vnfc-name-unresolved-value\"/>\n","comments":"","outputs":1,"x":1841.4286499023438,"y":1774.428674697876,"z":"18bab70b.485059","wires":[[]]},{"id":"b490bc9c.d9675","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2688.5713119506836,"y":1868.4285612106323,"z":"18bab70b.485059","wires":[["cdd94088.95b23"]]},{"id":"62e89f18.96e0f","type":"record","name":"record ss.param.vnfc-name-unresolved-value","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=\"`'ss.param.vnfc-name-unresolved-value = ' + $ss.param.vnfc-name-unresolved-value`\"/>","comments":"","outputs":1,"x":1935.7142868041992,"y":1823.0000667572021,"z":"18bab70b.485059","wires":[[]]},{"id":"49f1bd8.cda8344","type":"switchNode","name":"switch: ss.param.vnfc-name","xml":"<switch test='`$ss.param.vnfc-name`'>\n","comments":"","outputs":1,"x":1882.8570175170898,"y":1975.8570461273193,"z":"18bab70b.485059","wires":[["2955d2ee.f7a4ae"]]},{"id":"2955d2ee.f7a4ae","type":"outcomeFalse","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2092.8570709228516,"y":1976.2856159210205,"z":"18bab70b.485059","wires":[["dce6c066.5fa53"]]},{"id":"dce6c066.5fa53","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Unable to resolve vnfc-name' />\n","comments":"","x":2260.5236053466797,"y":1975.9999151229858,"z":"18bab70b.485059","wires":[]},{"id":"e4a31c9b.e10fe","type":"set","name":"set ss.param.vnfc-name, index","xml":"<set>\n<parameter name='ss.param.vnfc-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$x].value`' />\n<parameter name='ss.param.vnfc-name-index' value='`$x`' />\n","comments":"","x":3096.285690307617,"y":1867.9045991897583,"z":"18bab70b.485059","wires":[]},{"id":"cdd94088.95b23","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2836.607147216797,"y":1868.0361166000366,"z":"18bab70b.485059","wires":[["e4a31c9b.e10fe","28c202ba.b4543e"]]},{"id":"e04ad205.115a6","type":"execute","name":"generate vlan-tag url, replace action","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n <parameter name=\"source\" value=\"`$prop.restapi.ss-mS-vlan-tag-assign`\"/>\n <parameter name=\"outputPath\" value=\"tmp.ss-vlan-tag-url\"/>\n <parameter name=\"target\" value=\"{action}\"/>\n <parameter name=\"replacement\" value=\"`$ss.capability-action`\"/>\n","comments":"","outputs":1,"x":1075.476203918457,"y":1002.9999732971191,"z":"18bab70b.485059","wires":[[]]},{"id":"77250b2a.b25dc4","type":"execute","name":"generate vlan-tag url, replace action","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n <parameter name=\"source\" value=\"`$prop.restapi.ss-mS-vlan-tag-assign`\"/>\n <parameter name=\"outputPath\" value=\"tmp.ss-vlan-tag-url\"/>\n <parameter name=\"target\" value=\"{action}\"/>\n <parameter name=\"replacement\" value=\"`$ss.capability-action`\"/>\n","comments":"","outputs":1,"x":1073.571418762207,"y":3264.666498184204,"z":"18bab70b.485059","wires":[[]]},{"id":"5f092097.5409d","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1817.8571548461914,"y":1868.5239009857178,"z":"18bab70b.485059","wires":[["1afd223.7f2abde","a9dff780.281f48"]]},{"id":"a9dff780.281f48","type":"returnSuccess","name":"CATCH BREAK","xml":"<return status='success'>\n","comments":"","x":1975.0000457763672,"y":1915.2380981445312,"z":"18bab70b.485059","wires":[]},{"id":"28c202ba.b4543e","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>","comments":"","x":3023.9999389648438,"y":1909.523759841919,"z":"18bab70b.485059","wires":[]},{"id":"c976c592.6bd708","type":"set","name":"set vm_length, vnfc-names_length = 1","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.vf-module-assignments.vms.vm_length' value = '1' />\n<parameter name = 'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names_length' value = '1' />\n","comments":"","x":1004.1429061889648,"y":1955.238166809082,"z":"18bab70b.485059","wires":[]},{"id":"d26dd0a7.d0427","type":"set","name":"set vnfc-network-data_length","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.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length' \n\tvalue='`$ss.vt.param_length`' />\n","comments":"","x":973.5715370178223,"y":2379.5239448547363,"z":"18bab70b.485059","wires":[]},{"id":"819091da.5a883","type":"set","name":"set vlan-data_length","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.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data_length' \n\tvalue='`$vtResp.output[$oidx].stored-elements_length`' />\n","comments":"","x":947.4285125732422,"y":2428.095299720764,"z":"18bab70b.485059","wires":[]}] \ No newline at end of file
+[{"id":"c5ef4a1c.e71d88","type":"dgstart","name":"DGSTART","outputs":1,"x":116.66666412353516,"y":40.571431159973145,"z":"c5a1df11.bcdf6","wires":[["bafa9db1.1c9be"]]},{"id":"bdb76f74.d12d7","type":"method","name":"method self-serve-mS-vlan-tag-assign","xml":"<method rpc='self-serve-mS-vlan-tag-assign' mode='sync'>\n","comments":"","outputs":1,"x":252.45238494873047,"y":97.69841957092285,"z":"c5a1df11.bcdf6","wires":[["a4f14c9d.58ef2"]]},{"id":"a4f14c9d.58ef2","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":145.98810577392578,"y":185.00003814697266,"z":"c5a1df11.bcdf6","wires":[["127e5415.30fb2c","9447f661.3f15d8","cc153b29.abed98","98412ecc.da23c","c502d79c.b06078"]]},{"id":"bafa9db1.1c9be","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":389.52381134033203,"y":39.99999809265137,"z":"c5a1df11.bcdf6","wires":[["bdb76f74.d12d7"]]},{"id":"127e5415.30fb2c","type":"switchNode","name":"switch: ss.capability-name","xml":"<switch test='`$ss.capability-name`'>\n","comments":"","outputs":1,"x":380.4166717529297,"y":185.32143592834473,"z":"c5a1df11.bcdf6","wires":[["f0555549.640038"]]},{"id":"f0555549.640038","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":605.4166946411133,"y":185.82143449783325,"z":"c5a1df11.bcdf6","wires":[["4fd344e9.faf30c"]]},{"id":"4fd344e9.faf30c","type":"returnFailure","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=\"ss.capability-name is null\" />\n","comments":"","x":765.333366394043,"y":185.93253326416016,"z":"c5a1df11.bcdf6","wires":[]},{"id":"9447f661.3f15d8","type":"switchNode","name":"switch: ss.capability-action","xml":"<switch test='`$ss.capability-action`'>\n","comments":"","outputs":1,"x":381.666690826416,"y":235.32143640518188,"z":"c5a1df11.bcdf6","wires":[["9d55e5c1.3da008","68837491.e9f6dc","9a7468b9.51f858"]]},{"id":"9d55e5c1.3da008","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":605.1666870117188,"y":235.57143640518188,"z":"c5a1df11.bcdf6","wires":[["29c3584d.5da538"]]},{"id":"29c3584d.5da538","type":"returnFailure","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=\"ss.capability-action is null\" />\n","comments":"","x":765.0833587646484,"y":235.6825351715088,"z":"c5a1df11.bcdf6","wires":[]},{"id":"68837491.e9f6dc","type":"outcome","name":"assign","xml":"<outcome value='assign'>","comments":"","outputs":1,"x":603.9166831970215,"y":290.571439743042,"z":"c5a1df11.bcdf6","wires":[["10c136ed.d07269"]]},{"id":"9a9a98b7.18dd78","type":"call","name":"call self-serve-capability-param-resolution","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-capability-param-resolution' mode='sync' >\n","comments":"","outputs":1,"x":1076.333351135254,"y":290.82144355773926,"z":"c5a1df11.bcdf6","wires":[["875fcbab.991238"]]},{"id":"875fcbab.991238","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1332.3333320617676,"y":290.821439743042,"z":"c5a1df11.bcdf6","wires":[["b78cda8f.8dbe98"]]},{"id":"b78cda8f.8dbe98","type":"returnFailure","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=\"`'Not all assignments are resolved' + $error-message`\" />\n","comments":"","x":1491.0833129882812,"y":290.8214359283447,"z":"c5a1df11.bcdf6","wires":[]},{"id":"d1c0d946.9ec218","type":"set","name":"set tmp.ss.param.capability-name","xml":"<set>\n<parameter name='tmp.ss.param.capability-name' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\n","comments":"","x":1336.0873336791992,"y":395.17460918426514,"z":"c5a1df11.bcdf6","wires":[]},{"id":"a41a6ef3.c5f19","type":"for","name":"for pidx in param_length","xml":"<for silentFailure='true' index=\"pidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\">","comments":"","outputs":1,"x":1024.3015594482422,"y":395.24607944488525,"z":"c5a1df11.bcdf6","wires":[["a12ffc63.ffc1a","d1c0d946.9ec218"]]},{"id":"a12ffc63.ffc1a","type":"switchNode","name":"switch: capability-name - ss vs param","xml":"<switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\n","comments":"","outputs":1,"x":1349.0158615112305,"y":441.60325145721436,"z":"c5a1df11.bcdf6","wires":[["e789debe.6b525"]]},{"id":"e789debe.6b525","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1590.6230239868164,"y":440.9246826171875,"z":"c5a1df11.bcdf6","wires":[["e6113344.7f529"]]},{"id":"96ca14a1.e245e8","type":"switchNode","name":"switch: resource-key[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].name`'>\n","comments":"","outputs":1,"x":1701.3057670593262,"y":652.1231122016907,"z":"c5a1df11.bcdf6","wires":[["55ded108.90884","3d143f12.9a0fc","894afc22.6c1c","fd09cd3.fdd223","fcf2da49.9d2578","48f38f0c.3b234"]]},{"id":"55ded108.90884","type":"outcome","name":"resource-name","xml":"<outcome value='resource-name'>\n","comments":"","outputs":1,"x":1969.6114082336426,"y":691.8731007575989,"z":"c5a1df11.bcdf6","wires":[["f3f0ea6c.e03218"]]},{"id":"f3f0ea6c.e03218","type":"set","name":"set vt.request[].resource-name","xml":"<set>\n<parameter name='vt.request[$qidx].resource-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2285.1113624572754,"y":691.6230969429016,"z":"c5a1df11.bcdf6","wires":[]},{"id":"894afc22.6c1c","type":"outcome","name":"resource-value","xml":"<outcome value='resource-value'>\n","comments":"","outputs":1,"x":1971.6946830749512,"y":857.5953712463379,"z":"c5a1df11.bcdf6","wires":[["4d3a96f8.e92e68"]]},{"id":"64924fa7.7e266","type":"set","name":"set vt.request[].resource-value","xml":"<set>\n<parameter name='vt.request[$qidx].resource-value' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2673.6946907043457,"y":856.3453693389893,"z":"c5a1df11.bcdf6","wires":[]},{"id":"3d143f12.9a0fc","type":"outcome","name":"vlan-tag-key","xml":"<outcome value='vlan-tag-key'>\n","comments":"","outputs":1,"x":1961.2067070007324,"y":774.9841747283936,"z":"c5a1df11.bcdf6","wires":[["c9ff3410.8119d8"]]},{"id":"c9ff3410.8119d8","type":"set","name":"set vt.request[].vlan-tag-key","xml":"<set>\n<parameter name='vt.request[$qidx].vlan-tag-key' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2280.2067070007324,"y":773.7341747283936,"z":"c5a1df11.bcdf6","wires":[]},{"id":"10c136ed.d07269","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":776.6666946411133,"y":290.8214406967163,"z":"c5a1df11.bcdf6","wires":[["a41a6ef3.c5f19","566911e.ec7c0f","9a9a98b7.18dd78","a86eaad7.3ed688","ef89d686.bbf968"]]},{"id":"33cf25d7.f48cda","type":"for","name":"for kidx in resource-key_length","xml":"<for silentFailure='true' index=\"kidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key_length`\">","comments":"","outputs":1,"x":1422.1668434143066,"y":651.9842228889465,"z":"c5a1df11.bcdf6","wires":[["96ca14a1.e245e8"]]},{"id":"cc153b29.abed98","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='`$pathname`' />\n","comments":"","outputs":1,"x":362.91666412353516,"y":3670.5713291168213,"z":"c5a1df11.bcdf6","wires":[[]]},{"id":"48f38f0c.3b234","type":"outcome","name":"policy-instance-name","xml":"<outcome value='policy-instance-name'>\n","comments":"","outputs":1,"x":1988.5000267028809,"y":651.6230244636536,"z":"c5a1df11.bcdf6","wires":[["c93a305c.2fa4c"]]},{"id":"c93a305c.2fa4c","type":"set","name":"set vt.request[].policy-instance-name","xml":"<set>\n<parameter name='vt.request[$qidx].policy-instance-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2302.860980987549,"y":651.7341361045837,"z":"c5a1df11.bcdf6","wires":[]},{"id":"fd09cd3.fdd223","type":"outcome","name":"scope-id","xml":"<outcome value='scope-id'>\n","comments":"","outputs":1,"x":1950.4842338562012,"y":732.5952472686768,"z":"c5a1df11.bcdf6","wires":[["933df36c.8496"]]},{"id":"933df36c.8496","type":"set","name":"set vt.request[].scope-id","xml":"<set>\n<parameter name='vt.request[$qidx].scope-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2268.734172821045,"y":732.59521484375,"z":"c5a1df11.bcdf6","wires":[]},{"id":"e6113344.7f529","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1183.0474700927734,"y":604.5238580703735,"z":"c5a1df11.bcdf6","wires":[["33cf25d7.f48cda","38d23bcd.0c65d4","376c2003.77b22","3ca06662.a2a23a","a60f294f.fe8c58"]]},{"id":"566911e.ec7c0f","type":"set","name":"set qidx = 0, ss.vt. = null","xml":"<set>\n<parameter name='qidx' value='0' />\n<parameter name='ss.vt.' value='' />\n","comments":"","x":1024.952392578125,"y":344.4285650253296,"z":"c5a1df11.bcdf6","wires":[]},{"id":"38d23bcd.0c65d4","type":"set","name":"qidx++","xml":"<set>\n<parameter name='qidx' value='`$qidx + 1`' />\n","comments":"","x":1345.6547546386719,"y":873.131016254425,"z":"c5a1df11.bcdf6","wires":[]},{"id":"376c2003.77b22","type":"set","name":"set vt.request_length = qidx","xml":"<set>\n<parameter name='vt.request_length' value='`$qidx`' />\n","comments":"","x":1410.654685974121,"y":920.131062567234,"z":"c5a1df11.bcdf6","wires":[]},{"id":"a60f294f.fe8c58","type":"set","name":"set ss.vt.param[].index","xml":"<set>\n<parameter name='ss.vt.param[$qidx].index' value='`$pidx`' />\n","comments":"","x":1395.9047241210938,"y":604.8095788955688,"z":"c5a1df11.bcdf6","wires":[]},{"id":"3ca06662.a2a23a","type":"set","name":"set ss.vt.param_length = qidx","xml":"<set>\n<parameter name='ss.vt.param_length' value='`$qidx`' />\n","comments":"","x":1415.3689498901367,"y":967.416708946228,"z":"c5a1df11.bcdf6","wires":[]},{"id":"64bef960.780cb8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Failed to get vlan-tag assisgnment from mS\" />\n","comments":"","x":1668.1782302856445,"y":1149.2737274169922,"z":"c5a1df11.bcdf6","wires":[]},{"id":"ef89d686.bbf968","type":"execute","name":"execute RestApiCallNode","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.ss.mS.vlan.tag.assign.templatefile`\" />\n <parameter name='restapiUrl' value='`$prop.vt.mS.url + $tmp.ss-vlan-tag-url`' />\n <parameter name='restapiUser' value='`$prop.vt.mS.user`' />\n <parameter name='restapiPassword' value='`$prop.vt.mS.pwd`' />\n <parameter name='format' value='json' />\n <parameter name='httpMethod' value='POST' />\n <parameter name=\"responsePrefix\" value=\"vtResp\" />","comments":"","outputs":1,"x":1041.4165878295898,"y":1143.6593780517578,"z":"c5a1df11.bcdf6","wires":[["11961f29.a94ae1","d6afc59.dcb7338","10db5421.58885c"]]},{"id":"11961f29.a94ae1","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1274.4387245178223,"y":1144.2289943695068,"z":"c5a1df11.bcdf6","wires":[["d44f309f.f63a1"]]},{"id":"d6afc59.dcb7338","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1265.4388122558594,"y":1057.014744758606,"z":"c5a1df11.bcdf6","wires":[["d44f309f.f63a1"]]},{"id":"10db5421.58885c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1270.6174621582031,"y":1244.8003120422363,"z":"c5a1df11.bcdf6","wires":[["a72a549f.b9c508"]]},{"id":"d44f309f.f63a1","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1465.1425857543945,"y":1056.6589431762695,"z":"c5a1df11.bcdf6","wires":[["64bef960.780cb8","18d5e86c.5dcdd8"]]},{"id":"a212f83c.df2cb8","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$vt-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":2413.6667556762695,"y":1100.5595350265503,"z":"c5a1df11.bcdf6","wires":[]},{"id":"18d5e86c.5dcdd8","type":"for","name":"for i in ss.vt.param_length","xml":"<for index=\"i\" start=\"0\" end=\"`$ss.vt.param_length`\">","comments":"","outputs":1,"x":2075.738105773926,"y":1056.3097324371338,"z":"c5a1df11.bcdf6","wires":[["a212f83c.df2cb8","dafa8995.1e9368"]]},{"id":"717779a8.2aaf68","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1853.0952911376953,"y":1245.5715370178223,"z":"c5a1df11.bcdf6","wires":[["35740486.f18a7c","18d5e86c.5dcdd8"]]},{"id":"a72a549f.b9c508","type":"switchNode","name":"switch: vtResp.error-code","xml":"<switch test='`$vtResp.error-code`'>\n","comments":"","outputs":1,"x":1480.2975387573242,"y":1244.9641914367676,"z":"c5a1df11.bcdf6","wires":[["52bcb445.96891c","ee88877a.c2d038"]]},{"id":"52bcb445.96891c","type":"outcomeTrue","name":"500","xml":"<outcome value='500'>\n","comments":"","outputs":1,"x":1692.547534942627,"y":1244.7141914367676,"z":"c5a1df11.bcdf6","wires":[["717779a8.2aaf68"]]},{"id":"ee88877a.c2d038","type":"outcomeTrue","name":"200","xml":"<outcome value='200'>\n","comments":"","outputs":1,"x":1694.0475387573242,"y":1287.4641914367676,"z":"c5a1df11.bcdf6","wires":[["772d58d9.bfa278"]]},{"id":"35740486.f18a7c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500'/>\n<parameter name='error-message' value=\"`'Encountered error from mS-vlan-tag-assign with error-code = ' + $vtResp.error-code + ' and error-message = ' + $vtResp.error-message`\" />\n","comments":"","x":2039.4642181396484,"y":1245.1308870315552,"z":"c5a1df11.bcdf6","wires":[]},{"id":"dafa8995.1e9368","type":"set","name":"set vt-index","xml":"<set>\n<parameter name='vt-index' value='`$ss.vt.param[$i].index`' />\n","comments":"","x":2309.1308670043945,"y":1055.3809442520142,"z":"c5a1df11.bcdf6","wires":[]},{"id":"b8d40c25.c4dd9","type":"for","name":"for vtidx in ss.vt.param_length","xml":"<for silentFailure='true' index=\"vtidx\" start=\"0\" end=\"`$ss.vt.param_length`\">","comments":"","outputs":1,"x":1270.9286804199219,"y":2016.2978057861328,"z":"c5a1df11.bcdf6","wires":[["e9dea048.e97a1","c4d40bb4.303788"]]},{"id":"495d7152.4efb9","type":"call","name":"call generate-cp-instance-id","xml":"<call module=\"GENERIC-RESOURCE-API\" rpc=\"generate-cp-instance-id\" mode=\"sync\" >\n","comments":"","outputs":1,"x":2846.6789512634277,"y":2470.0120401382446,"z":"c5a1df11.bcdf6","wires":[["11690908.93f117"]]},{"id":"11690908.93f117","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3055.2503449576243,"y":2470.1550019127985,"z":"c5a1df11.bcdf6","wires":[["2d993438.c09e0c"]]},{"id":"8b5bee81.6266f","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='500'/>\n\t<parameter name='error-message' value=\"`'Error in generating cp-instance-id in SDNC; ' + $error-message.generate-cp-instance-id + $error-message`\" />\n","comments":"","x":3406.0955123901367,"y":2503.8219566345215,"z":"c5a1df11.bcdf6","wires":[]},{"id":"7ed21610.a53f78","type":"execute","name":"param[$vt-index].value contains $","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >\n <parameter name='source' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].value`' />\n <parameter name='target' value='$' />\n","comments":"","outputs":1,"x":1249.7500381469727,"y":2258.726761817932,"z":"c5a1df11.bcdf6","wires":[["466d8758.a7b688","ee492c8b.fbf1c"]]},{"id":"97fa42c5.a3d32","type":"set","name":"set capability-name = INPUT","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.vf-module-parameters.param[$vt-index].resource-resolution-data.capability-name' \n\tvalue='INPUT' />\n","comments":"","x":1914.655387878418,"y":2601.726538658142,"z":"c5a1df11.bcdf6","wires":[]},{"id":"466d8758.a7b688","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1496.798110961914,"y":2600.869469642639,"z":"c5a1df11.bcdf6","wires":[["c238ab9f.a2f118"]]},{"id":"ee492c8b.fbf1c","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1503.4643249511719,"y":2258.01242351532,"z":"c5a1df11.bcdf6","wires":[["1c9a359e.8341da"]]},{"id":"fdccd3a0.01719","type":"set","name":"set param[].value","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.vf-module-parameters.param[$vt-index].value' \n\tvalue='`$vtResp.output[$oidx].resource-value`' />\n","comments":"","x":2093.8212356567383,"y":2260.3692808151245,"z":"c5a1df11.bcdf6","wires":[]},{"id":"c7cab06d.300ff","type":"for","name":"for oidx in vtResp.output_length","xml":"<for silentFailure='true' index=\"oidx\" start=\"0\" end=\"`$vtResp.output_length`\">","comments":"","outputs":1,"x":981.4642086029053,"y":2016.5119230747223,"z":"c5a1df11.bcdf6","wires":[["b8d40c25.c4dd9"]]},{"id":"e9dea048.e97a1","type":"switchNode","name":"switch: resource-name = param[].name","xml":"<switch test='`$vtResp.output[$oidx].resource-name == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].name`'>\n","comments":"","outputs":1,"x":1585.464210510254,"y":2069.0119199752808,"z":"c5a1df11.bcdf6","wires":[["59284168.90b7c"]]},{"id":"59284168.90b7c","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1832.214210510254,"y":2069.0119199752808,"z":"c5a1df11.bcdf6","wires":[["7ed21610.a53f78"]]},{"id":"c4d40bb4.303788","type":"set","name":"set vt-index","xml":"<set>\n<parameter name='vt-index' value='`$ss.vt.param[$vtidx].index`' />\n","comments":"","x":1501.714210510254,"y":2016.5119199752808,"z":"c5a1df11.bcdf6","wires":[]},{"id":"1c9a359e.8341da","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1873.5711975097656,"y":2260.3692541122437,"z":"c5a1df11.bcdf6","wires":[["fdccd3a0.01719","740ff69b.385498","b0852bbf.7b6948"]]},{"id":"99bf5b7d.b52968","type":"for","name":"for sidx in stored-elements_length","xml":"<for silentFailure='true' index=\"sidx\" start=\"0\" end=\"`$vtResp.output[$oidx].stored-elements_length`\">","comments":"","outputs":1,"x":2866.107204437256,"y":2541.0119276046753,"z":"c5a1df11.bcdf6","wires":[["a838c69c.5f85d8"]]},{"id":"e0dd47c2.5e32c8","type":"set","name":"set vnfc-network-data[$idx].vnfc-network-role","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.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].vnfc-network-role' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2898.107421875,"y":2425.0120391845703,"z":"c5a1df11.bcdf6","wires":[]},{"id":"ea768341.52b6a","type":"switchNode","name":"switch: resource-key[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].resource-resolution-data.resource-key[$kidx].name`'>\n","comments":"","outputs":1,"x":2418.8929138183594,"y":2355.2261867523193,"z":"c5a1df11.bcdf6","wires":[["cbc3487d.ad3498"]]},{"id":"740ff69b.385498","type":"for","name":"for kidx in resource-key_length","xml":"<for silentFailure='true' index=\"kidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].resource-resolution-data.resource-key_length`\">","comments":"","outputs":1,"x":2139.75399017334,"y":2355.087297439575,"z":"c5a1df11.bcdf6","wires":[["ea768341.52b6a"]]},{"id":"cbc3487d.ad3498","type":"outcome","name":"vnfc-network-role","xml":"<outcome value='vnfc-network-role'>\n","comments":"","outputs":1,"x":2666.087173461914,"y":2354.726099014282,"z":"c5a1df11.bcdf6","wires":[["2dac7293.22fd2e"]]},{"id":"a838c69c.5f85d8","type":"set","name":"set vlan-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.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.connection-point-id' \n\tvalue='`$tmp.return.generate-cp-instance-id.id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data[$sidx].vlan-uuid' \n\tvalue='`$vtResp.output[$oidx].stored-elements[$sidx].vlan-uuid`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data[$sidx].vlan-tag-id' \n\tvalue='`$vtResp.output[$oidx].stored-elements[$sidx].vlantag-value`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data[$sidx].vlan-tag-description' \n\tvalue='`$vtResp.output[$oidx].stored-elements[$sidx].vlantag-name`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data[$sidx].vlan-role' \n\tvalue='`$vtResp.output[$oidx].stored-elements[$sidx].element-vlan-role`' />\n","comments":"","x":3124.8572998046875,"y":2541.0121421813965,"z":"c5a1df11.bcdf6","wires":[]},{"id":"fcf2da49.9d2578","type":"outcome","name":"vlan-type","xml":"<outcome value='vlan-type'>\n","comments":"","outputs":1,"x":1954.6190328598022,"y":815.5952258110046,"z":"c5a1df11.bcdf6","wires":[["cb98390c.0c83b8"]]},{"id":"cb98390c.0c83b8","type":"set","name":"set vt.request[].vlan-type","xml":"<set>\n<parameter name='vt.request[$qidx].vlan-type' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2272.6190328598022,"y":815.3452258110046,"z":"c5a1df11.bcdf6","wires":[]},{"id":"4d3a96f8.e92e68","type":"execute","name":"resource-key[$sidx].value contains $","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >\n <parameter name='source' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n <parameter name='target' value='$' />\n","comments":"","outputs":1,"x":2231.368999481201,"y":857.095251083374,"z":"c5a1df11.bcdf6","wires":[["a8167a34.9f7498","fce37b40.737b98"]]},{"id":"a8167a34.9f7498","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2466.7262115478516,"y":856.3809108734131,"z":"c5a1df11.bcdf6","wires":[["64924fa7.7e266"]]},{"id":"fce37b40.737b98","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2467.618968963623,"y":898.095235824585,"z":"c5a1df11.bcdf6","wires":[["cf84b8fb.496658"]]},{"id":"cf84b8fb.496658","type":"set","name":"set vt.request[].resource-value = NULL","xml":"<set>\n<parameter name='vt.request[$qidx].resource-value' value='' />\n","comments":"","x":2702.118968963623,"y":898.345235824585,"z":"c5a1df11.bcdf6","wires":[]},{"id":"c62fc75a.bc4718","type":"comment","name":"Manually ASSIGNED","info":"","comments":"","x":2667.618968963623,"y":819.345235824585,"z":"c5a1df11.bcdf6","wires":[]},{"id":"9a7468b9.51f858","type":"outcome","name":"unassign","xml":"<outcome value='unassign'>","comments":"","outputs":1,"x":616.9047355651855,"y":2706.237874984741,"z":"c5a1df11.bcdf6","wires":[["9e8c530e.faa71"]]},{"id":"649308e2.aa56f8","type":"set","name":"set tmp.ss.param.capability-name","xml":"<set>\n<parameter name='tmp.ss.param.capability-name' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\n","comments":"","x":1318.7420043945312,"y":2758.1745371818542,"z":"c5a1df11.bcdf6","wires":[]},{"id":"bbd10fa5.f1ee3","type":"for","name":"for pidx in param_length","xml":"<for silentFailure='true' index=\"pidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\">","comments":"","outputs":1,"x":1028.9562301635742,"y":2758.2460074424744,"z":"c5a1df11.bcdf6","wires":[["3d6e53cd.d0980c","649308e2.aa56f8"]]},{"id":"3d6e53cd.d0980c","type":"switchNode","name":"switch: capability-name - ss vs param","xml":"<switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\n","comments":"","outputs":1,"x":1330.7062301635742,"y":2801.7460112571716,"z":"c5a1df11.bcdf6","wires":[["56632159.314ea"]]},{"id":"56632159.314ea","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1572.3133926391602,"y":2801.067442417145,"z":"c5a1df11.bcdf6","wires":[["8011d731.b29368"]]},{"id":"9e8c530e.faa71","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":789.3213691711426,"y":2706.488046646118,"z":"c5a1df11.bcdf6","wires":[["bbd10fa5.f1ee3","fd931792.3a1838","ea689bee.78fbb8","6a23991a.0d4c58"]]},{"id":"fd931792.3a1838","type":"set","name":"set qidx = 0, ss.vt. = null","xml":"<set>\n<parameter name='qidx' value='0' />\n<parameter name='ss.vt.' value='' />\n","comments":"","x":1029.607063293457,"y":2707.4284930229187,"z":"c5a1df11.bcdf6","wires":[]},{"id":"6ef575e9.05dc2c","type":"switchNode","name":"switch: resource-key[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].name`'>\n","comments":"","outputs":1,"x":1730.2380027770996,"y":2975.238130569458,"z":"c5a1df11.bcdf6","wires":[["aa88d40.920433","4e8f979d.ebee18","a3b371c5.833c9"]]},{"id":"aa88d40.920433","type":"outcome","name":"vlan-tag-key","xml":"<outcome value='vlan-tag-key'>\n","comments":"","outputs":1,"x":1991.1388702392578,"y":3056.0993270874023,"z":"c5a1df11.bcdf6","wires":[["94618202.f200a"]]},{"id":"94618202.f200a","type":"set","name":"set vt.request[].vlan-tag-key","xml":"<set>\n<parameter name='vt.request[$qidx].vlan-tag-key' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2283.138870239258,"y":3055.8493270874023,"z":"c5a1df11.bcdf6","wires":[]},{"id":"2254e5a4.e4004a","type":"for","name":"for kidx in resource-key_length","xml":"<for silentFailure='true' index=\"kidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key_length`\">","comments":"","outputs":1,"x":1451.09907913208,"y":2975.099241256714,"z":"c5a1df11.bcdf6","wires":[["6ef575e9.05dc2c"]]},{"id":"a3b371c5.833c9","type":"outcome","name":"policy-instance-name","xml":"<outcome value='policy-instance-name'>\n","comments":"","outputs":1,"x":2017.4322624206543,"y":2974.738042831421,"z":"c5a1df11.bcdf6","wires":[["bd22d47b.263df8"]]},{"id":"bd22d47b.263df8","type":"set","name":"set vt.request[].policy-instance-name","xml":"<set>\n<parameter name='vt.request[$qidx].policy-instance-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2309.7932167053223,"y":2974.849154472351,"z":"c5a1df11.bcdf6","wires":[]},{"id":"8011d731.b29368","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1212.9797058105469,"y":2931.638876438141,"z":"c5a1df11.bcdf6","wires":[["2254e5a4.e4004a","51b124df.524a0c","5cacb530.16a2ac","b19132a.31666d","d2f81f9.4c4e3e"]]},{"id":"51b124df.524a0c","type":"set","name":"qidx++","xml":"<set>\n<parameter name='qidx' value='`$qidx + 1`' />\n","comments":"","x":1374.5870475769043,"y":3134.579393386841,"z":"c5a1df11.bcdf6","wires":[]},{"id":"5cacb530.16a2ac","type":"set","name":"set vt.request_length = qidx","xml":"<set>\n<parameter name='vt.request_length' value='`$qidx`' />\n","comments":"","x":1439.5869789123535,"y":3181.57943969965,"z":"c5a1df11.bcdf6","wires":[]},{"id":"d2f81f9.4c4e3e","type":"set","name":"set ss.vt.param[].index","xml":"<set>\n<parameter name='ss.vt.param[$qidx].index' value='`$pidx`' />\n","comments":"","x":1425.8369598388672,"y":2931.924597263336,"z":"c5a1df11.bcdf6","wires":[]},{"id":"b19132a.31666d","type":"set","name":"set ss.vt.param_length = qidx","xml":"<set>\n<parameter name='ss.vt.param_length' value='`$qidx`' />\n","comments":"","x":1445.134578704834,"y":3225.531784057617,"z":"c5a1df11.bcdf6","wires":[]},{"id":"4e8f979d.ebee18","type":"outcome","name":"vlan-type","xml":"<outcome value='vlan-type'>\n","comments":"","outputs":1,"x":1979.5512237548828,"y":3015.376998901367,"z":"c5a1df11.bcdf6","wires":[["65b697c8.ea5298"]]},{"id":"65b697c8.ea5298","type":"set","name":"set vt.request[].vlan-type","xml":"<set>\n<parameter name='vt.request[$qidx].vlan-type' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2273.551223754883,"y":3015.126998901367,"z":"c5a1df11.bcdf6","wires":[]},{"id":"4dbfd277.cce03c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Failed to unassign vlan-tag from mS\" />\n","comments":"","x":1660.047264099121,"y":3382.380973815918,"z":"c5a1df11.bcdf6","wires":[]},{"id":"ea689bee.78fbb8","type":"execute","name":"execute RestApiCallNode","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.ss.mS.vlan.tag.unassign.templatefile`\" />\n <parameter name='restapiUrl' value='`$prop.vt.mS.url + $tmp.ss-vlan-tag-url`' />\n <parameter name='restapiUser' value='`$prop.vt.mS.user`' />\n <parameter name='restapiPassword' value='`$prop.vt.mS.pwd`' />\n <parameter name='format' value='json' />\n <parameter name='httpMethod' value='POST' />\n <parameter name=\"responsePrefix\" value=\"vtResp\" />\n\n","comments":"","outputs":1,"x":1039.7142906188965,"y":3410.194941520691,"z":"c5a1df11.bcdf6","wires":[["c130c3b2.9e2b5","4b48cefb.6c48b","747e901.de66d7"]]},{"id":"c130c3b2.9e2b5","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1287.7363662719727,"y":3410.193181037903,"z":"c5a1df11.bcdf6","wires":[["3d004106.9a5e4e"]]},{"id":"4b48cefb.6c48b","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1278.7364540100098,"y":3322.978931427002,"z":"c5a1df11.bcdf6","wires":[["3d004106.9a5e4e"]]},{"id":"747e901.de66d7","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1283.9151039123535,"y":3510.7644987106323,"z":"c5a1df11.bcdf6","wires":[["c2e9d6a5.7c8678"]]},{"id":"3d004106.9a5e4e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1478.440227508545,"y":3322.6231298446655,"z":"c5a1df11.bcdf6","wires":[["4dbfd277.cce03c","dcdb3baa.a1d1f8"]]},{"id":"26166c21.e5b684","type":"set","name":"set resource-resolution-data.status = FAILED","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.vf-module-parameters.param[$vt-index].resource-resolution-data.status' \n\tvalue='FAILED' />\n","comments":"","x":2463.297779083252,"y":3366.5236797332764,"z":"c5a1df11.bcdf6","wires":[]},{"id":"dcdb3baa.a1d1f8","type":"for","name":"for i in ss.vt.param_length","xml":"<for index=\"i\" start=\"0\" end=\"`$ss.vt.param_length`\">","comments":"","outputs":1,"x":2090.369129180908,"y":3322.27387714386,"z":"c5a1df11.bcdf6","wires":[["26166c21.e5b684","566901e3.08c93"]]},{"id":"c2e9d6a5.7c8678","type":"switchNode","name":"switch: vtResp.error-code","xml":"<switch test='`$vtResp.error-code`'>\n","comments":"","outputs":1,"x":1488.595272064209,"y":3510.261589050293,"z":"c5a1df11.bcdf6","wires":[["fd32fdd5.c3b37","5a7175c1.4c464c"]]},{"id":"fd32fdd5.c3b37","type":"outcomeTrue","name":"500","xml":"<outcome value='500'>\n","comments":"","outputs":1,"x":1700.8452682495117,"y":3510.011589050293,"z":"c5a1df11.bcdf6","wires":[["2fd3d5cd.f9c07a"]]},{"id":"5a7175c1.4c464c","type":"outcomeTrue","name":"200","xml":"<outcome value='200'>\n","comments":"","outputs":1,"x":1702.345272064209,"y":3552.761589050293,"z":"c5a1df11.bcdf6","wires":[["8aa29f04.ea608"]]},{"id":"c17e5f2d.afefc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500'/>\n<parameter name='error-message' value=\"`'Encountered error while unassigning mS-vlan-tag with error-code = ' + $vtResp.error-code + ' and error-message = ' + $vtResp.error-message`\" />\n","comments":"","x":2037.7618598937988,"y":3509.428256034851,"z":"c5a1df11.bcdf6","wires":[]},{"id":"566901e3.08c93","type":"set","name":"set vt-index","xml":"<set>\n<parameter name='vt-index' value='`$ss.vt.param[$i].index`' />\n","comments":"","x":2358.761890411377,"y":3321.3450889587402,"z":"c5a1df11.bcdf6","wires":[]},{"id":"7b02b008.a930e","type":"for","name":"for i in ss.vt.param_length","xml":"<for silentFailure='true' index=\"i\" start=\"0\" end=\"`$ss.vt.param_length`\">","comments":"","outputs":1,"x":2142.0359325408936,"y":3552.6903836727142,"z":"c5a1df11.bcdf6","wires":[["d4af1b82.d2a138","1dd207a0.07b2f8"]]},{"id":"8aa29f04.ea608","type":"for","name":"for oidx in output_length","xml":"<for silentFailure='true' index=\"oidx\" start=\"0\" end=\"`$vtResp.output_length`\">","comments":"","outputs":1,"x":1891.571460723877,"y":3552.9045009613037,"z":"c5a1df11.bcdf6","wires":[["7b02b008.a930e"]]},{"id":"d4af1b82.d2a138","type":"set","name":"set vt-index","xml":"<set>\n<parameter name='vt-index' value='`$ss.vt.param[$i].index`' />\n","comments":"","x":2372.8214626312256,"y":3552.904497861862,"z":"c5a1df11.bcdf6","wires":[]},{"id":"1dd207a0.07b2f8","type":"set","name":"set resource-resolution-data.status = DELETED","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.vf-module-parameters.param[$vt-index].resource-resolution-data.status' \n\tvalue='DELETED' />\n","comments":"","x":2478.2380714416504,"y":3607.571020126343,"z":"c5a1df11.bcdf6","wires":[]},{"id":"2fd3d5cd.f9c07a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1860.2379417419434,"y":3509.904607772827,"z":"c5a1df11.bcdf6","wires":[["c17e5f2d.afefc","dcdb3baa.a1d1f8"]]},{"id":"2dac7293.22fd2e","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2597.4406356811523,"y":2425.845259666443,"z":"c5a1df11.bcdf6","wires":[["e0dd47c2.5e32c8","99bf5b7d.b52968","495d7152.4efb9"]]},{"id":"becd6b79.0916e8","type":"set","name":"set Test vtResp","xml":"<set>\n<parameter name='vtResp.output_length' value='2' />\n<parameter name='vtResp.output[0].resource-name' value='vlan-tag-1' />\n<parameter name='vtResp.output[0].resource-value' value='[3553]' />\n<parameter name='vtResp.output[0].resource-vlan-role' value='outer-tag' />\n<parameter name='vtResp.output[0].stored-elements_length' value='1' />\n<parameter name='vtResp.output[0].stored-elements[0].vlan-uuid' value='vlan-uuid-0' />\n<parameter name='vtResp.output[0].stored-elements[0].vlantag-name' value='VPE-Cust' />\n<parameter name='vtResp.output[0].stored-elements[0].vlantag-value' value='3553' />\n<parameter name='vtResp.output[0].stored-elements[0].element-vlan-role' value='' />\n\n<parameter name='vtResp.output[1].resource-name' value='vlan-tag-2' />\n<parameter name='vtResp.output[1].resource-value' value='[ 3503, 4001, 4002 ]' />\n<parameter name='vtResp.output[1].resource-vlan-role' value='' />\n<parameter name='vtResp.output[1].stored-elements_length' value='3' />\n<parameter name='vtResp.output[1].stored-elements[0].vlan-uuid' value='vlan-uuid-1' />\n<parameter name='vtResp.output[1].stored-elements[0].vlantag-name' value='VPE-Cust-Outer' />\n<parameter name='vtResp.output[1].stored-elements[0].vlantag-value' value='3503' />\n<parameter name='vtResp.output[1].stored-elements[0].element-vlan-role' value='outer-tag' />\n<parameter name='vtResp.output[1].stored-elements[1].vlan-uuid' value='vlan-uuid-2' />\n<parameter name='vtResp.output[1].stored-elements[1].vlantag-name' value='VPE-Core1' />\n<parameter name='vtResp.output[1].stored-elements[1].vlantag-value' value='4001' />\n<parameter name='vtResp.output[1].stored-elements[1].element-vlan-role' value='outer-tag' />\n<parameter name='vtResp.output[1].stored-elements[2].vlan-uuid' value='vlan-uuid-3' />\n<parameter name='vtResp.output[1].stored-elements[2].vlantag-name' value='VPE-Core2' />\n<parameter name='vtResp.output[1].stored-elements[2].vlantag-value' value='4002' />\n<parameter name='vtResp.output[1].stored-elements[2].element-vlan-role' value='outer-tag' />\n<parameter name='vtResp.error-code' value='200' />\n<parameter name='vtResp.error-message' value='Success' />","comments":"","x":1015.2380676269531,"y":150.23808002471924,"z":"c5a1df11.bcdf6","wires":[]},{"id":"b0852bbf.7b6948","type":"set","name":"set status = SUCCESS","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.vf-module-parameters.param[$vt-index].resource-resolution-data.status' \n\tvalue='SUCCESS' />\n","comments":"","x":2113.3334579467773,"y":2304.5245084762573,"z":"c5a1df11.bcdf6","wires":[]},{"id":"c238ab9f.a2f118","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1662.3810806274414,"y":2601.666923522949,"z":"c5a1df11.bcdf6","wires":[["97fa42c5.a3d32","1c9a359e.8341da"]]},{"id":"f7250d31.18475","type":"set","name":"set vf-module-assignments.vms.vm[0]","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.vf-module-assignments.vms.vm[0].vm-type' value = '`$ss.param.vm-type`' />\n<parameter name = 'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].onap-model-information.model-invariant-uuid' value = '`$ss.param.vnfc-model-invariant-uuid`' />\n<parameter name = 'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].onap-model-information.model-customization-uuid' value = '`$ss.param.vnfc-model-customization-uuid`' />\n<parameter name = 'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].onap-model-information.model-version' value = '`$ss.param.vnfc-model-version`' />\n<parameter name = 'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-name' value = '`$ss.param.vnfc-name`' />\n","comments":"","x":999.2862014770508,"y":1904.0472078323364,"z":"c5a1df11.bcdf6","wires":[]},{"id":"e714249e.620908","type":"switchNode","name":"switch: param[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].name`'>\n","comments":"","outputs":1,"x":1189.285846710205,"y":1425.6186981201172,"z":"c5a1df11.bcdf6","wires":[["879b8523.4eaea8","ce6e3eb8.4afc","245b8001.a3dd6","1ad04a05.608986","325e60bd.d904","dc7c3752.f236c8","6a9c840e.71ad0c"]]},{"id":"879b8523.4eaea8","type":"outcome","name":"nfc-function","xml":"<outcome value='nfc-function'>\n","comments":"","outputs":1,"x":1425.035846710205,"y":1425.8686981201172,"z":"c5a1df11.bcdf6","wires":[["8cf3e85f.233268"]]},{"id":"8cf3e85f.233268","type":"set","name":"set ss.param.nfc-function, index","xml":"<set>\n<parameter name='ss.param.nfc-function' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value`' />\n<parameter name='ss.param.nfc-function-index' value='`$pidx`' />\n","comments":"","x":1667.2858543395996,"y":1426.1186666488647,"z":"c5a1df11.bcdf6","wires":[]},{"id":"ce6e3eb8.4afc","type":"outcome","name":"nfc-naming-code","xml":"<outcome value='nfc-naming-code'>\n","comments":"","outputs":1,"x":1442.535846710205,"y":1468.6186971664429,"z":"c5a1df11.bcdf6","wires":[["f4ed93e9.d8179"]]},{"id":"f4ed93e9.d8179","type":"set","name":"set ss.param.nfc-naming-code, index","xml":"<set>\n<parameter name='ss.param.nfc-naming-code' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value`' />\n<parameter name='ss.param.nfc-naming-code-index' value='`$pidx`' />\n","comments":"","x":1729.7857856750488,"y":1468.618664741516,"z":"c5a1df11.bcdf6","wires":[]},{"id":"245b8001.a3dd6","type":"outcome","name":"vnfc-model-customization-uuid","xml":"<outcome value='vnfc-model-customization-uuid'>\n","comments":"","outputs":1,"x":1486.2858543395996,"y":1508.6186981201172,"z":"c5a1df11.bcdf6","wires":[["43ab1dd5.9e0374"]]},{"id":"43ab1dd5.9e0374","type":"set","name":"set ss.param.vnfc-model-customization-uuid, index","xml":"<set>\n<parameter name='ss.param.vnfc-model-customization-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value`' />\n<parameter name='ss.param.vnfc-model-customization-uuid-index' value='`$pidx`' />\n","comments":"","x":1840.5357933044434,"y":1508.6186656951904,"z":"c5a1df11.bcdf6","wires":[]},{"id":"1ad04a05.608986","type":"outcome","name":"vnfc-model-invariant-uuid","xml":"<outcome value='vnfc-model-invariant-uuid'>\n","comments":"","outputs":1,"x":1471.285846710205,"y":1549.8686990737915,"z":"c5a1df11.bcdf6","wires":[["67ac6095.3d349"]]},{"id":"67ac6095.3d349","type":"set","name":"set ss.param.vnfc-model-invariant-uuid, index","xml":"<set>\n<parameter name='ss.param.vnfc-model-invariant-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value`' />\n<parameter name='ss.param.vnfc-model-invariant-uuid-index' value='`$pidx`' />\n","comments":"","x":1789.5357856750488,"y":1549.8686666488647,"z":"c5a1df11.bcdf6","wires":[]},{"id":"325e60bd.d904","type":"outcome","name":"vnfc-model-version","xml":"<outcome value='vnfc-model-version'>\n","comments":"","outputs":1,"x":1453.785846710205,"y":1592.3687000274658,"z":"c5a1df11.bcdf6","wires":[["53a9b2f0.34f35c"]]},{"id":"53a9b2f0.34f35c","type":"set","name":"set ss.param.vnfc-model-version, index","xml":"<set>\n<parameter name='ss.param.vnfc-model-version' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value`' />\n<parameter name='ss.param.vnfc-model-version-index' value='`$pidx`' />\n","comments":"","x":1772.0357856750488,"y":1592.368667602539,"z":"c5a1df11.bcdf6","wires":[]},{"id":"dc7c3752.f236c8","type":"outcome","name":"vm-type","xml":"<outcome value='vm-type'>\n","comments":"","outputs":1,"x":1422.535846710205,"y":1634.8687000274658,"z":"c5a1df11.bcdf6","wires":[["da4944ab.6faa28"]]},{"id":"da4944ab.6faa28","type":"set","name":"set ss.param.vm-type, index","xml":"<set>\n<parameter name='ss.param.vm-type' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value`' />\n<parameter name='ss.param.vm-type-index' value='`$pidx`' />\n","comments":"","x":1664.7858543395996,"y":1635.1186685562134,"z":"c5a1df11.bcdf6","wires":[]},{"id":"6b63ece1.01f564","type":"for","name":"for pidx in param_length","xml":"<for silentFailure='true' index=\"pidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\">","comments":"","outputs":1,"x":960.563549041748,"y":1425.9005603790283,"z":"c5a1df11.bcdf6","wires":[["e714249e.620908"]]},{"id":"6a9c840e.71ad0c","type":"outcome","name":"vnfc-name","xml":"<outcome value='vnfc-name'>\n","comments":"","outputs":1,"x":1429.285987854004,"y":1679.7613897323608,"z":"c5a1df11.bcdf6","wires":[["77f5369e.b54a78"]]},{"id":"772d58d9.bfa278","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":720.3808670043945,"y":1425.7142057418823,"z":"c5a1df11.bcdf6","wires":[["6b63ece1.01f564","f7250d31.18475","c7cab06d.300ff","4b2c3442.0d70dc","53308e13.c73d9","b1d88b31.cd6c28"]]},{"id":"e4de9630.6cfdf8","type":"switchNode","name":"switch: param[].name == ss.param.vnfc-name-unresolved-value","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$x].name == $ss.param.vnfc-name-unresolved-value`'>\n","comments":"","outputs":1,"x":2373.8095703125,"y":1863.857084274292,"z":"c5a1df11.bcdf6","wires":[["b987183c.4d8708"]]},{"id":"4b825eb3.66c09","type":"for","name":"for x in param_length","xml":"<for silentFailure='true' index=\"x\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\">","comments":"","outputs":1,"x":2015.087272644043,"y":1864.1389465332031,"z":"c5a1df11.bcdf6","wires":[["e4de9630.6cfdf8"]]},{"id":"77f5369e.b54a78","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1621.8095016479492,"y":1679.7143697738647,"z":"c5a1df11.bcdf6","wires":[["73213585.8579fc","ba34447d.975e58","4e440a8e.caaf44","a71d9c7c.53704","fdcea11c.d13c2","5d43be49.ec94"]]},{"id":"73213585.8579fc","type":"execute","name":"replace ${ with \"\"","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n <parameter name=\"source\" value=\"`$ss.param.vnfc-name-unresolved-value`\" />\n\t<parameter name=\"target\" value=\"${\"/>\n\t<parameter name=\"replacement\" value=\"\"/>\n\t<parameter name=\"outputPath\" value=\"ss.param.vnfc-name-unresolved-value\"/>\n","comments":"","outputs":1,"x":1839.5238571166992,"y":1724.7143049240112,"z":"c5a1df11.bcdf6","wires":[[]]},{"id":"ba34447d.975e58","type":"set","name":"set ss.param.vnfc-name-unresolved-value","xml":"<set>\n<parameter name='ss.param.vnfc-name-unresolved-value' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value`' />\n","comments":"","x":1915.238166809082,"y":1679.4285221099854,"z":"c5a1df11.bcdf6","wires":[]},{"id":"4e440a8e.caaf44","type":"execute","name":"replace } with \"\"","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n <parameter name=\"source\" value=\"`$ss.param.vnfc-name-unresolved-value`\" />\n\t<parameter name=\"target\" value=\"}\"/>\n\t<parameter name=\"replacement\" value=\"\"/>\n\t<parameter name=\"outputPath\" value=\"ss.param.vnfc-name-unresolved-value\"/>\n","comments":"","outputs":1,"x":1838.0953216552734,"y":1770.0001058578491,"z":"c5a1df11.bcdf6","wires":[[]]},{"id":"b987183c.4d8708","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2685.2379837036133,"y":1863.9999923706055,"z":"c5a1df11.bcdf6","wires":[["593a5054.42dfe"]]},{"id":"a71d9c7c.53704","type":"record","name":"record ss.param.vnfc-name-unresolved-value","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=\"`'ss.param.vnfc-name-unresolved-value = ' + $ss.param.vnfc-name-unresolved-value`\"/>","comments":"","outputs":1,"x":1932.380958557129,"y":1818.5714979171753,"z":"c5a1df11.bcdf6","wires":[[]]},{"id":"fdcea11c.d13c2","type":"switchNode","name":"switch: ss.param.vnfc-name","xml":"<switch test='`$ss.param.vnfc-name`'>\n","comments":"","outputs":1,"x":1879.5236892700195,"y":1971.4284772872925,"z":"c5a1df11.bcdf6","wires":[["4d66af.3c90395"]]},{"id":"4d66af.3c90395","type":"outcomeFalse","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2089.5237426757812,"y":1971.8570470809937,"z":"c5a1df11.bcdf6","wires":[["d5c360c7.652b6"]]},{"id":"3f723980.eed846","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Unable to resolve vnfc-name; ' + $error-message`\" />\n","comments":"","x":2458.440383911133,"y":2034.0713176727295,"z":"c5a1df11.bcdf6","wires":[]},{"id":"34a5c812.fd5a58","type":"set","name":"set ss.param.vnfc-name, index","xml":"<set>\n<parameter name='ss.param.vnfc-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$x].value`' />\n<parameter name='ss.param.vnfc-name-index' value='`$x`' />\n","comments":"","x":3092.952362060547,"y":1863.4760303497314,"z":"c5a1df11.bcdf6","wires":[]},{"id":"593a5054.42dfe","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2833.2738189697266,"y":1863.6075477600098,"z":"c5a1df11.bcdf6","wires":[["34a5c812.fd5a58","e2e18b0e.d74708"]]},{"id":"a86eaad7.3ed688","type":"execute","name":"generate vlan-tag url, replace action","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n <parameter name=\"source\" value=\"`$prop.restapi.ss-mS-vlan-tag-assign`\"/>\n <parameter name=\"outputPath\" value=\"tmp.ss-vlan-tag-url\"/>\n <parameter name=\"target\" value=\"{action}\"/>\n <parameter name=\"replacement\" value=\"`$ss.capability-action`\"/>\n","comments":"","outputs":1,"x":1072.1428756713867,"y":998.5714044570923,"z":"c5a1df11.bcdf6","wires":[[]]},{"id":"6a23991a.0d4c58","type":"execute","name":"generate vlan-tag url, replace action","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n <parameter name=\"source\" value=\"`$prop.restapi.ss-mS-vlan-tag-assign`\"/>\n <parameter name=\"outputPath\" value=\"tmp.ss-vlan-tag-url\"/>\n <parameter name=\"target\" value=\"{action}\"/>\n <parameter name=\"replacement\" value=\"`$ss.capability-action`\"/>\n","comments":"","outputs":1,"x":1070.2380905151367,"y":3260.2379293441772,"z":"c5a1df11.bcdf6","wires":[[]]},{"id":"5d43be49.ec94","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1814.523826599121,"y":1864.095332145691,"z":"c5a1df11.bcdf6","wires":[["4b825eb3.66c09","b42d5881.2b1ed8"]]},{"id":"b42d5881.2b1ed8","type":"returnSuccess","name":"CATCH BREAK","xml":"<return status='success'>\n","comments":"","x":1971.6667175292969,"y":1910.8095293045044,"z":"c5a1df11.bcdf6","wires":[]},{"id":"e2e18b0e.d74708","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>","comments":"","x":3020.6666107177734,"y":1905.095191001892,"z":"c5a1df11.bcdf6","wires":[]},{"id":"4b2c3442.0d70dc","type":"set","name":"set vm_length, vnfc-names_length = 1","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.vf-module-assignments.vms.vm_length' value = '1' />\n<parameter name = 'service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names_length' value = '1' />\n","comments":"","x":1000.8095779418945,"y":1950.8095979690552,"z":"c5a1df11.bcdf6","wires":[]},{"id":"53308e13.c73d9","type":"set","name":"set vnfc-network-data_length","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.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length' \n\tvalue='`$ss.vt.param_length`' />\n","comments":"","x":970.238208770752,"y":2375.0953760147095,"z":"c5a1df11.bcdf6","wires":[]},{"id":"b1d88b31.cd6c28","type":"set","name":"set vlan-data_length","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.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$vtidx].connection-point.vlan-data_length' \n\tvalue='`$vtResp.output[$oidx].stored-elements_length`' />\n","comments":"","x":944.0951843261719,"y":2423.6667308807373,"z":"c5a1df11.bcdf6","wires":[]},{"id":"d5c360c7.652b6","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2266.666702270508,"y":1972.2500305175781,"z":"c5a1df11.bcdf6","wires":[["3f723980.eed846","b7656843.f345a8"]]},{"id":"358d341e.d20a2c","type":"execute","name":"execute RestApiCallNode","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.ss.mS.vlan.tag.unassign.templatefile`\" />\n <parameter name='restapiUrl' value='`$prop.vt.mS.url + $tmp.ss-vlan-tag-url`' />\n <parameter name='restapiUser' value='`$prop.vt.mS.user`' />\n <parameter name='restapiPassword' value='`$prop.vt.mS.pwd`' />\n <parameter name='format' value='json' />\n <parameter name='httpMethod' value='POST' />\n <parameter name=\"responsePrefix\" value=\"vtResp\" />\n\n","comments":"","outputs":1,"x":2699.8339614868164,"y":1591.564058303833,"z":"c5a1df11.bcdf6","wires":[["9cb28e84.afd0b","3e7513cc.71a9ec","39f0c9cb.7d6346"]]},{"id":"9cb28e84.afd0b","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2941.5699005126953,"y":1591.9910078048706,"z":"c5a1df11.bcdf6","wires":[["b0ad69bc.7aa678"]]},{"id":"3e7513cc.71a9ec","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2935.427074432373,"y":1543.348123550415,"z":"c5a1df11.bcdf6","wires":[["b0ad69bc.7aa678"]]},{"id":"39f0c9cb.7d6346","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2938.320037841797,"y":1643.5623474121094,"z":"c5a1df11.bcdf6","wires":[["7b2bc102.0d47c"]]},{"id":"7b2bc102.0d47c","type":"switchNode","name":"switch: vtResp.error-code","xml":"<switch test='`$vtResp.error-code`'>\n","comments":"","outputs":1,"x":3143.0002059936523,"y":1643.05943775177,"z":"c5a1df11.bcdf6","wires":[["cbc24f0c.5e675","d9f9770e.b72c18"]]},{"id":"cbc24f0c.5e675","type":"outcomeTrue","name":"500","xml":"<outcome value='500'>\n","comments":"","outputs":1,"x":3355.250202178955,"y":1642.80943775177,"z":"c5a1df11.bcdf6","wires":[["eb229cf3.8888"]]},{"id":"d9f9770e.b72c18","type":"outcomeTrue","name":"200","xml":"<outcome value='200'>\n","comments":"","outputs":1,"x":3358.1788444519043,"y":1692.702341079712,"z":"c5a1df11.bcdf6","wires":[["732f338c.72a28c"]]},{"id":"83274cf5.9d455","type":"for","name":"for i in ss.vt.param_length","xml":"<for silentFailure='true' index=\"i\" start=\"0\" end=\"`$ss.vt.param_length`\">","comments":"","outputs":1,"x":3966.4409503936768,"y":1691.6311852931976,"z":"c5a1df11.bcdf6","wires":[["a7dedcdc.318b7","fb4ccfe4.96e73"]]},{"id":"9bf5c017.a8787","type":"for","name":"for oidx in output_length","xml":"<for silentFailure='true' index=\"oidx\" start=\"0\" end=\"`$vtResp.output_length`\">","comments":"","outputs":1,"x":3715.97647857666,"y":1691.845302581787,"z":"c5a1df11.bcdf6","wires":[["83274cf5.9d455"]]},{"id":"a7dedcdc.318b7","type":"set","name":"set vt-index","xml":"<set>\n<parameter name='vt-index' value='`$ss.vt.param[$i].index`' />\n","comments":"","x":4197.226480484009,"y":1691.8452994823456,"z":"c5a1df11.bcdf6","wires":[]},{"id":"fb4ccfe4.96e73","type":"set","name":"set resource-resolution-data.status = PENDING","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.vf-module-parameters.param[$vt-index].resource-resolution-data.status' \n\tvalue='PENDING' />\n","comments":"","x":4302.643089294434,"y":1746.5118217468262,"z":"c5a1df11.bcdf6","wires":[]},{"id":"10a2e287.6a5c1d","type":"execute","name":"generate vlan-tag url, replace action","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n <parameter name=\"source\" value=\"`$prop.restapi.ss-mS-vlan-tag-assign`\"/>\n <parameter name=\"outputPath\" value=\"tmp.ss-vlan-tag-url\"/>\n <parameter name=\"target\" value=\"{action}\"/>\n <parameter name=\"replacement\" value=\"unassign\"/>\n","comments":"","outputs":1,"x":2726.928882598877,"y":1458.7500133514404,"z":"c5a1df11.bcdf6","wires":[[]]},{"id":"b7656843.f345a8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2456.155227661133,"y":1396.5000190734863,"z":"c5a1df11.bcdf6","wires":[["10a2e287.6a5c1d","358d341e.d20a2c","5c38977d.268248"]]},{"id":"d386544e.9b0ca8","type":"comment","name":"ROLLBACK vlan-tags","info":"","comments":"","x":2402.9166946411133,"y":1352.5000190734863,"z":"c5a1df11.bcdf6","wires":[]},{"id":"5c38977d.268248","type":"record","name":"record ROLLBACK","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"ROLLBACK: self-serve-mS-vlan-tag-assign\"/>","comments":"","outputs":1,"x":2672.916702270508,"y":1396.7500185966492,"z":"c5a1df11.bcdf6","wires":[[]]},{"id":"2d993438.c09e0c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3221.6667137145996,"y":2470.7500343322754,"z":"c5a1df11.bcdf6","wires":[["b7656843.f345a8","8b5bee81.6266f"]]},{"id":"b0ad69bc.7aa678","type":"set","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" \n\tvalue=\"Failed to rollback vlan-tag from mS. vlan-tag MUST BE ROLLBACK MANUALLY!!!\" />\n","comments":"","x":3160.380832672119,"y":1543.4643268585205,"z":"c5a1df11.bcdf6","wires":[]},{"id":"eb229cf3.8888","type":"set","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" \n\tvalue=\"`'Received error from mS with error-code = ' + $vtResp.error-code + ' and error-message = ' + $vtResp.error-message + '; vlan-tag MUST BE ROLLBACK MANUALLY!!!'`\" />\n","comments":"","x":3537.8093795776367,"y":1642.1785907745361,"z":"c5a1df11.bcdf6","wires":[]},{"id":"732f338c.72a28c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3506.666633605957,"y":1692.3214302062988,"z":"c5a1df11.bcdf6","wires":[["9bf5c017.a8787","833b0ff7.9e5fe"]]},{"id":"833b0ff7.9e5fe","type":"set","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" \n\tvalue=\"vlan tags were rolled back from mS successfully.\" />\n","comments":"","x":3705.238166809082,"y":1774.464406967163,"z":"c5a1df11.bcdf6","wires":[]},{"id":"2b906d3f.26afd2","type":"set","name":"set Test Inputs","xml":"<!--\n<set>\n<parameter name='vnf-index' value='0' />\n<parameter name='vf-module-index' value='0' />\n<parameter name='ss.capability-name' value='mS-vlan-tag-assign' />\n<parameter name='ss.capability-action' value='assign' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vnf-topology.sdnc-generated-cloud-resources' value='true' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-topology.sdnc-generated-cloud-resources' value = 'true' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param_length' value = '11' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].name' value = 'vmxvpfe_name_0' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].value' value = 'bogus-vnfc-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].name' value = 'vnfc-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].value' value = '${vmxvpfe_name_0}' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[2].name' value = 'vm_name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[2].value' value = 'bogus-vnfc-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[3].name' value = 'vm-type' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[3].value' value = 'oam' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[4].name' value = 'nfc-function' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[4].value' value = 'data' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[5].name' value = 'nfc-naming-code' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[5].value' value = 'dummy-naming-code' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[6].name' value = 'vnfc-model-customization-uuid' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[6].value' value = 'bbbb-99999' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[7].name' value = 'vnfc-model-invariant-uuid' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[7].value' value = 'aaaaa-10000' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[8].name' value = 'vnfc-model-version' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[8].value' value = 'model1' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].name' value = 'vlan-tag-1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].value' value = '${vlan-tag-1v}' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[0].name' value = 'policy-instance-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[0].value' value = 'JQIN1810SRIOV.Config_MS_SRIOV_VlanTag_1810_ADIOD_VPE.*' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[1].name' value = 'resource-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[1].value' value = 'vlan-tag-1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[2].name' value = 'resource-value' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[2].value' value = '' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[3].name' value = 'scope-id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[3].value' value = 'MTCLL2238F' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[4].name' value = 'vlan-tag-key' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[4].value' value = 'dvncom4003' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[5].name' value = 'vlan-type' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[5].value' value = 'vlan-id-outer' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[6].name' value = 'vnfc-network-role' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[6].value' value = 'network-role-1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key_length' value = '7' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.status' value = 'PENDING' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.capability-name' value = 'mS-vlan-tag-assign' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].name' value = 'vlan-tag-2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].value' value = '[3503, 4001, 4002]' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[0].name' value = 'policy-instance-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[0].value' value = 'JQIN1810SRIOV.Config_MS_SRIOV_VlanTag_1810_ADIOD_VPE.*' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[1].name' value = 'resource-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[1].value' value = 'vlan-tag-2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[2].name' value = 'resource-value' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[2].value' value = '[3503, 4001, 4002]' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[3].name' value = 'scope-id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[3].value' value = 'MTCLL2238F' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[4].name' value = 'vlan-tag-key' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[4].value' value = 'dvncom4003' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[5].name' value = 'vlan-type' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[5].value' value = 'vlan-id-filter' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[6].name' value = 'vnfc-network-role' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[6].value' value = 'network-role-2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key_length' value = '7' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.status' value = 'PENDING' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.capability-name' value = 'mS-vlan-tag-assign' />\n-->\n<set>\n<parameter name='vnf-index' value='0' />\n<parameter name='vf-module-index' value='0' />\n<parameter name='ss.capability-name' value='mS-vlan-tag-assign' />\n<parameter name='ss.capability-action' value='assign' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vnf-topology.sdnc-generated-cloud-resources' value='true' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-topology.sdnc-generated-cloud-resources' value = 'true' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param_length' value = '11' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].name' value = 'vmxvpfe_name_0' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].value' value = 'bogus-vnfc-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].name' value = 'vnfc-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[1].value' value = '${vmxvpfe_name_0}' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[2].name' value = 'vm_name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[2].value' value = 'bogus-vnfc-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[3].name' value = 'vm-type' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[3].value' value = 'oam' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[4].name' value = 'nfc-function' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[4].value' value = 'data' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[5].name' value = 'nfc-naming-code' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[5].value' value = 'dummy-naming-code' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[6].name' value = 'vnfc-model-customization-uuid' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[6].value' value = 'bbbb-99999' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[7].name' value = 'vnfc-model-invariant-uuid' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[7].value' value = 'aaaaa-10000' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[8].name' value = 'vnfc-model-version' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[8].value' value = 'model1' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].name' value = 'att_vf_vlan_filter_vce_sriov2_0' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].value' value = '${att_vf_vlan_filter_vce_sriov2_0}' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[0].name' value = 'policy-instance-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[0].value' value = 'SDNC_Policy.Config_MS_SRIOV_VlanTag_1810_VNAT.5.xml' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[1].name' value = 'resource-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[1].value' value = 'att_vf_vlan_filter_vce_sriov2_0' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[2].name' value = 'resource-value' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[2].value' value = '${att_vf_vlan_filter_vce_sriov2_0}' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[3].name' value = 'scope-id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[3].value' value = '${aic-clli}-att_vf_vlan_filter_vce_sriov2_0-att_vf_vlan_filter_vce_sriov2_0' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[4].name' value = 'vlan-tag-key' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[4].value' value = 'mtsnj046vn2001vce-att_vf_vlan_filter_vce_sriov2_0' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[5].name' value = 'vlan-type' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[5].value' value = 'vlan-id-filter' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[6].name' value = 'vnfc-network-role' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key[6].value' value = 'VnatSriovProviderNetwork.SR_IOV_Provider2_2' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.resource-key_length' value = '7' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.status' value = 'PENDING' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[9].resource-resolution-data.capability-name' value = 'mS-vlan-tag-assign' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].name' value = 'att_vf_vlan_filter_vce_sriov1_0\"' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].value' value = '${att_vf_vlan_filter_vce_sriov1_0}' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[0].name' value = 'policy-instance-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[0].value' value = 'SDNC_Policy.Config_MS_SRIOV_VlanTag_1810_VNAT.5.xml' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[1].name' value = 'resource-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[1].value' value = 'att_vf_vlan_filter_vce_sriov1_0' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[2].name' value = 'resource-value' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[2].value' value = '${att_vf_vlan_filter_vce_sriov1_0}' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[3].name' value = 'scope-id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[3].value' value = '${aic-clli}-att_vf_vlan_filter_vce_sriov1_0-att_vf_vlan_filter_vce_sriov1_0' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[4].name' value = 'vlan-tag-key' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[4].value' value = 'mtsnj046vn2001vce-att_vf_vlan_filter_vce_sriov1_0' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[5].name' value = 'vlan-type' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[5].value' value = 'vlan-id-filter' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[6].name' value = 'vnfc-network-role' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key[6].value' value = 'VnatSriovProviderNetwork.SR_IOV_Provider2_1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.resource-key_length' value = '7' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.status' value = 'PENDING' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[10].resource-resolution-data.capability-name' value = 'mS-vlan-tag-assign' />","comments":"","x":1009.7619400024414,"y":46.84523963928223,"z":"c5a1df11.bcdf6","wires":[]},{"id":"da1b0e5e.d95f1","type":"execute","name":"execute PropertiesNode","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":1040.1429290771484,"y":86.60715103149414,"z":"c5a1df11.bcdf6","wires":[[]]},{"id":"4ec63b3c.59f254","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":840.2380981445312,"y":85.79762268066406,"z":"c5a1df11.bcdf6","wires":[["2b906d3f.26afd2","da1b0e5e.d95f1"]]},{"id":"98412ecc.da23c","type":"set","name":"set pathname for context logging","xml":"<set>\n<parameter name='pathname' \n\tvalue=\"`'/var/tmp/ss-mS-vlan-tag-' + $ss.capability-action + '-' + \n\t$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.vf-module-id + '.log'`\" />\n","comments":"","x":424.9999542236328,"y":3593.3330698013306,"z":"c5a1df11.bcdf6","wires":[]},{"id":"c502d79c.b06078","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=\"DONE: mS-vlan-tag-assign\"/>\n\n","comments":"","outputs":1,"x":346.6666717529297,"y":3744.9997911453247,"z":"c5a1df11.bcdf6","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-changeassign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-changeassign.json
index 1409ae7f..6751123a 100755
--- a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-changeassign.json
+++ b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-changeassign.json
@@ -1 +1 @@
-[{"id":"b0fd1620.655ca8","type":"dgstart","name":"DGSTART","outputs":1,"x":117.14286041259766,"y":72.41365623474121,"z":"8a262f9.d3b0dd","wires":[["fcf0f4fe.e9bb18"]]},{"id":"fcf0f4fe.e9bb18","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":230.4285659790039,"y":112.65176773071289,"z":"8a262f9.d3b0dd","wires":[["5737a65.f324958"]]},{"id":"5737a65.f324958","type":"method","name":"method vf-module-topology-operation-changeassign","xml":"<method rpc='vf-module-topology-operation-changeassign' mode='sync'>\n","comments":"","outputs":1,"x":248.5714874267578,"y":152.4136562347412,"z":"8a262f9.d3b0dd","wires":[["4abc51a9.9cd8c"]]},{"id":"61ca3b27.a41de4","type":"comment","name":"vf-module-topology-operation-changeassign","info":"","comments":"","x":511.4877166748047,"y":20,"z":"8a262f9.d3b0dd","wires":[]},{"id":"7dfa083f.7c7818","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":520.6666717529297,"y":251.27079391479492,"z":"8a262f9.d3b0dd","wires":[["c33e4ad4.c0edb8","da84ffdd.6915e"]]},{"id":"c33e4ad4.c0edb8","type":"outcome","name":"CreateVfModuleInstance","xml":"<outcome value='CreateVfModuleInstance'>\n","comments":"","outputs":1,"x":771.7142868041992,"y":228.41368007659912,"z":"8a262f9.d3b0dd","wires":[["3077b832.2ed128"]]},{"id":"da84ffdd.6915e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":715.380931854248,"y":273.79466915130615,"z":"8a262f9.d3b0dd","wires":[["8fe60c4e.59625"]]},{"id":"3077b832.2ed128","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":961.5714511871338,"y":228.41371154785156,"z":"8a262f9.d3b0dd","wires":[[]]},{"id":"8fe60c4e.59625","type":"returnFailure","name":"return failure","xml":"<return 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 'changeassign' then request-action must be 'CreateVfModuleInstance'\" />\n","comments":"","x":980.3809394836426,"y":274.12798166275024,"z":"8a262f9.d3b0dd","wires":[]},{"id":"4abc51a9.9cd8c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":185.95240783691406,"y":447.41358184814453,"z":"8a262f9.d3b0dd","wires":[["7dfa083f.7c7818","f5c6235a.e5fb2","c7eb83e5.8873e","107d6ef2.21d321","b393522d.ebf8","5127faf1.b10724","a93934ef.4212f8","4009e4a7.3072ac","8b4b59af.488c98"]]},{"id":"c7eb83e5.8873e","type":"switchNode","name":"switch service-data.vnfs.vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":565.476188659668,"y":382.4136209487915,"z":"8a262f9.d3b0dd","wires":[["c2872a88.cea778","5d46a347.9bd9ec"]]},{"id":"c2872a88.cea778","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":806.1904602050781,"y":359.5563611984253,"z":"8a262f9.d3b0dd","wires":[["ac2a3460.e0ea48"]]},{"id":"5d46a347.9bd9ec","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":805.9523010253906,"y":400.50887966156006,"z":"8a262f9.d3b0dd","wires":[["ac71c92d.84f758"]]},{"id":"ac2a3460.e0ea48","type":"returnFailure","name":"return failure","xml":"<return 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":972.8570747375488,"y":358.842116355896,"z":"8a262f9.d3b0dd","wires":[]},{"id":"ac71c92d.84f758","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":968.1904449462891,"y":400.175498008728,"z":"8a262f9.d3b0dd","wires":[["a47006.25b19ff8"]]},{"id":"a47006.25b19ff8","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":1219.5236625671387,"y":399.8421850204468,"z":"8a262f9.d3b0dd","wires":[["5ce5b7fa.0d1d78"]]},{"id":"5ce5b7fa.0d1d78","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1449.523754119873,"y":399.17553901672363,"z":"8a262f9.d3b0dd","wires":[["cd0a1d92.dc903"]]},{"id":"f5c6235a.e5fb2","type":"set","name":"set vnf-index to -1","xml":"<set>\n<parameter name='vnf-index' value='-1' />\n","comments":"","x":509.52378845214844,"y":320.50879287719727,"z":"8a262f9.d3b0dd","wires":[]},{"id":"7fe7d854.f89c68","type":"set","name":"set vnf-index to idx","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1771.1903915405273,"y":370.1754970550537,"z":"8a262f9.d3b0dd","wires":[]},{"id":"107d6ef2.21d321","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":501.1904716491699,"y":447.1754951477051,"z":"8a262f9.d3b0dd","wires":[["236ee71d.7e03e8"]]},{"id":"236ee71d.7e03e8","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":679.5238571166992,"y":446.5088710784912,"z":"8a262f9.d3b0dd","wires":[["b4969d42.1ba18"]]},{"id":"b4969d42.1ba18","type":"returnFailure","name":"return failure","xml":"<return 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":839.5237655639648,"y":445.8421745300293,"z":"8a262f9.d3b0dd","wires":[]},{"id":"cd0a1d92.dc903","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1597.8572158813477,"y":398.0952377319336,"z":"8a262f9.d3b0dd","wires":[["7fe7d854.f89c68","b2e87734.818bf8"]]},{"id":"b2e87734.818bf8","type":"break","name":"break","xml":"<break>\n","comments":"","x":1732.8571815490723,"y":419.7618236541748,"z":"8a262f9.d3b0dd","wires":[]},{"id":"5127faf1.b10724","type":"switchNode","name":"switch service-data...vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":573.8095016479492,"y":545.746992111206,"z":"8a262f9.d3b0dd","wires":[["238393a.e361b6c","84f2544f.9fa598"]]},{"id":"238393a.e361b6c","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":824.523811340332,"y":524.5563955307007,"z":"8a262f9.d3b0dd","wires":[["b17a37a3.5da6a8"]]},{"id":"84f2544f.9fa598","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":824.2856521606445,"y":565.5089139938354,"z":"8a262f9.d3b0dd","wires":[["48eb0930.e76c88"]]},{"id":"b17a37a3.5da6a8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`\" />\n","comments":"","x":991.1904258728027,"y":523.8421506881714,"z":"8a262f9.d3b0dd","wires":[]},{"id":"48eb0930.e76c88","type":"for","name":"for each vf-module","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":986.523796081543,"y":565.1755323410034,"z":"8a262f9.d3b0dd","wires":[["a7ccbbe5.35ea78"]]},{"id":"a7ccbbe5.35ea78","type":"switchNode","name":"switch service data vf-module == input vf-module","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\n","comments":"","outputs":1,"x":1292.8569564819336,"y":564.8422679901123,"z":"8a262f9.d3b0dd","wires":[["2eb4d955.2cf836"]]},{"id":"2eb4d955.2cf836","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1562.8570098876953,"y":562.5088729858398,"z":"8a262f9.d3b0dd","wires":[["5d682e3b.dc58e"]]},{"id":"b393522d.ebf8","type":"set","name":"set vf-module-index to -1","xml":"<set>\n<parameter name='vf-module-index' value='-1' />\n","comments":"","x":529.5237731933594,"y":495.5088310241699,"z":"8a262f9.d3b0dd","wires":[]},{"id":"f40c30e1.61b41","type":"set","name":"set vf-module-index to idx","xml":"<set>\n<parameter name='vf-module-index' value='`$idx`' />\n","comments":"","x":1892.8571014404297,"y":533.5088520050049,"z":"8a262f9.d3b0dd","wires":[]},{"id":"a93934ef.4212f8","type":"switchNode","name":"switch vf-module-index","xml":"<switch test='`$vf-module-index`'>\n","comments":"","outputs":1,"x":526.1904754638672,"y":613.8422508239746,"z":"8a262f9.d3b0dd","wires":[["4fd6152b.16dabc"]]},{"id":"4fd6152b.16dabc","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":704.5238609313965,"y":613.1756267547607,"z":"8a262f9.d3b0dd","wires":[["cc9a90b4.f6dbb"]]},{"id":"cc9a90b4.f6dbb","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`\" />\n","comments":"","x":864.5237693786621,"y":612.5089302062988,"z":"8a262f9.d3b0dd","wires":[]},{"id":"5d682e3b.dc58e","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1696.1905517578125,"y":561.4286127090454,"z":"8a262f9.d3b0dd","wires":[["f40c30e1.61b41","d486457b.03c4f8"]]},{"id":"d486457b.03c4f8","type":"break","name":"break","xml":"<break>\n","comments":"","x":1831.190517425537,"y":583.0951986312866,"z":"8a262f9.d3b0dd","wires":[]},{"id":"a0333722.8ea4a8","type":"set","name":"set order-status to Created","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='Created' />\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":1190.6191673278809,"y":1242.2947263717651,"z":"8a262f9.d3b0dd","wires":[]},{"id":"ecc4c033.4934b","type":"switchNode","name":"switch order-status","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1161.2857513427734,"y":940.4613428115845,"z":"8a262f9.d3b0dd","wires":[["18af91b1.b4607e","c6e4455a.385a08"]]},{"id":"18af91b1.b4607e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1339.285846710205,"y":959.1756715774536,"z":"8a262f9.d3b0dd","wires":[["4b7e6c1f.d39d34"]]},{"id":"77862466.1fd07c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1510.476303100586,"y":911.4614152908325,"z":"8a262f9.d3b0dd","wires":[[]]},{"id":"4b7e6c1f.d39d34","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'Order status is ' + $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 + ' instead of PendingDelete'`\" />\n","comments":"","x":1524.9525032043457,"y":959.1757125854492,"z":"8a262f9.d3b0dd","wires":[]},{"id":"e2290aa1.d8ade8","type":"set","name":"copy ONAP model information","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-information.onap-model-information.'\n value='$vf-module-topology-operation-input.vf-module-information.onap-model-information.' />\n\n","comments":"","x":1201.285789489746,"y":1195.628098487854,"z":"8a262f9.d3b0dd","wires":[]},{"id":"5e9cf84d.a657c8","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":1150.6190757751465,"y":1290.6280221939087,"z":"8a262f9.d3b0dd","wires":[]},{"id":"c6e4455a.385a08","type":"outcome","name":"PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":1363.9524765014648,"y":910.7143249511719,"z":"8a262f9.d3b0dd","wires":[["77862466.1fd07c"]]},{"id":"b15e0f26.9f255","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":1219.9524765014648,"y":1128.9613523483276,"z":"8a262f9.d3b0dd","wires":[["cb0b3c5c.5f7e1","b17682d4.5ebac"]]},{"id":"31afce54.dcccd2","type":"returnFailure","name":"return failure","xml":"<return 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":1665.3808975219727,"y":1153.3898248672485,"z":"8a262f9.d3b0dd","wires":[]},{"id":"cb0b3c5c.5f7e1","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1489.738166809082,"y":1109.3421831130981,"z":"8a262f9.d3b0dd","wires":[["369bc4d.584033c"]]},{"id":"b17682d4.5ebac","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1498.3095970153809,"y":1153.627896308899,"z":"8a262f9.d3b0dd","wires":[["31afce54.dcccd2"]]},{"id":"369bc4d.584033c","type":"returnFailure","name":"return failure","xml":"<return 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":1664.7380981445312,"y":1108.485083580017,"z":"8a262f9.d3b0dd","wires":[]},{"id":"a08b9f60.bbfe9","type":"comment","name":"check removed with US622450","info":"","comments":"","x":1123.0000839233398,"y":901.4286489486694,"z":"8a262f9.d3b0dd","wires":[]},{"id":"d5239776.31c288","type":"call","name":"call self-serve-vfmodule-changeassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-vfmodule-changeassign' mode='sync' >\n","comments":"","outputs":1,"x":991.0713653564453,"y":779.3214492797852,"z":"8a262f9.d3b0dd","wires":[["bbd3a989.474468","59a233fe.2e88dc"]]},{"id":"bbd3a989.474468","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1240.8213500976562,"y":779.5714378356934,"z":"8a262f9.d3b0dd","wires":[["687f4b0d.09ec54"]]},{"id":"687f4b0d.09ec54","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Encountered error performing changeassign for self-serve vf-module resources with error: '+ $error-message`\" />\n","comments":"","x":1400.3927764892578,"y":779.2143325805664,"z":"8a262f9.d3b0dd","wires":[]},{"id":"cfae1886.258a38","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":931.5715560913086,"y":1129.4287605285645,"z":"8a262f9.d3b0dd","wires":[["b15e0f26.9f255","e2290aa1.d8ade8","a0333722.8ea4a8","5e9cf84d.a657c8","cd0f22a5.dc021"]]},{"id":"59a233fe.2e88dc","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1247.1428031921387,"y":823.4285106658936,"z":"8a262f9.d3b0dd","wires":[["7b0941d7.b782a"]]},{"id":"7b0941d7.b782a","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":1404.285789489746,"y":823.428524017334,"z":"8a262f9.d3b0dd","wires":[]},{"id":"cd0f22a5.dc021","type":"switchNode","name":"switch model-customization-id","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`'>\n","comments":"","outputs":1,"x":1200.1428909301758,"y":1064.7351522445679,"z":"8a262f9.d3b0dd","wires":[["cfea71c0.e656b"]]},{"id":"cfea71c0.e656b","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1405.1428909301758,"y":1064.7351350784302,"z":"8a262f9.d3b0dd","wires":[["8536c8b7.3c5328"]]},{"id":"8536c8b7.3c5328","type":"returnFailure","name":"return failure","xml":"<return 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-information.onap-model-information.model-customization-uuid is a required input\" />\n","comments":"","x":1556.5714569091797,"y":1064.7351331710815,"z":"8a262f9.d3b0dd","wires":[]},{"id":"8600ce57.b79a7","type":"comment","name":"model-customization-uuid validation moved from validate-vnf-input DG","info":"","comments":"","x":1218.8928909301758,"y":1027.2351388931274,"z":"8a262f9.d3b0dd","wires":[]},{"id":"6520c566.a6984c","type":"comment","name":"SELF-SERVE FORK","info":"","comments":"","x":811.428581237793,"y":735.7142686843872,"z":"8a262f9.d3b0dd","wires":[]},{"id":"4009e4a7.3072ac","type":"call","name":"call self-serve-vf-module-forking-logic","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-vf-module-forking-logic' mode='sync' >\n","comments":"","outputs":1,"x":570.4443664550781,"y":675.5361385345459,"z":"8a262f9.d3b0dd","wires":[[]]},{"id":"8b4b59af.488c98","type":"switchNode","name":"switch ss.self-serve-flag","xml":"<switch test=\"`$ss.self-serve-flag`\">\n","comments":"","outputs":1,"x":527.1585235595703,"y":948.2504901885986,"z":"8a262f9.d3b0dd","wires":[["c383fd19.54e6f","99f7c2d8.5c5fc"]]},{"id":"c383fd19.54e6f","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":750.1584587097168,"y":1129.1071338653564,"z":"8a262f9.d3b0dd","wires":[["cfae1886.258a38"]]},{"id":"99f7c2d8.5c5fc","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":749.8727569580078,"y":778.9647436141968,"z":"8a262f9.d3b0dd","wires":[["d5239776.31c288"]]}] \ No newline at end of file
+[{"id":"206edd66.51e652","type":"dgstart","name":"DGSTART","outputs":1,"x":101.66666412353516,"y":82.41365432739258,"z":"fa58896c.a8e848","wires":[["5690a99b.ec8778"]]},{"id":"5690a99b.ec8778","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":214.9523696899414,"y":122.65176582336426,"z":"fa58896c.a8e848","wires":[["5b0a303e.e1d48"]]},{"id":"5b0a303e.e1d48","type":"method","name":"method vf-module-topology-operation-changeassign","xml":"<method rpc='vf-module-topology-operation-changeassign' mode='sync'>\n","comments":"","outputs":1,"x":233.0952911376953,"y":162.41365432739258,"z":"fa58896c.a8e848","wires":[["66e405b6.f01a7c"]]},{"id":"6437f4cb.316a2c","type":"comment","name":"vf-module-topology-operation-changeassign","info":"","comments":"","x":496.0115203857422,"y":29.999998092651367,"z":"fa58896c.a8e848","wires":[]},{"id":"6fdbf534.00d43c","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":505.1904754638672,"y":261.2707920074463,"z":"fa58896c.a8e848","wires":[["7af20766.b5fe78","2fa375b8.bda7ba"]]},{"id":"7af20766.b5fe78","type":"outcome","name":"CreateVfModuleInstance","xml":"<outcome value='CreateVfModuleInstance'>\n","comments":"","outputs":1,"x":756.2380905151367,"y":238.4136781692505,"z":"fa58896c.a8e848","wires":[["b84b0314.4c284"]]},{"id":"2fa375b8.bda7ba","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":699.9047355651855,"y":283.7946672439575,"z":"fa58896c.a8e848","wires":[["fb8a5c21.c5ba4"]]},{"id":"b84b0314.4c284","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":946.0952548980713,"y":238.41370964050293,"z":"fa58896c.a8e848","wires":[[]]},{"id":"fb8a5c21.c5ba4","type":"returnFailure","name":"return failure","xml":"<return 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 'changeassign' then request-action must be 'CreateVfModuleInstance'\" />\n","comments":"","x":964.9047431945801,"y":284.1279797554016,"z":"fa58896c.a8e848","wires":[]},{"id":"66e405b6.f01a7c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":170.47621154785156,"y":457.4135799407959,"z":"fa58896c.a8e848","wires":[["6fdbf534.00d43c","5401e74b.3d2138","ab370680.4d1d68","1999519.d00e0ae","499fe3f8.979a2c","dbbe7c81.45754","59a5052d.a6c78c","a99f8e3.3a5e27","89912787.66ee78"]]},{"id":"ab370680.4d1d68","type":"switchNode","name":"switch service-data.vnfs.vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":549.9999923706055,"y":392.41361904144287,"z":"fa58896c.a8e848","wires":[["b6ee91a4.3a37f","b8e5865c.c31308"]]},{"id":"b6ee91a4.3a37f","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":790.7142639160156,"y":369.55635929107666,"z":"fa58896c.a8e848","wires":[["86b8a02.25e7b6"]]},{"id":"b8e5865c.c31308","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":790.4761047363281,"y":410.5088777542114,"z":"fa58896c.a8e848","wires":[["81637a69.dc91a8"]]},{"id":"86b8a02.25e7b6","type":"returnFailure","name":"return failure","xml":"<return 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":957.3808784484863,"y":368.84211444854736,"z":"fa58896c.a8e848","wires":[]},{"id":"81637a69.dc91a8","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":952.7142486572266,"y":410.1754961013794,"z":"fa58896c.a8e848","wires":[["ca245765.0e91a8"]]},{"id":"ca245765.0e91a8","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":1204.0474662780762,"y":409.84218311309814,"z":"fa58896c.a8e848","wires":[["3f4b4e25.318c62"]]},{"id":"3f4b4e25.318c62","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1434.0475578308105,"y":409.175537109375,"z":"fa58896c.a8e848","wires":[["8721d18c.8ed4b"]]},{"id":"5401e74b.3d2138","type":"set","name":"set vnf-index to -1","xml":"<set>\n<parameter name='vnf-index' value='-1' />\n","comments":"","x":494.04759216308594,"y":330.50879096984863,"z":"fa58896c.a8e848","wires":[]},{"id":"c949c164.bfb1e","type":"set","name":"set vnf-index to idx","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1755.7141952514648,"y":380.1754951477051,"z":"fa58896c.a8e848","wires":[]},{"id":"1999519.d00e0ae","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":485.7142753601074,"y":457.17549324035645,"z":"fa58896c.a8e848","wires":[["23428438.190abc"]]},{"id":"23428438.190abc","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":664.0476608276367,"y":456.5088691711426,"z":"fa58896c.a8e848","wires":[["e0dee4ef.c5ad38"]]},{"id":"e0dee4ef.c5ad38","type":"returnFailure","name":"return failure","xml":"<return 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":824.0475692749023,"y":455.84217262268066,"z":"fa58896c.a8e848","wires":[]},{"id":"8721d18c.8ed4b","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1582.3810195922852,"y":408.09523582458496,"z":"fa58896c.a8e848","wires":[["c949c164.bfb1e","1d8adeec.ba3e91"]]},{"id":"1d8adeec.ba3e91","type":"break","name":"break","xml":"<break>\n","comments":"","x":1717.3809852600098,"y":429.7618217468262,"z":"fa58896c.a8e848","wires":[]},{"id":"dbbe7c81.45754","type":"switchNode","name":"switch service-data...vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":558.3333053588867,"y":555.7469902038574,"z":"fa58896c.a8e848","wires":[["aa141bda.6d5a28","e8068e6e.b49b9"]]},{"id":"aa141bda.6d5a28","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":809.0476150512695,"y":534.556393623352,"z":"fa58896c.a8e848","wires":[["21aa7dbf.c01442"]]},{"id":"e8068e6e.b49b9","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":808.809455871582,"y":575.5089120864868,"z":"fa58896c.a8e848","wires":[["134a0350.3f0a5d"]]},{"id":"21aa7dbf.c01442","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`\" />\n","comments":"","x":975.7142295837402,"y":533.8421487808228,"z":"fa58896c.a8e848","wires":[]},{"id":"134a0350.3f0a5d","type":"for","name":"for each vf-module","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":971.0475997924805,"y":575.1755304336548,"z":"fa58896c.a8e848","wires":[["edc547d5.0aa318"]]},{"id":"edc547d5.0aa318","type":"switchNode","name":"switch service data vf-module == input vf-module","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\n","comments":"","outputs":1,"x":1277.380760192871,"y":574.8422660827637,"z":"fa58896c.a8e848","wires":[["318564aa.ae35ac"]]},{"id":"318564aa.ae35ac","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1547.3808135986328,"y":572.5088710784912,"z":"fa58896c.a8e848","wires":[["a8605c3c.4de66"]]},{"id":"499fe3f8.979a2c","type":"set","name":"set vf-module-index to -1","xml":"<set>\n<parameter name='vf-module-index' value='-1' />\n","comments":"","x":514.0475769042969,"y":505.5088291168213,"z":"fa58896c.a8e848","wires":[]},{"id":"9995bda.e901c4","type":"set","name":"set vf-module-index to idx","xml":"<set>\n<parameter name='vf-module-index' value='`$idx`' />\n","comments":"","x":1877.3809051513672,"y":543.5088500976562,"z":"fa58896c.a8e848","wires":[]},{"id":"59a5052d.a6c78c","type":"switchNode","name":"switch vf-module-index","xml":"<switch test='`$vf-module-index`'>\n","comments":"","outputs":1,"x":510.7142791748047,"y":623.842248916626,"z":"fa58896c.a8e848","wires":[["f812b688.df3ec8"]]},{"id":"f812b688.df3ec8","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":689.047664642334,"y":623.1756248474121,"z":"fa58896c.a8e848","wires":[["c06013b1.823e"]]},{"id":"c06013b1.823e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`\" />\n","comments":"","x":849.0475730895996,"y":622.5089282989502,"z":"fa58896c.a8e848","wires":[]},{"id":"a8605c3c.4de66","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1680.71435546875,"y":571.4286108016968,"z":"fa58896c.a8e848","wires":[["9995bda.e901c4","eb5ada4d.57f188"]]},{"id":"eb5ada4d.57f188","type":"break","name":"break","xml":"<break>\n","comments":"","x":1815.7143211364746,"y":593.095196723938,"z":"fa58896c.a8e848","wires":[]},{"id":"320f662a.e7dbfa","type":"set","name":"set order-status to Created","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='Created' />\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.request-information.request-action`' />\n","comments":"","x":1175.1429710388184,"y":1252.2947244644165,"z":"fa58896c.a8e848","wires":[]},{"id":"c5598d08.12175","type":"switchNode","name":"switch order-status","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1145.809555053711,"y":950.4613409042358,"z":"fa58896c.a8e848","wires":[["1a5708fa.418947","6c5dfae7.bf4834"]]},{"id":"1a5708fa.418947","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1323.8096504211426,"y":969.175669670105,"z":"fa58896c.a8e848","wires":[["b961dd8b.8c6fa"]]},{"id":"9d70d98b.f9c758","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1495.0001068115234,"y":921.4614133834839,"z":"fa58896c.a8e848","wires":[[]]},{"id":"b961dd8b.8c6fa","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"`'Order status is ' + $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 + ' instead of PendingDelete'`\" />\n","comments":"","x":1509.4763069152832,"y":969.1757106781006,"z":"fa58896c.a8e848","wires":[]},{"id":"cd4935a2.274768","type":"set","name":"copy ONAP model information","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-information.onap-model-information.'\n value='$vf-module-topology-operation-input.vf-module-information.onap-model-information.' />\n\n","comments":"","x":1185.8095932006836,"y":1205.6280965805054,"z":"fa58896c.a8e848","wires":[]},{"id":"e9cc2895.625258","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":1135.142879486084,"y":1300.62802028656,"z":"fa58896c.a8e848","wires":[]},{"id":"6c5dfae7.bf4834","type":"outcome","name":"PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":1348.4762802124023,"y":920.7143230438232,"z":"fa58896c.a8e848","wires":[["9d70d98b.f9c758"]]},{"id":"9af7c56e.87c6e8","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":1204.4762802124023,"y":1138.961350440979,"z":"fa58896c.a8e848","wires":[["ec94331f.572ec","aa8e07b3.dcbc28"]]},{"id":"fac5f793.94fd68","type":"returnFailure","name":"return failure","xml":"<return 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":1649.9047012329102,"y":1163.3898229599,"z":"fa58896c.a8e848","wires":[]},{"id":"ec94331f.572ec","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1474.2619705200195,"y":1119.3421812057495,"z":"fa58896c.a8e848","wires":[["d6b3fa68.162948"]]},{"id":"aa8e07b3.dcbc28","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1482.8334007263184,"y":1163.6278944015503,"z":"fa58896c.a8e848","wires":[["fac5f793.94fd68"]]},{"id":"d6b3fa68.162948","type":"returnFailure","name":"return failure","xml":"<return 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":1649.2619018554688,"y":1118.4850816726685,"z":"fa58896c.a8e848","wires":[]},{"id":"3ac9be19.c95f12","type":"comment","name":"check removed with US622450","info":"","comments":"","x":1107.5238876342773,"y":911.4286470413208,"z":"fa58896c.a8e848","wires":[]},{"id":"df389f05.3d088","type":"call","name":"call self-serve-vfmodule-changeassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-vfmodule-changeassign' mode='sync' >\n","comments":"","outputs":1,"x":975.5951690673828,"y":789.3214473724365,"z":"fa58896c.a8e848","wires":[["3b96494d.ab7ab6","d685937f.c7e43"]]},{"id":"3b96494d.ab7ab6","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1225.3451538085938,"y":789.5714359283447,"z":"fa58896c.a8e848","wires":[["6f907cba.351524"]]},{"id":"6f907cba.351524","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Encountered error performing changeassign for self-serve vf-module resources with error: '+ $error-message`\" />\n","comments":"","x":1384.9165802001953,"y":789.2143306732178,"z":"fa58896c.a8e848","wires":[]},{"id":"82bc5f2b.daf28","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":916.0953598022461,"y":1139.4287586212158,"z":"fa58896c.a8e848","wires":[["9af7c56e.87c6e8","cd4935a2.274768","320f662a.e7dbfa","e9cc2895.625258","4973a160.64101"]]},{"id":"d685937f.c7e43","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1231.6666069030762,"y":833.4285087585449,"z":"fa58896c.a8e848","wires":[["f13b3439.d3c228"]]},{"id":"f13b3439.d3c228","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":1388.8095932006836,"y":833.4285221099854,"z":"fa58896c.a8e848","wires":[]},{"id":"4973a160.64101","type":"switchNode","name":"switch model-customization-id","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`'>\n","comments":"","outputs":1,"x":1184.6666946411133,"y":1074.7351503372192,"z":"fa58896c.a8e848","wires":[["c0d3eb0d.421c18"]]},{"id":"c0d3eb0d.421c18","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1389.6666946411133,"y":1074.7351331710815,"z":"fa58896c.a8e848","wires":[["5d502035.c3483"]]},{"id":"5d502035.c3483","type":"returnFailure","name":"return failure","xml":"<return 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-information.onap-model-information.model-customization-uuid is a required input\" />\n","comments":"","x":1541.0952606201172,"y":1074.735131263733,"z":"fa58896c.a8e848","wires":[]},{"id":"48438534.93283c","type":"comment","name":"model-customization-uuid validation moved from validate-vnf-input DG","info":"","comments":"","x":1203.4166946411133,"y":1037.2351369857788,"z":"fa58896c.a8e848","wires":[]},{"id":"44948529.f6abec","type":"comment","name":"SELF-SERVE FORK","info":"","comments":"","x":795.9523849487305,"y":745.7142667770386,"z":"fa58896c.a8e848","wires":[]},{"id":"a99f8e3.3a5e27","type":"call","name":"call self-serve-vf-module-forking-logic","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-vf-module-forking-logic' mode='sync' >\n","comments":"","outputs":1,"x":554.9681701660156,"y":685.5361366271973,"z":"fa58896c.a8e848","wires":[[]]},{"id":"89912787.66ee78","type":"switchNode","name":"switch ss.self-serve-flag","xml":"<switch test=\"`$ss.self-serve-flag`\">\n","comments":"","outputs":1,"x":511.6823272705078,"y":958.25048828125,"z":"fa58896c.a8e848","wires":[["92f63a1f.1a08e8","dca3e5a3.e9fdf8"]]},{"id":"92f63a1f.1a08e8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":734.6822624206543,"y":1139.1071319580078,"z":"fa58896c.a8e848","wires":[["82bc5f2b.daf28"]]},{"id":"dca3e5a3.e9fdf8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":734.3965606689453,"y":788.9647417068481,"z":"fa58896c.a8e848","wires":[["df389f05.3d088"]]}] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-changeassign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-changeassign.json
index 52f2a38d..1f27962b 100755
--- a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-changeassign.json
+++ b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-changeassign.json
@@ -1 +1 @@
-[{"id":"ae768186.4826a","type":"dgstart","name":"DGSTART","outputs":1,"x":134.2857208251953,"y":92.41365671157837,"z":"d84650d6.6853b","wires":[["edafbe74.9da96"]]},{"id":"edafbe74.9da96","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":246.7142791748047,"y":132.65176725387573,"z":"d84650d6.6853b","wires":[["b0f5897.9207e78"]]},{"id":"b0f5897.9207e78","type":"method","name":"method vnf-topology-operation-changeassign","xml":"<method rpc='vnf-topology-operation-changeassign' mode='sync'>\n","comments":"","outputs":1,"x":242.42862701416016,"y":172.41365480422974,"z":"d84650d6.6853b","wires":[["670a4655.0f0308"]]},{"id":"1118501d.0e50c","type":"comment","name":"vnf-topology-operation-changeassign","info":"","comments":"","x":528.6305770874023,"y":40.00000047683716,"z":"d84650d6.6853b","wires":[]},{"id":"8d6e003.e53ef","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":533.5238342285156,"y":274.12794828414917,"z":"d84650d6.6853b","wires":[["536e7baf.586814","3ee50456.0e95fc"]]},{"id":"536e7baf.586814","type":"outcome","name":"CreateVnfInstance","xml":"<outcome value='CreateVnfInstance'>\n","comments":"","outputs":1,"x":757.6666488647461,"y":248.41365671157837,"z":"d84650d6.6853b","wires":[["57ce7cd7.f2a264"]]},{"id":"3ee50456.0e95fc","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":720.6666717529297,"y":292.4612956047058,"z":"d84650d6.6853b","wires":[["264a3806.603918"]]},{"id":"57ce7cd7.f2a264","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":949.2381057739258,"y":248.41369199752808,"z":"d84650d6.6853b","wires":[[]]},{"id":"264a3806.603918","type":"returnFailure","name":"return failure","xml":"<return 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 'changeassign' then request-action must be 'CreateVnfInstance'\" />\n","comments":"","x":928.0476188659668,"y":292.4613070487976,"z":"d84650d6.6853b","wires":[]},{"id":"dd2ece0d.8f5cf","type":"switchNode","name":"switch order-status","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1219.9524230957031,"y":602.9851970672607,"z":"d84650d6.6853b","wires":[["e6c87065.a3db","591c04ee.ad32ac"]]},{"id":"e6c87065.a3db","type":"other","name":"PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":1421.952480316162,"y":580.6993646621704,"z":"d84650d6.6853b","wires":[["198f754a.21cc0b"]]},{"id":"5bb0ece8.e079f4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"The requested VNF is not pending deletion\" />\n","comments":"","x":1588.095344543457,"y":624.0327425003052,"z":"d84650d6.6853b","wires":[]},{"id":"882bb260.db908","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":937.9524688720703,"y":598.7470188140869,"z":"d84650d6.6853b","wires":[["26e397f2.4cc038","33d8b0b9.4de03","e3cb0.1ccff351","35f1cabd.ad4236","73b1cc70.f76174","3c3e74.be8df18c"]]},{"id":"26e397f2.4cc038","type":"set","name":"set service-object-path","xml":"<set>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $service-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n","comments":"","x":1228.250099182129,"y":959.6637916564941,"z":"d84650d6.6853b","wires":[]},{"id":"33d8b0b9.4de03","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n","comments":"","x":1202.535800933838,"y":1002.5209302902222,"z":"d84650d6.6853b","wires":[]},{"id":"4c011a86.6ca9e4","type":"switchNode","name":"switch vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":519.5237731933594,"y":349.2707953453064,"z":"d84650d6.6853b","wires":[["1d484ab5.212555"]]},{"id":"1d484ab5.212555","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":706.1904525756836,"y":348.6040930747986,"z":"d84650d6.6853b","wires":[["3d72b49a.dfbe0c"]]},{"id":"3d72b49a.dfbe0c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n","comments":"","x":887.8570785522461,"y":348.6040930747986,"z":"d84650d6.6853b","wires":[]},{"id":"3ffdfebf.a94f62","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":502.61901092529297,"y":395.74697160720825,"z":"d84650d6.6853b","wires":[["71a91129.2afc7"]]},{"id":"71a91129.2afc7","type":"switchNode","name":"switch this vnf-id == input vnf-id","xml":"<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":757.6190986633301,"y":395.4136395454407,"z":"d84650d6.6853b","wires":[["ec4716db.366f98"]]},{"id":"ec4716db.366f98","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":988.9523849487305,"y":395.4136176109314,"z":"d84650d6.6853b","wires":[["b340587a.14bc08"]]},{"id":"b340587a.14bc08","type":"set","name":"set vnf-index","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1164.2855796813965,"y":395.4136395454407,"z":"d84650d6.6853b","wires":[]},{"id":"848ed288.0a323","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":514.2856750488281,"y":441.4136414527893,"z":"d84650d6.6853b","wires":[["bf8d4c59.bad85"]]},{"id":"bf8d4c59.bad85","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":695.9522933959961,"y":440.74697160720825,"z":"d84650d6.6853b","wires":[["6b0217ab.13f278"]]},{"id":"6b0217ab.13f278","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n <parameter name=\"error-message\" value=\"'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'\" />\n","comments":"","x":862.6189804077148,"y":440.41359758377075,"z":"d84650d6.6853b","wires":[]},{"id":"e3cb0.1ccff351","type":"set","name":"copy ONAP model information","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.'\n value='`$vnf-topology-operation-input.vnf-information.onap-model-information.`' />\n","comments":"","x":1251.607048034668,"y":862.2500286102295,"z":"d84650d6.6853b","wires":[]},{"id":"35f1cabd.ad4236","type":"set","name":"set vnf-level-oper-status to Created","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='Created' />\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":1264.202522277832,"y":912.0446929931641,"z":"d84650d6.6853b","wires":[]},{"id":"198f754a.21cc0b","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1571.2858428955078,"y":580.0476360321045,"z":"d84650d6.6853b","wires":[[]]},{"id":"591c04ee.ad32ac","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1396.2858772277832,"y":625.0476264953613,"z":"d84650d6.6853b","wires":[["5bb0ece8.e079f4"]]},{"id":"73b1cc70.f76174","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":1240.8691940307617,"y":789.6309394836426,"z":"d84650d6.6853b","wires":[["7c79848.c27b07c","afabb41.7670148"]]},{"id":"5cfb938f.c2a60c","type":"returnFailure","name":"return failure","xml":"<return 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":1593.9643821716309,"y":814.7261123657227,"z":"d84650d6.6853b","wires":[]},{"id":"7c79848.c27b07c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1428.3215827941895,"y":770.0117769241333,"z":"d84650d6.6853b","wires":[["4e267b5c.216c84"]]},{"id":"afabb41.7670148","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1436.8930130004883,"y":814.2974901199341,"z":"d84650d6.6853b","wires":[["5cfb938f.c2a60c"]]},{"id":"4e267b5c.216c84","type":"returnFailure","name":"return failure","xml":"<return 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":1593.3215827941895,"y":769.8213710784912,"z":"d84650d6.6853b","wires":[]},{"id":"62a1b7be.065008","type":"comment","name":"check removed with US622450","info":"","comments":"","x":1785.5716171264648,"y":591.00000166893,"z":"d84650d6.6853b","wires":[]},{"id":"f32a4fea.2c96b","type":"call","name":"call self-serve-vnf-changeassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-changeassign' mode='sync' >\n","comments":"","outputs":1,"x":1000.9285583496094,"y":1146.4644346237183,"z":"d84650d6.6853b","wires":[["50726d7e.731414","f9c4545a.90b8d8"]]},{"id":"50726d7e.731414","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1226.6785430908203,"y":1146.7144231796265,"z":"d84650d6.6853b","wires":[["3fccea3e.d01436"]]},{"id":"3fccea3e.d01436","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Encountered error performing changeassign for self-serve resources with error: '+ $error-message`\" />\n","comments":"","x":1386.2499694824219,"y":1146.3573179244995,"z":"d84650d6.6853b","wires":[]},{"id":"670a4655.0f0308","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":261.42858123779297,"y":395.71428537368774,"z":"d84650d6.6853b","wires":[["8d6e003.e53ef","4c011a86.6ca9e4","3ffdfebf.a94f62","848ed288.0a323","721219a1.3f1ec8","fa2765df.fe5b88"]]},{"id":"5e167505.53b26c","type":"comment","name":"self-serve FORKING LOGIC","info":"","comments":"","x":485.7142791748047,"y":499.9999828338623,"z":"d84650d6.6853b","wires":[]},{"id":"f9c4545a.90b8d8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1233.1430358886719,"y":1192.0001401901245,"z":"d84650d6.6853b","wires":[["cb4295a5.f1dcc8"]]},{"id":"cb4295a5.f1dcc8","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":1401.7144508361816,"y":1191.5715818405151,"z":"d84650d6.6853b","wires":[]},{"id":"3c3e74.be8df18c","type":"switchNode","name":"switch model-customization-id","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`'>\n","comments":"","outputs":1,"x":1255.5714492797852,"y":722.4643001556396,"z":"d84650d6.6853b","wires":[["53be53bf.12a77c"]]},{"id":"53be53bf.12a77c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1460.5714492797852,"y":722.464282989502,"z":"d84650d6.6853b","wires":[["d793a0f5.080fa"]]},{"id":"d793a0f5.080fa","type":"returnFailure","name":"return failure","xml":"<return 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-information.onap-model-information.model-customization-uuid is a required input\" />\n","comments":"","x":1612.000015258789,"y":722.4642810821533,"z":"d84650d6.6853b","wires":[]},{"id":"45dc498f.a8c298","type":"comment","name":"model-customization-uuid validation moved from validate-vnf-input DG","info":"","comments":"","x":1389.3214492797852,"y":681.4643135070801,"z":"d84650d6.6853b","wires":[]},{"id":"721219a1.3f1ec8","type":"call","name":"call self-serve-vnf-forking-logic","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-forking-logic' mode='sync' >\n","comments":"","outputs":1,"x":557.1428489685059,"y":540.0000171661377,"z":"d84650d6.6853b","wires":[[]]},{"id":"fa2765df.fe5b88","type":"switchNode","name":"switch ss.self-serve-flag","xml":"<switch test=\"`$ss.self-serve-flag`\">\n","comments":"","outputs":1,"x":536.9999237060547,"y":598.4286022186279,"z":"d84650d6.6853b","wires":[["e088e76b.3accb8","5f5b2904.9c0c68"]]},{"id":"e088e76b.3accb8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":763.9999237060547,"y":598.8571872711182,"z":"d84650d6.6853b","wires":[["882bb260.db908"]]},{"id":"5f5b2904.9c0c68","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":768.1427154541016,"y":1146.2859210968018,"z":"d84650d6.6853b","wires":[["f32a4fea.2c96b"]]}] \ No newline at end of file
+[{"id":"e1c194c1.6c0748","type":"dgstart","name":"DGSTART","outputs":1,"x":160,"y":109.55651497840881,"z":"a52bb8fe.adb788","wires":[["ead596a6.b90fe8"]]},{"id":"ead596a6.b90fe8","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":272.4285583496094,"y":149.79462552070618,"z":"a52bb8fe.adb788","wires":[["54440786.fc64e8"]]},{"id":"54440786.fc64e8","type":"method","name":"method vnf-topology-operation-changeassign","xml":"<method rpc='vnf-topology-operation-changeassign' mode='sync'>\n","comments":"","outputs":1,"x":268.14290618896484,"y":189.55651307106018,"z":"a52bb8fe.adb788","wires":[["83d88b47.4d48e8"]]},{"id":"a350908d.3a513","type":"comment","name":"vnf-topology-operation-changeassign","info":"","comments":"","x":554.344856262207,"y":57.1428587436676,"z":"a52bb8fe.adb788","wires":[]},{"id":"d4c5e8f.85d7e18","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":559.2381134033203,"y":291.2708065509796,"z":"a52bb8fe.adb788","wires":[["1d618262.2b7c0e","a1afa6db.9a8228"]]},{"id":"1d618262.2b7c0e","type":"outcome","name":"CreateVnfInstance","xml":"<outcome value='CreateVnfInstance'>\n","comments":"","outputs":1,"x":783.3809280395508,"y":265.5565149784088,"z":"a52bb8fe.adb788","wires":[["933303e3.faabc"]]},{"id":"a1afa6db.9a8228","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":746.3809509277344,"y":309.60415387153625,"z":"a52bb8fe.adb788","wires":[["43d5251e.0786cc"]]},{"id":"933303e3.faabc","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":974.9523849487305,"y":265.5565502643585,"z":"a52bb8fe.adb788","wires":[[]]},{"id":"43d5251e.0786cc","type":"returnFailure","name":"return failure","xml":"<return 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 'changeassign' then request-action must be 'CreateVnfInstance'\" />\n","comments":"","x":953.7618980407715,"y":309.60416531562805,"z":"a52bb8fe.adb788","wires":[]},{"id":"e362aea6.b1346","type":"switchNode","name":"switch order-status","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1255.6667022705078,"y":794.4138145446777,"z":"a52bb8fe.adb788","wires":[["74079e6b.aefc1","f88a32.e16d55d"]]},{"id":"74079e6b.aefc1","type":"other","name":"PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":1457.6667594909668,"y":772.1279821395874,"z":"a52bb8fe.adb788","wires":[["66e4e92e.0e5cb8"]]},{"id":"f0d7f0c0.b9715","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n <parameter name=\"error-message\" value=\"The requested VNF is not pending deletion\" />\n","comments":"","x":1623.8096237182617,"y":815.4613599777222,"z":"a52bb8fe.adb788","wires":[]},{"id":"262a166a.7d1fda","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":973.666748046875,"y":790.1756362915039,"z":"a52bb8fe.adb788","wires":[["f0824f71.68f53","10dfb5b0.7b060a","f92bbe0f.41a0d","1842bbb2.3f45e4","f4966ea2.08ebe","e75e31c6.759f8"]]},{"id":"f0824f71.68f53","type":"set","name":"set service-object-path","xml":"<set>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $service-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n","comments":"","x":1263.9643783569336,"y":1151.0924091339111,"z":"a52bb8fe.adb788","wires":[]},{"id":"10dfb5b0.7b060a","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n","comments":"","x":1238.2500801086426,"y":1193.9495477676392,"z":"a52bb8fe.adb788","wires":[]},{"id":"1883e45.437cc1c","type":"switchNode","name":"switch vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":545.2380523681641,"y":366.41365361213684,"z":"a52bb8fe.adb788","wires":[["bd6d0272.639e4"]]},{"id":"bd6d0272.639e4","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":731.9047317504883,"y":365.746951341629,"z":"a52bb8fe.adb788","wires":[["c208e20e.dee69"]]},{"id":"c208e20e.dee69","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n","comments":"","x":913.5713577270508,"y":365.746951341629,"z":"a52bb8fe.adb788","wires":[]},{"id":"e783c444.749018","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":528.3332901000977,"y":412.8898298740387,"z":"a52bb8fe.adb788","wires":[["1fa6a1eb.45f01e"]]},{"id":"1fa6a1eb.45f01e","type":"switchNode","name":"switch this vnf-id == input vnf-id","xml":"<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":783.3333778381348,"y":412.5564978122711,"z":"a52bb8fe.adb788","wires":[["e1552725.581738"]]},{"id":"e1552725.581738","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1014.6666641235352,"y":412.55647587776184,"z":"a52bb8fe.adb788","wires":[["7d331694.1e4b48"]]},{"id":"7d331694.1e4b48","type":"set","name":"set vnf-index","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1189.9998588562012,"y":412.5564978122711,"z":"a52bb8fe.adb788","wires":[]},{"id":"93ca063a.aa8398","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":539.9999542236328,"y":458.55649971961975,"z":"a52bb8fe.adb788","wires":[["49ee296a.51dd08"]]},{"id":"49ee296a.51dd08","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":721.6665725708008,"y":457.8898298740387,"z":"a52bb8fe.adb788","wires":[["37762b01.3309d4"]]},{"id":"37762b01.3309d4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n <parameter name=\"error-message\" value=\"'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'\" />\n","comments":"","x":888.3332595825195,"y":457.5564558506012,"z":"a52bb8fe.adb788","wires":[]},{"id":"f92bbe0f.41a0d","type":"set","name":"copy ONAP model information","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.'\n value='`$vnf-topology-operation-input.vnf-information.onap-model-information.`' />\n","comments":"","x":1287.3213272094727,"y":1053.6786460876465,"z":"a52bb8fe.adb788","wires":[]},{"id":"1842bbb2.3f45e4","type":"set","name":"set vnf-level-oper-status to Created","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='Created' />\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":1299.9168014526367,"y":1103.473310470581,"z":"a52bb8fe.adb788","wires":[]},{"id":"66e4e92e.0e5cb8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1607.0001220703125,"y":771.4762535095215,"z":"a52bb8fe.adb788","wires":[[]]},{"id":"f88a32.e16d55d","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1432.000156402588,"y":816.4762439727783,"z":"a52bb8fe.adb788","wires":[["f0d7f0c0.b9715"]]},{"id":"f4966ea2.08ebe","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":1276.5834732055664,"y":981.0595569610596,"z":"a52bb8fe.adb788","wires":[["ed164bcc.8ffe08","4e821164.7d0e4"]]},{"id":"4d872d36.fe2664","type":"returnFailure","name":"return failure","xml":"<return 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":1629.6786613464355,"y":1006.1547298431396,"z":"a52bb8fe.adb788","wires":[]},{"id":"ed164bcc.8ffe08","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1464.0358619689941,"y":961.4403944015503,"z":"a52bb8fe.adb788","wires":[["4d7f7e60.5f93a"]]},{"id":"4e821164.7d0e4","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1472.607292175293,"y":1005.7261075973511,"z":"a52bb8fe.adb788","wires":[["4d872d36.fe2664"]]},{"id":"4d7f7e60.5f93a","type":"returnFailure","name":"return failure","xml":"<return 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":1629.0358619689941,"y":961.2499885559082,"z":"a52bb8fe.adb788","wires":[]},{"id":"e93ff26c.a95eb","type":"comment","name":"check removed with US622450","info":"","comments":"","x":1821.2858963012695,"y":782.428619146347,"z":"a52bb8fe.adb788","wires":[]},{"id":"713df0ac.79aeb","type":"call","name":"call self-serve-vnf-changeassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-changeassign' mode='sync' >\n","comments":"","outputs":1,"x":1036.642837524414,"y":1337.8930521011353,"z":"a52bb8fe.adb788","wires":[["8a6087f4.1886c8","f68bd7bf.4aaeb8"]]},{"id":"8a6087f4.1886c8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1262.392822265625,"y":1338.1430406570435,"z":"a52bb8fe.adb788","wires":[["6db31d59.bc5ac4"]]},{"id":"6db31d59.bc5ac4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Encountered error performing changeassign for self-serve resources with error: '+ $error-message`\" />\n","comments":"","x":1421.9642486572266,"y":1337.7859354019165,"z":"a52bb8fe.adb788","wires":[]},{"id":"83d88b47.4d48e8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":287.14286041259766,"y":412.8571436405182,"z":"a52bb8fe.adb788","wires":[["d4c5e8f.85d7e18","1883e45.437cc1c","e783c444.749018","93ca063a.aa8398","31d5e46.5d4c41c","81386862.83ff18","15268cd3.f26f53"]]},{"id":"f68bd7bf.4aaeb8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1268.8573150634766,"y":1383.4287576675415,"z":"a52bb8fe.adb788","wires":[["41ad583b.a267b8"]]},{"id":"41ad583b.a267b8","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":1437.4287300109863,"y":1383.0001993179321,"z":"a52bb8fe.adb788","wires":[]},{"id":"e75e31c6.759f8","type":"switchNode","name":"switch model-customization-id","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`'>\n","comments":"","outputs":1,"x":1291.2857284545898,"y":913.8929176330566,"z":"a52bb8fe.adb788","wires":[["76be18e5.42cbc8"]]},{"id":"76be18e5.42cbc8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1496.2857284545898,"y":913.892900466919,"z":"a52bb8fe.adb788","wires":[["8c93cdfd.d8a0a"]]},{"id":"8c93cdfd.d8a0a","type":"returnFailure","name":"return failure","xml":"<return 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-information.onap-model-information.model-customization-uuid is a required input\" />\n","comments":"","x":1647.7142944335938,"y":913.8928985595703,"z":"a52bb8fe.adb788","wires":[]},{"id":"31f3c93b.c00b06","type":"comment","name":"model-customization-uuid validation moved from validate-vnf-input DG","info":"","comments":"","x":1425.0357284545898,"y":872.8929309844971,"z":"a52bb8fe.adb788","wires":[]},{"id":"31d5e46.5d4c41c","type":"call","name":"call self-serve-vnf-forking-logic","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-forking-logic' mode='sync' >\n","comments":"","outputs":1,"x":578.5713806152344,"y":684.2857723236084,"z":"a52bb8fe.adb788","wires":[[]]},{"id":"81386862.83ff18","type":"switchNode","name":"switch ss.self-serve-flag","xml":"<switch test=\"`$ss.self-serve-flag`\">\n","comments":"","outputs":1,"x":572.7142028808594,"y":789.8572196960449,"z":"a52bb8fe.adb788","wires":[["60e43430.ed401c","1920358d.2f5cda"]]},{"id":"60e43430.ed401c","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":799.7142028808594,"y":790.2858047485352,"z":"a52bb8fe.adb788","wires":[["262a166a.7d1fda"]]},{"id":"1920358d.2f5cda","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":803.8569946289062,"y":1337.7145385742188,"z":"a52bb8fe.adb788","wires":[["713df0ac.79aeb"]]},{"id":"15268cd3.f26f53","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 = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\n pfx='db.vf-model'>\n\n","comments":"","outputs":1,"x":564.1428527832031,"y":578.5714359283447,"z":"a52bb8fe.adb788","wires":[["4c8c944d.055d7c","75caadc7.5e0494"]]},{"id":"7805a43c.ee725c","type":"returnFailure","name":"return failure","xml":"<return 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 ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`\" />\n","comments":"","x":964.999885559082,"y":601.9999370574951,"z":"a52bb8fe.adb788","wires":[]},{"id":"4c8c944d.055d7c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":786.2142562866211,"y":557.5237483978271,"z":"a52bb8fe.adb788","wires":[["e499924e.025d2"]]},{"id":"75caadc7.5e0494","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":794.7856864929199,"y":601.8094615936279,"z":"a52bb8fe.adb788","wires":[["7805a43c.ee725c"]]},{"id":"e499924e.025d2","type":"returnFailure","name":"return failure","xml":"<return 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":964.3570861816406,"y":557.0951957702637,"z":"a52bb8fe.adb788","wires":[]},{"id":"50618ca.12b8274","type":"comment","name":"Query is needed by forking logic","info":"","comments":"","x":584.2857055664062,"y":532.8572034835815,"z":"a52bb8fe.adb788","wires":[]}] \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/resources/graph.versions b/platform-logic/generic-resource-api/src/main/resources/graph.versions
index d59313c1..bae81681 100755
--- a/platform-logic/generic-resource-api/src/main/resources/graph.versions
+++ b/platform-logic/generic-resource-api/src/main/resources/graph.versions
@@ -34,6 +34,8 @@ GENERIC-RESOURCE-API generate-FQPN ${project.version} sync
GENERIC-RESOURCE-API generate-host-routes-host-route-id ${project.version} sync
GENERIC-RESOURCE-API generate-l3network-network-id ${project.version} sync
GENERIC-RESOURCE-API generate-panorama-name ${project.version} sync
+GENERIC-RESOURCE-API generate-cp-instance-id ${project.version} sync
+GENERIC-RESOURCE-API vf-module-generate-heat-parameters ${project.version} sync
GENERIC-RESOURCE-API generate-subnets-subnet-id ${project.version} sync
GENERIC-RESOURCE-API generate-unique-name ${project.version} sync
GENERIC-RESOURCE-API generate-vpn-binding-id ${project.version} sync
@@ -124,7 +126,6 @@ GENERIC-RESOURCE-API self-serve-vnf-changeassign ${project.version} sync
GENERIC-RESOURCE-API self-serve-vnf-ra-assignment ${project.version} sync
GENERIC-RESOURCE-API self-serve-vnf-unassign ${project.version} sync
GENERIC-RESOURCE-API self-serve-vnf-forking-logic ${project.version} sync
-
GENERIC-RESOURCE-API service-topology-operation-assign ${project.version} sync
GENERIC-RESOURCE-API service-topology-operation-changeassign ${project.version} sync
GENERIC-RESOURCE-API service-topology-operation-deactivate ${project.version} sync
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-vf-module-put.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-vf-module-put.xml
index 2cf8ee17..63a6ca26 100644
--- a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-vf-module-put.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-vf-module-put.xml
@@ -3,6 +3,15 @@
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='self-serve-aai-vf-module-put' mode='sync'>
<block atomic="true">
+ <switch test='`$ss.capability-name`'>
+ <outcome value=''>
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500"/>
+ <parameter name="error-message" value="ss.capability-name is null" />
+ </return>
+ </outcome>
+ </switch>
<switch test='`$ss.capability-action`'>
<outcome value=''>
<return status="failure">
@@ -49,7 +58,7 @@
<parameter name='ss.param.vf-module-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />
</set>
</outcome>
- <outcome value='volume_group_id'>
+ <outcome value='volume-group-id'>
<set>
<parameter name='ss.param.volume-group-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />
</set>
@@ -100,9 +109,10 @@
<parameter name='ss.param.loopback0-ipv4-address-index' value='`$bidx`' />
</set>
</outcome>
- <outcome value='aai-vf-module-put'>
+ <outcome value='ipv4-loopback0-address'>
<set>
- <parameter name='ss.param.aai-vf-module-put-index' value='`$bidx`' />
+ <parameter name='ss.param.ipv4-loopback0-address' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />
+ <parameter name='ss.param.ipv4-loopback0-address-index' value='`bidx`' />
</set>
</outcome>
<outcome value='nfc-naming-code'>
@@ -135,12 +145,6 @@
<parameter name='ss.param.vnfc-model-version-index' value='`$bidx`' />
</set>
</outcome>
- <outcome value='ipv4-loopback0-address'>
- <set>
- <parameter name='ss.param.ipv4-loopback0-address' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />
- <parameter name='ss.param.ipv4-loopback0-address-index' value='`bidx`' />
- </set>
- </outcome>
<outcome value='as-number'>
<set>
<parameter name='ss.param.as-number' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />
@@ -153,6 +157,58 @@
<parameter name='ss.param.vlan-id-outer-index' value='`$bidx`' />
</set>
</outcome>
+ <outcome value='availability_zone_0'>
+ <set>
+ <parameter name='ss.param.availability-zone-0' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />
+ <parameter name='ss.param.availability-zone-0-index' value='`$bidx`' />
+ </set>
+ </outcome>
+ <outcome value='aai-vf-module-put'>
+ <block>
+ <set>
+ <parameter name='ss.param.aai-vf-module-put-index' value='`$bidx`' />
+ </set>
+ <for silentFailure='true' index="kidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key_length`">
+ <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].name`'>
+ <outcome value='generic-vnf'>
+ <set>
+ <parameter name='ss.resource-key.generic-vnf' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />
+ </set>
+ </outcome>
+ <outcome value='vf-module'>
+ <set>
+ <parameter name='ss.resource-key.vf-module' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />
+ </set>
+ </outcome>
+ <outcome value='volume-group'>
+ <set>
+ <parameter name='ss.resource-key.volume-group' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />
+ </set>
+ </outcome>
+ <outcome value='vnfc'>
+ <set>
+ <parameter name='ss.resource-key.vnfc' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />
+ </set>
+ </outcome>
+ <outcome value='connection-points'>
+ <set>
+ <parameter name='ss.resource-key.connection-points' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />
+ </set>
+ </outcome>
+ <outcome value='l-interface'>
+ <set>
+ <parameter name='ss.resource-key.l-interface' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />
+ </set>
+ </outcome>
+ <outcome value='l3-netework'>
+ <set>
+ <parameter name='ss.resource-key.l3-network' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />
+ </set>
+ </outcome>
+ </switch>
+ </for>
+ </block>
+ </outcome>
</switch>
</outcome>
</execute>
@@ -161,1097 +217,1854 @@
<parameter name='ss.param.vnf-id' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-id`' />
</set>
</block>
- <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block atomic='true'>
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id "
pfx="tmp.aai.vnf" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status'
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`'Encountered error to get generic-vnf with vnf-id=' + $ss.param.vnf-id + ' from AnAI'`" />
- </return>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status'
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Encountered error to get generic-vnf with vnf-id=' + $ss.param.vnf-id + ' from AnAI'`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`'generic-vnf.vnf-name with vnf-id=' + $ss.param.vnf-id + ' not found in AAI'`" />
- </return>
- </block>
- </outcome>
- </get-resource>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'generic-vnf.vnf-name with vnf-id=' + $ss.param.vnf-id + ' not found in AAI. '`" />
+ </return>
+ </block>
+ </outcome>
+ </get-resource>
+ <switch test="`$ss.param.ipv4-loopback0-address != ''`">
+ <outcome value='true'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >
+ <parameter name='source' value='`$ss.param.ipv4-loopback0-address`' />
+ <parameter name='target' value='$' />
+ <outcome value='true'>
+ <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="`'ss.param.ipv4-loopback0-address = ' + $ss.param.ipv4-loopback0-address`"/>
+ <parameter name="field3" value="__SKIP ipv4-loopback0-address update for generic-vnf in AnAI__"/>
+ </record>
+ </outcome>
+ <outcome value='false'>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$ss.param.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$ss.param.ipv4-oam-address`' />
- <parameter name="as-number" value='`$ss.param.as-number`' />
- <parameter name="vlan-id-outer" value='`$ss.param.vlan-id-outer`' />
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`'Failed to update generic-vnf.vnf-name in AnAI with vnf-name=' + $ss.param.vnf-name`" />
- </return>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status'
+ <parameter name="ipv4-loopback0-address" value='`$ss.param.ipv4-loopback0-address`' />
+ <outcome value='failure'>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Failed to update generic-vnf.ipv4-loopback0-address in AnAI with ipv4-loopback0-address=' + $ss.param.ipv4-loopback0-address + '; ' + $error-message`" />
+ </return>
+ </outcome>
+ <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Failed to update generic-vnf because vnf-id =' + $ss.param.vnf-id + ' is not found in AAI. ' + $error-message`" />
+ </return>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='ss.ipv4-loopback0-address-updated' value='true' />
+ </set>
+ </outcome>
+ </update>
+ </outcome>
+ </execute>
+ </outcome>
+ </switch>
+ <switch test="`$ss.param.ipv4-oam-address != ''`">
+ <outcome value='true'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >
+ <parameter name='source' value='`$ss.param.ipv4-oam-address`' />
+ <parameter name='target' value='$' />
+ <outcome value='true'>
+ <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="`'ss.param.ipv4-oam-address = ' + $ss.param.ipv4-oam-address`"/>
+ <parameter name="field3" value="__SKIP ipv4-oam-address update for generic-vnf in AnAI__"/>
+ </record>
+ </outcome>
+ <outcome value='false'>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-oam-address" value='`$ss.param.ipv4-oam-address`' />
+ <outcome value='failure'>
+ <block atomic='true'>
+ <block>
+ <switch test="`$ss.ipv4-loopback0-address-updated`">
+ <outcome value='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.ipv4-loopback0-address update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`'Failed to update generic-vnf.vnf-name because generic-vnf with vnf-id =' + $ss.param.vnf-id + ' is not found in AAI'`" />
- </return>
- </block>
- </outcome>
- </update>
- <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vf-module"
- key="generic-vnf.vnf-id = $ss.param.vnf-id
- AND vf-module.vf-module-id = $ss.param.vf-module-id "
- pfx="tmp.aai.vfmdoule" >
- <outcome value='failure'>
- <block atomic='true'>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.ipv4-loopback0-address update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.ipv4-loopback0-address update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Failed to update generic-vnf.ipv4-oam-address in AnAI with ipv4-oam-address=' + $ss.param.ipv4-oam-address + '; ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic='true'>
+ <block>
+ <switch test="`$ss.ipv4-loopback0-address-updated`">
+ <outcome value='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.ipv4-loopback0-address update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`'Failed to get vf-module in AnAI with vf-module-id = ' + $ss.param.vf-module-id + $error-message`" />
- </return>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic='true'>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.ipv4-loopback0-address update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.ipv4-loopback0-address update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Failed to update generic-vnf because vnf-id =' + $ss.param.vnf-id + ' is not found in AAI' + '; ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='ss.ipv4-oam-address-updated' value='true' />
+ </set>
+ </outcome>
+ </update>
+ </outcome>
+ </execute>
+ </outcome>
+ </switch>
+ <switch test="`$ss.param.as-number != ''`">
+ <outcome value='true'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >
+ <parameter name='source' value='`$ss.param.as-number`' />
+ <parameter name='target' value='$' />
+ <outcome value='true'>
+ <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="`'ss.param.as-number = ' + $ss.param.as-number`"/>
+ <parameter name="field3" value="__SKIP as-number update for generic-vnf in AnAI__"/>
+ </record>
+ </outcome>
+ <outcome value='false'>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="as-number" value='`$ss.param.as-number`' />
+ <outcome value='failure'>
+ <block atomic='true'>
+ <block>
+ <block>
+ <switch test="`$ss.ipv4-loopback0-address-updated`">
+ <outcome value='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.ipv4-loopback0-address update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`'vf-module not found in AnAI with vf-module-id=' + $ss.param.vf-module-id + $error-message`" />
- </return>
- </block>
- </outcome>
- </get-resource>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vf-module"
- key="generic-vnf.vnf-id = $ss.param.vnf-id
- AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$ss.param.vf-module-name`' />
- <outcome value='failure'>
- <block atomic='true'>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.ipv4-loopback0-address update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.ipv4-loopback0-address update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.ipv4-oam-address-updated`">
+ <outcome value='true'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.ipv4-oam-address update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`'Failed to update vf-module-name with vf-module-id = ' + $ss.param.vf-module-id + ' in AnAI; ' + $error-message`" />
- </return>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic='true'>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.ipv4-oam-address update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.ipv4-oam-address update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Failed to update generic-vnf.as-number in AnAI with as-number=' + $ss.param.as-number + '; ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic='true'>
+ <block>
+ <block>
+ <switch test="`$ss.ipv4-loopback0-address-updated`">
+ <outcome value='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.ipv4-loopback0-address update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`'Failed to update vf-module-name with vf-module-id =' + $ss.param.vf-module-id + ' because vf-module is not found in AAI' + $error-message`" />
- </return>
- </block>
- </outcome>
- </update>
- <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="volume-group"
- key="cloud-region.cloud-owner = $prop.cloud-owner
- AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
- AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
- AND volume-group-id = $ss.param.volume-group-id"
- pfx="tmp.aai.volume-group" >
- <outcome value='failure'>
- <block atomic='true'>
- <block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.ipv4-loopback0-address update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.ipv4-loopback0-address update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.ipv4-oam-address-updated`">
+ <outcome value='true'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.ipv4-oam-address update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vf-module"
- key="generic-vnf.vnf-id = $ss.param.vnf-id
- AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.ipv4-oam-address update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.ipv4-oam-address update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Failed to update generic-vnf because vnf-id =' + $ss.param.vnf-id + ' is not found in AAI. ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='ss.as-number-updated' value='true' />
+ </set>
+ </outcome>
+ </update>
</outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
- </set>
+ </execute>
+ </outcome>
+ </switch>
+ <switch test="`$ss.param.vlan-id-outer != ''`">
+ <outcome value='true'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >
+ <parameter name='source' value='`$ss.param.vlan-id-outer`' />
+ <parameter name='target' value='$' />
+ <outcome value='true'>
+ <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="`'ss.param.vlan-id-outer = ' + $ss.param.vlan-id-outer`"/>
+ <parameter name="field3" value="__SKIP vlan-id-outer update for generic-vnf in AnAI__"/>
+ </record>
</outcome>
- </update>
- </block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`'Failed to get volume-group in AnAI with volume-group-id = ' + $ss.param.volume-group-id + $error-message`" />
- </return>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic='true'>
- <block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <outcome value='false'>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="vlan-id-outer" value='`$ss.param.vlan-id-outer`' />
+ <outcome value='failure'>
+ <block atomic='true'>
+ <block>
+ <block>
+ <block>
+ <switch test="`$ss.ipv4-loopback0-address-updated`">
+ <outcome value='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.ipv4-loopback0-address update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vf-module"
- key="generic-vnf.vnf-id = $ss.param.vnf-id
- AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.ipv4-loopback0-address update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.ipv4-loopback0-address update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.ipv4-oam-address-updated`">
+ <outcome value='true'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.ipv4-oam-address update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.ipv4-oam-address update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.ipv4-oam-address update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.as-number-updated`">
+ <outcome value='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.as-number update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.as-number update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.as-number update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Failed to update generic-vnf.vlan-id-outer in AnAI with as-number=' + $ss.param.as-number + '; ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic='true'>
+ <block>
+ <block>
+ <block>
+ <switch test="`$ss.ipv4-loopback0-address-updated`">
+ <outcome value='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.ipv4-loopback0-address update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.ipv4-loopback0-address update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.ipv4-loopback0-address update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.ipv4-oam-address-updated`">
+ <outcome value='true'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.ipv4-oam-address update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.ipv4-oam-address update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.ipv4-oam-address update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.as-number-updated`">
+ <outcome value='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.as-number update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.as-number update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.as-number update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Failed to update generic-vnf because vnf-id =' + $ss.param.vnf-id + ' is not found in AAI. ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='ss.vlan-id-outer-updated' value='true' />
+ </set>
+ </outcome>
+ </update>
</outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
+ </execute>
+ </outcome>
+ </switch>
+ <switch test="`$ss.param.availability-zone-0 != ''`">
+ <outcome value='true'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >
+ <parameter name='source' value='`$ss.param.availability-zone-0`' />
+ <parameter name='target' value='$' />
+ <outcome value='true'>
+ <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="`'ss.param.availability-zone-0 = ' + $ss.param.availability-zone-0`"/>
+ <parameter name="field3" value="__SKIP availability-zone-0 update for generic-vnf in AnAI__"/>
+ </record>
</outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
- </set>
+ <outcome value='false'>
+ <block atomic='true'>
+ <set>
+ <parameter name='ss.availability-zone.related-link'
+ value="`'/aai/v$/cloud-infrastructure/cloud-regions/cloud-region/' +
+ $prop.cloud-region.cloud-owner + '/' + $ss.param.aic-cloud-region +
+ '/availability-zones/availability-zone/' +
+ $ss.param.availability-zone-0`" />
+ </set>
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf:relationship-list"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id" >
+ <parameter name="relationship-list.relationship[0].related-to" value="availability-zone" />
+ <parameter name="relationship-list.relationship[0].related-link" value="`$ss.availability-zone.related-link`" />
+ <!--
+<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="`$prop.cloud-region.cloud-owner`" /><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="`$ss.param.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="`$ss.param.availability-zone-0`" />
+-->
+ <outcome value='failure'>
+ <block atomic='true'>
+ <block>
+ <block>
+ <block>
+ <block>
+ <switch test="`$ss.ipv4-loopback0-address-updated`">
+ <outcome value='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.ipv4-loopback0-address update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.ipv4-loopback0-address update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.ipv4-loopback0-address update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.ipv4-oam-address-updated`">
+ <outcome value='true'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.ipv4-oam-address update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.ipv4-oam-address update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.ipv4-oam-address update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.as-number-updated`">
+ <outcome value='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.as-number update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.as-number update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.as-number update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.vlan-id-outer-updated`">
+ <outcome value='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.vlan-id-outer update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.vlan-id-outer update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.vlan-id-outer update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Failed to save availability-zone relationship for generic-vnf in AnAI with availability-zone-name =' + $ss.param.as-number + '; ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic='true'>
+ <block>
+ <block>
+ <block>
+ <block>
+ <switch test="`$ss.ipv4-loopback0-address-updated`">
+ <outcome value='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.ipv4-loopback0-address update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.ipv4-loopback0-address update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.ipv4-loopback0-address update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.ipv4-oam-address-updated`">
+ <outcome value='true'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.ipv4-oam-address update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.ipv4-oam-address update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.ipv4-oam-address update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.as-number-updated`">
+ <outcome value='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.as-number update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.as-number update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.as-number update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.vlan-id-outer-updated`">
+ <outcome value='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf.vlan-id-outer update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf.vlan-id-outer update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf.vlan-id-outer update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Failed to create availability-zone relationship because generic-vnf with vnf-id =' + $ss.param.vnf-id + ' is not found in AAI. ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='ss.availability-zone-0-updated' value='true' />
+ </set>
+ </outcome>
+ </save>
+ </block>
</outcome>
- </update>
- </block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`'volume-group not found in AnAI with volume-group-id=' + $ss.param.volume-group-id + $error-message`" />
- </return>
+ </execute>
+ </outcome>
+ </switch>
</block>
</outcome>
- </get-resource>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="volume-group"
- key="cloud-region.cloud-owner = $prop.cloud-owner
- AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
- AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
- AND volume-group-id = $ss.param.volume-group-id" >
- <parameter name="volume-group-name" value='`$ss.param.volume-group-name`' />
- <parameter name="volume-group-id" value='`$ss.param.volume-group-id`' />
- <outcome value='failure'>
+ </switch>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
<block atomic='true'>
- <block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vf-module"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id
+ AND vf-module.vf-module-id = $ss.param.vf-module-id "
+ pfx="tmp.aai.vfmdoule" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Failed to get vf-module in AnAI with vf-module-id = ' + $ss.param.vf-module-id + '; ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic='true'>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'vf-module not found in AnAI with vf-module-id=' + $ss.param.vf-module-id + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ </get-resource>
+ <set>
+ <parameter name='ss.selflink' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/' +
+$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.service-instance-id +
+'/service-data/vnfs/vnf/' +
+$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.vnf-id +
+'/vnf-data/vf-modules/vf-module/' +
+$ss.param.vf-module-id +
+'/vf-module-data/vf-module-topology/'`" />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vf-module"
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to update volume-group with volume-group-id =' + $ss.param.volume-group-id + ' and volume-group-name = ' + $ss.param.volume-group-name + ' in AnAI.' + $error-message`" />
- </return>
+ <parameter name="vf-module-name" value='`$ss.param.vf-module-name`' />
+ <parameter name="selflink" value='`$ss.selflink`' />
+ <outcome value='failure'>
+ <block atomic='true'>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Failed to update vf-module-name with vf-module-id = ' + $ss.param.vf-module-id + ' in AnAI; ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic='true'>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Failed to update vf-module-name with vf-module-id =' + $ss.param.vf-module-id + ' because vf-module is not found in AAI' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ </update>
</block>
</outcome>
- <outcome value='not-found'>
+ </switch>
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
<block atomic='true'>
- <block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="volume-group"
+ key="cloud-region.cloud-owner = $prop.cloud-owner
+ AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
+ AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
+ AND volume-group-id = $ss.param.volume-group-id"
+ pfx="tmp.aai.volume-group" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <block>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vf-module"
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to update volume-group with volume-group-id =' + $ss.param.volume-group-id + ' and volume-group-name = ' + $ss.param.volume-group-name + ' in AnAI.' + $error-message`" />
- </return>
- </block>
- </outcome>
- </update>
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vnfc"
- key="vnfc.vnfc-name = $ss.param.vnfc-name" >
- <parameter name="nfc-naming-code" value='`$ss.param.nfc-naming-code`' />
- <parameter name="nfc-function" value='`$ss.param.nfc-function`' />
- <parameter name="model-customization-id" value='`$ss.param.vnfc-model-customization-uuid`' />
- <parameter name="model-invariant-id" value='`$ss.param.vnfc-model-invariant-uuid`' />
- <parameter name="model-version-id" value='`$ss.param.vnfc-model-version`' />
- <outcome value='failure'>
- <block atomic='true'>
- <block>
- <block>
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Failed to get volume-group in AnAI with volume-group-id = ' + $ss.param.volume-group-id + '; ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
<block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <block>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vf-module"
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
- </set>
- </outcome>
- </update>
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'volume-group not found in AnAI with volume-group-id=' + $ss.param.volume-group-id + '; ' + $error-message`" />
+ </return>
</block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK volume-group update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </outcome>
+ </get-resource>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="volume-group"
key="cloud-region.cloud-owner = $prop.cloud-owner
AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
AND volume-group-id = $ss.param.volume-group-id" >
- <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create vnfc with vnfc-name =' + $ss.param.vnfc-name + ' in AnAI.' + $error-message`" />
- </return>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic='true'>
- <block>
- <block>
+ <parameter name="volume-group-name" value='`$ss.param.volume-group-name`' />
+ <parameter name="volume-group-id" value='`$ss.param.volume-group-id`' />
+ <outcome value='failure'>
<block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <block>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vf-module"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id
+ AND vf-module.vf-module-id = $ss.param.vf-module-id " >
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`' Failed to update volume-group with volume-group-id =' + $ss.param.volume-group-id + ' and volume-group-name = ' + $ss.param.volume-group-name + ' in AnAI.' + $error-message`" />
+ </return>
</block>
+ </outcome>
+ <outcome value='not-found'>
<block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <block>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vf-module"
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
- </set>
- </outcome>
- </update>
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'volume-group not found in AnAI with volume-group-id=' + $ss.param.volume-group-id + '; ' + $error-message`" />
+ </return>
</block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK volume-group update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="volume-group"
- key="cloud-region.cloud-owner = $prop.cloud-owner
- AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
- AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
- AND volume-group-id = $ss.param.volume-group-id" >
- <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create vnfc with vnfc-name =' + $ss.param.vnfc-name + ' in AnAI.' + $error-message`" />
- </return>
+ </outcome>
+ </update>
</block>
</outcome>
- </save>
- <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="cp"
- key="cp.cp-instance-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id
- AND vnfc.vnfc.vnfc-name = $ss.param.vnfc-name" >
- <parameter name="cp-instance-id"
- value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id`' />
- <outcome value='failure'>
- <block atomic='true'>
- <block>
+ </switch>
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vnfc"
+ key="vnfc.vnfc-name = $ss.param.vnfc-name" >
+ <parameter name="nfc-naming-code" value='`$ss.param.nfc-naming-code`' />
+ <parameter name="nfc-function" value='`$ss.param.nfc-function`' />
+ <parameter name="model-customization-id" value='`$ss.param.vnfc-model-customization-uuid`' />
+ <parameter name="model-invariant-id" value='`$ss.param.vnfc-model-invariant-uuid`' />
+ <parameter name="model-version-id" value='`$ss.param.vnfc-model-version`' />
+ <outcome value='failure'>
+ <block atomic='true'>
<block>
<block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
</outcome>
- </update>
+ </switch>
</block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vf-module"
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
</block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK volume-group update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK volume-group update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="volume-group"
key="cloud-region.cloud-owner = $prop.cloud-owner
AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
AND volume-group-id = $ss.param.volume-group-id" >
- <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vnfc save"/>
- </record>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vnfc"
- key="vnfc.vnfc-name = $ss.param.vnfc-name" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
+ <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
</outcome>
- </switch>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ </set>
+ </outcome>
+ </update>
</block>
</outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
+ </switch>
</block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`' Failed to create vnfc with vnfc-name =' + $ss.param.vnfc-name + ' in AnAI. ' + $error-message`" />
+ </return>
</block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create connection-point with cp-instance-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id + ' in AnAI.' + $error-message`" />
- </return>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic='true'>
- <block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic='true'>
<block>
<block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
</outcome>
- </update>
+ </switch>
</block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vf-module"
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
</block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK volume-group update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK volume-group update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="volume-group"
key="cloud-region.cloud-owner = $prop.cloud-owner
AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
AND volume-group-id = $ss.param.volume-group-id" >
- <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vnfc save"/>
- </record>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vnfc"
- key="vnfc.vnfc-name = $ss.param.vnfc-name" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
+ <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
</outcome>
- </switch>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ </set>
+ </outcome>
+ </update>
</block>
</outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
+ </switch>
</block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`' Failed to create vnfc with vnfc-name =' + $ss.param.vnfc-name + ' in AnAI. ' + $error-message`" />
+ </return>
</block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create connection-point with cp-instance-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id + ' in AnAI.' + $error-message`" />
- </return>
- </block>
- </outcome>
- <outcome value='success'>
- <for silentFailure='true' index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vlan-tag"
- key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
- <parameter name="vlan-tag-id"
- value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid`' />
- <parameter name="vlan-tag-role"
- value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-tag-description`' />
- <parameter name="vlan-id-outer"
- value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-tag-id`' />
- <outcome value='failure'>
+ </outcome>
+ </save>
+ </outcome>
+ </switch>
+ <switch test="`$ss.resource-key.connection-points`">
+ <outcome value='connection-points'>
+ <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="cp"
+ key="cp.cp-instance-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id
+ AND vnfc.vnfc-name = $ss.param.vnfc-name" >
+ <parameter name="cp-instance-id"
+ value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id`' />
+ <outcome value='failure'>
+ <block atomic='true'>
<block atomic='true'>
<block>
<block>
<block>
- <block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <block atomic='true'>
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
<parameter name="field1" value="ROLLBACK vf-module update"/>
@@ -1261,6 +2074,7 @@
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND vf-module.vf-module-id = $ss.param.vf-module-id " >
<parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
<outcome value='failure'>
<set>
<parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
@@ -1278,8 +2092,12 @@
</outcome>
</update>
</block>
- </block>
- <block atomic='true'>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
<parameter name="field1" value="ROLLBACK volume-group update"/>
@@ -1308,7 +2126,11 @@
</outcome>
</update>
</block>
- </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
<block atomic='true'>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
@@ -1350,99 +2172,62 @@
</outcome>
</delete>
</block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vlan-tag save"/>
- </record>
- <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
- <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vlan-tag"
- key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </for>
- </for>
- </block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' in AnAI.' + $error-message`" />
- </return>
+ </outcome>
+ </switch>
</block>
- </outcome>
- <outcome value='not-found'>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`' Failed to create connection-point with cp-instance-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id + ' in AnAI. ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic='true'>
<block atomic='true'>
<block>
<block>
<block>
- <block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <block atomic='true'>
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
<parameter name="field1" value="ROLLBACK vf-module update"/>
@@ -1452,6 +2237,7 @@
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND vf-module.vf-module-id = $ss.param.vf-module-id " >
<parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
<outcome value='failure'>
<set>
<parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
@@ -1469,8 +2255,12 @@
</outcome>
</update>
</block>
- </block>
- <block atomic='true'>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
<parameter name="field1" value="ROLLBACK volume-group update"/>
@@ -1499,7 +2289,11 @@
</outcome>
</update>
</block>
- </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
<block atomic='true'>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
@@ -1541,204 +2335,830 @@
</outcome>
</delete>
</block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vlan-tag save"/>
- </record>
- <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
- <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`' Failed to create connection-point with cp-instance-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id + ' in AnAI. ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='success'>
+ <for silentFailure='true' index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vlan-tag"
key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
- <outcome value='failure'>
+ <parameter name="vlan-tag-id"
+ value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid`' />
+ <parameter name="vlan-tag-role"
+ value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-tag-description`' />
+ <parameter name="vlan-id-outer"
+ value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-tag-id`' />
+ <outcome value='success'>
+ <block atomic='true'>
+ <set>
+ <parameter name='ss.cp.related-link'
+ value="`'/aai/v$/network/vnfcs/vnfc/' +
+ $ss.param.vnfc-name +
+ '/cps/cp/' +
+ $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id`" />
+ </set>
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vlan-tag:relationship-list"
+ key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
+ <parameter name="relationship-list.relationship[0].related-to" value="cp" />
+ <parameter name="relationship-list.relationship[0].related-link" value="`$ss.cp.related-link`" />
+ <outcome value='failure'>
+ <block atomic='true'>
+ <block>
<block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
+ <block>
+ <block>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vf-module"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id
+ AND vf-module.vf-module-id = $ss.param.vf-module-id " >
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK volume-group update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="volume-group"
+ key="cloud-region.cloud-owner = $prop.cloud-owner
+ AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
+ AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
+ AND volume-group-id = $ss.param.volume-group-id" >
+ <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
<block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vnfc save"/>
+ </record>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vnfc"
+ key="vnfc.vnfc-name = $ss.param.vnfc-name" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
</block>
</outcome>
</switch>
</block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </for>
- </for>
- </block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' in AnAI.' + $error-message`" />
- </return>
- </block>
- </outcome>
- <outcome value='success'>
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vlan-tag:relationship-list"
- key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
- <parameter name="relationship-list.relationship[0].related-to" value="cp" />
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="cp.cp-instance-id" />
- <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.connection-point-id`" />
- <outcome value='failure'>
- <block atomic='true'>
- <block>
- <block>
- <block>
- <block>
<block atomic='true'>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ <parameter name="field1" value="ROLLBACK vlan-tag save"/>
</record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
+ <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vlan-tag"
+ key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </for>
+ </for>
+ </block>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`' Failed to create cp relationship for vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' in AnAI. ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic='true'>
+ <block>
+ <block atomic='true'>
+ <block>
+ <block>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vf-module"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id
+ AND vf-module.vf-module-id = $ss.param.vf-module-id " >
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK volume-group update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="volume-group"
+ key="cloud-region.cloud-owner = $prop.cloud-owner
+ AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
+ AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
+ AND volume-group-id = $ss.param.volume-group-id" >
+ <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vnfc save"/>
+ </record>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vnfc"
+ key="vnfc.vnfc-name = $ss.param.vnfc-name" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </block>
</outcome>
- </update>
+ </switch>
</block>
<block atomic='true'>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
+ <parameter name="field1" value="ROLLBACK vlan-tag save"/>
</record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
+ <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vlan-tag"
+ key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </for>
+ </for>
+ </block>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`' Failed to create cp relationship for vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' in AnAI. ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ </save>
+ </block>
+ </outcome>
+ <outcome value='failure'>
+ <block atomic='true'>
+ <block>
+ <block atomic='true'>
+ <block>
+ <block>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vf-module"
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK volume-group update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="volume-group"
+ key="cloud-region.cloud-owner = $prop.cloud-owner
+ AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
+ AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
+ AND volume-group-id = $ss.param.volume-group-id" >
+ <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vnfc save"/>
+ </record>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vnfc"
+ key="vnfc.vnfc-name = $ss.param.vnfc-name" >
<outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
</outcome>
<outcome value='not-found'>
<set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
</set>
</outcome>
<outcome value='success'>
<set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
</set>
</outcome>
- </update>
+ </delete>
</block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK volume-group update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="volume-group"
- key="cloud-region.cloud-owner = $prop.cloud-owner
- AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
- AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
- AND volume-group-id = $ss.param.volume-group-id" >
- <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ </outcome>
+ </switch>
+ </block>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vlan-tag save"/>
+ </record>
+ <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
+ <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vlan-tag"
+ key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
<outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
</outcome>
<outcome value='not-found'>
<set>
- <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
</set>
</outcome>
<outcome value='success'>
<set>
- <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
</set>
</outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vnfc save"/>
- </record>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vnfc"
- key="vnfc.vnfc-name = $ss.param.vnfc-name" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ </delete>
+ </for>
+ </for>
+ </block>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`' Failed to create vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' in AnAI. ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic='true'>
+ <block>
+ <block atomic='true'>
+ <block>
+ <block>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vf-module"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id
+ AND vf-module.vf-module-id = $ss.param.vf-module-id " >
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
</set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK volume-group update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="volume-group"
+ key="cloud-region.cloud-owner = $prop.cloud-owner
+ AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
+ AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
+ AND volume-group-id = $ss.param.volume-group-id" >
+ <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
</outcome>
- </switch>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ </set>
+ </outcome>
+ </update>
</block>
</outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
+ </switch>
</block>
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vnfc save"/>
+ </record>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vnfc"
+ key="vnfc.vnfc-name = $ss.param.vnfc-name" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </block>
+ </outcome>
+ </switch>
</block>
<block atomic='true'>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
@@ -1788,148 +3208,396 @@
</block>
<return status='failure'>
<parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create cp relationship for vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' in AnAI.' + $error-message`" />
+ <parameter name='error-message' value="`' Failed to create vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' in AnAI. ' + $error-message`" />
</return>
</block>
</outcome>
- <outcome value='not-found'>
+ </save>
+ </for>
+ </outcome>
+ </save>
+ </for>
+ </outcome>
+ </switch>
+ <switch test="`$ss.resource-key.l-interface`">
+ <outcome value='l-interface'>
+ <block atomic='true'>
+ <switch test="`$ss.param.oam-interface-name != ''`">
+ <outcome value='true'>
+ <block atomic='true'>
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="l-interface"
+ key="l-interface.interface-name = $ss.param.oam-interface-name
+ AND generic-vnf.vnf-id = $ss.param.vnf-id" >
+ <parameter name="interface-name" value='`$ss.param.oam-interface-name`' />
+ <parameter name="interface-role" value='OAM' />
+ <outcome value='failure'>
<block atomic='true'>
<block>
- <block>
+ <block atomic='true'>
<block>
<block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
</outcome>
- </update>
+ </switch>
</block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vf-module"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id
+ AND vf-module.vf-module-id = $ss.param.vf-module-id " >
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK volume-group update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="volume-group"
+ key="cloud-region.cloud-owner = $prop.cloud-owner
+ AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
+ AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
+ AND volume-group-id = $ss.param.volume-group-id" >
+ <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
<block atomic='true'>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
+ <parameter name="field1" value="ROLLBACK vnfc save"/>
</record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vf-module"
- key="generic-vnf.vnf-id = $ss.param.vnf-id
- AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vnfc"
+ key="vnfc.vnfc-name = $ss.param.vnfc-name" >
<outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
</outcome>
<outcome value='not-found'>
<set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
</set>
</outcome>
<outcome value='success'>
<set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
</set>
</outcome>
- </update>
+ </delete>
</block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK volume-group update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="volume-group"
- key="cloud-region.cloud-owner = $prop.cloud-owner
- AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
- AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
- AND volume-group-id = $ss.param.volume-group-id" >
- <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ </outcome>
+ </switch>
+ </block>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vlan-tag save"/>
+ </record>
+ <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
+ <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vlan-tag"
+ key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
<outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
</outcome>
<outcome value='not-found'>
<set>
- <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
</set>
</outcome>
<outcome value='success'>
<set>
- <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
</set>
</outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vnfc save"/>
- </record>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vnfc"
- key="vnfc.vnfc-name = $ss.param.vnfc-name" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ </delete>
+ </for>
+ </for>
+ </block>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`' Failed to create l-interface with interface-name = ' + $ss.param.oam-interface-name + ' in AnAI. ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic='true'>
+ <block>
+ <block atomic='true'>
+ <block>
+ <block>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vf-module"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id
+ AND vf-module.vf-module-id = $ss.param.vf-module-id " >
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
</set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK volume-group update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="volume-group"
+ key="cloud-region.cloud-owner = $prop.cloud-owner
+ AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
+ AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
+ AND volume-group-id = $ss.param.volume-group-id" >
+ <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
</outcome>
- </switch>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ </set>
+ </outcome>
+ </update>
</block>
</outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
+ </switch>
</block>
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vnfc save"/>
+ </record>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vnfc"
+ key="vnfc.vnfc-name = $ss.param.vnfc-name" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </block>
+ </outcome>
+ </switch>
</block>
<block atomic='true'>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
@@ -1979,1883 +3647,2070 @@
</block>
<return status='failure'>
<parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create cp relationship for vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' in AnAI.' + $error-message`" />
+ <parameter name='error-message' value="`' Failed to create l-interface with interface-name = ' + $ss.param.oam-interface-name + ' in AnAI. ' + $error-message`" />
</return>
</block>
</outcome>
</save>
- </outcome>
- </save>
- </for>
- </outcome>
- </save>
- </for>
- <block atomic='true'>
- <switch test="`$ss.param.oam-interface-name != ''`">
- <outcome value='true'>
- <block atomic='true'>
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="l-interface"
- key="l-interface.interface-name = $ss.param.oam-interface-name
- AND generic-vnf.vnf-id = $ss.param.vnf-id" >
- <parameter name="interface-name" value='`$ss.param.oam-interface-name`' />
- <parameter name="interface-role" value='OAM' />
- <outcome value='failure'>
- <block atomic='true'>
- <block>
- <block>
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="l3-interface-ipv4-address-list"
+ key="l3-interface-ipv4-address-list.l3-interface-ipv4-address = $ss.param.ipv4-oam-address
+ AND generic-vnf.vnf-id = $ss.param.vnf-id
+ AND l-interface.interface-name = $ss.param.oam-interface-name" >
+ <parameter name="l3-interface-ipv4-address" value='`$ss.param.ipv4-oam-address`' />
+ <parameter name="l3-interface-ipv4-prefix-length" value='`$ss.param.ipv4-oam-address-prefix`' />
+ <outcome value='failure'>
+ <block atomic='true'>
<block>
<block>
<block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <block>
+ <block>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vf-module"
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK volume-group update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK volume-group update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="volume-group"
key="cloud-region.cloud-owner = $prop.cloud-owner
AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
AND volume-group-id = $ss.param.volume-group-id" >
- <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vnfc save"/>
- </record>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vnfc"
- key="vnfc.vnfc-name = $ss.param.vnfc-name" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
+ <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ </set>
+ </outcome>
+ </update>
</block>
</outcome>
</switch>
</block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vlan-tag save"/>
- </record>
- <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
- <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vnfc save"/>
+ </record>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vnfc"
+ key="vnfc.vnfc-name = $ss.param.vnfc-name" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vlan-tag save"/>
+ </record>
+ <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
+ <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vlan-tag"
key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
+ <outcome value='failure'>
<block atomic='true'>
<set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
</set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
</block>
</outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </for>
- </for>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </for>
+ </for>
+ </block>
+ </block>
+ <switch test="`$ss.resource-key.l-interface`">
+ <outcome value='l-interface'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
+ </record>
+ <switch test="`$ss.param.oam-interface-name != ''`">
+ <outcome value='true'>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="l-interface"
+ key="l-interface.interface-name = $ss.param.oam-interface-name
+ AND generic-vnf.vnf-id = $ss.param.vnf-id" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`' Failed to create l3-interface-ipv4-address-list with l3-interface-ipv4-address = ' + $ss.param.ipv4-oam-address + ' in AnAI. ' + $error-message`" />
+ </return>
</block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create l-interface with interface-name = ' + $ss.param.oam-interface-name + ' in AnAI.' + $error-message`" />
- </return>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic='true'>
- <block>
- <block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic='true'>
<block>
<block>
<block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <block>
+ <block>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vf-module"
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK volume-group update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK volume-group update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="volume-group"
key="cloud-region.cloud-owner = $prop.cloud-owner
AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
AND volume-group-id = $ss.param.volume-group-id" >
- <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vnfc save"/>
- </record>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vnfc"
- key="vnfc.vnfc-name = $ss.param.vnfc-name" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
+ <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ </set>
+ </outcome>
+ </update>
</block>
</outcome>
</switch>
</block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vlan-tag save"/>
- </record>
- <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
- <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vnfc save"/>
+ </record>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vnfc"
+ key="vnfc.vnfc-name = $ss.param.vnfc-name" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vlan-tag save"/>
+ </record>
+ <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
+ <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vlan-tag"
key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
+ <outcome value='failure'>
<block atomic='true'>
<set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
</set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
</block>
</outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </for>
- </for>
- </block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create l-interface with interface-name = ' + $ss.param.oam-interface-name + ' in AnAI.' + $error-message`" />
- </return>
- </block>
- </outcome>
- </save>
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="l3-interface-ipv4-address-list"
- key="l3-interface-ipv4-address-list.l3-interface-ipv4-address = $ss.param.ipv4-oam-address
- AND generic-vnf.vnf-id = $ss.param.vnf-id
- AND l-interface.interface-name = $ss.param.oam-interface-name" >
- <parameter name="l3-interface-ipv4-address" value='`$ss.param.ipv4-oam-address`' />
- <parameter name="l3-interface-ipv4-prefix-length" value='`$ss.param.ipv4-oam-address-prefix`' />
- <outcome value='failure'>
- <block atomic='true'>
- <block>
- <block>
- <block>
- <block>
- <block>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </for>
+ </for>
+ </block>
+ </block>
+ <switch test="`$ss.resource-key.l-interface`">
+ <outcome value='l-interface'>
<block atomic='true'>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
</record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <switch test="`$ss.param.oam-interface-name != ''`">
+ <outcome value='true'>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="l-interface"
+ key="l-interface.interface-name = $ss.param.oam-interface-name
+ AND generic-vnf.vnf-id = $ss.param.vnf-id" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="generic-vnf"
- key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
</outcome>
- </update>
+ </switch>
</block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`' Failed to create l3-interface-ipv4-address-list with l3-interface-ipv4-address = ' + $ss.param.ipv4-oam-address + ' in AnAI. ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ </save>
+ </block>
+ </outcome>
+ </switch>
+ <switch test="`$ss.param.lo0-interface-name != ''`">
+ <outcome value='true'>
+ <block atomic='true'>
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="l-interface"
+ key="l-interface.interface-name = $ss.param.lo0-interface-name
+ AND generic-vnf.vnf-id = $ss.param.vnf-id" >
+ <parameter name="interface-name" value='`$ss.param.lo0-interface-name`' />
+ <parameter name="interface-role" value='loopback' />
+ <outcome value='failure'>
+ <block atomic='true'>
+ <block>
+ <block>
+ <block atomic='true'>
+ <block>
+ <block>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vf-module"
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK volume-group update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK volume-group update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="volume-group"
key="cloud-region.cloud-owner = $prop.cloud-owner
AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
AND volume-group-id = $ss.param.volume-group-id" >
- <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vnfc save"/>
- </record>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vnfc save"/>
+ </record>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vnfc"
key="vnfc.vnfc-name = $ss.param.vnfc-name" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vlan-tag save"/>
- </record>
- <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
- <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vlan-tag"
- key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
+ <outcome value='failure'>
<block atomic='true'>
<set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
</set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
</block>
</outcome>
- </switch>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
</block>
</outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </for>
- </for>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
- </record>
- <switch test="`$ss.param.oam-interface-name != ''`">
- <outcome value='true'>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="l-interface"
- key="l-interface.interface-name = $ss.param.oam-interface-name
- AND generic-vnf.vnf-id = $ss.param.vnf-id" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
+ </switch>
+ </block>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vlan-tag save"/>
+ </record>
+ <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
+ <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vlan-tag"
+ key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
+ <outcome value='failure'>
<block atomic='true'>
<set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
</set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
</block>
</outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </outcome>
- </switch>
- </block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create l3-interface-ipv4-address-list.l3-interface-ipv4-address = $ss.param.ipv4-oam-address + ' in AnAI.' + $error-message`" />
- </return>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic='true'>
- <block>
- <block>
- <block>
- <block>
- <block>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </for>
+ </for>
+ </block>
+ </block>
+ <switch test="`$ss.resource-key.l-interface`">
+ <outcome value='l-interface'>
<block atomic='true'>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
</record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <switch test="`$ss.param.oam-interface-name != ''`">
+ <outcome value='true'>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="l-interface"
+ key="l-interface.interface-name = $ss.param.oam-interface-name
+ AND generic-vnf.vnf-id = $ss.param.vnf-id" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="generic-vnf"
- key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
</outcome>
- </update>
+ </switch>
</block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`' Failed to create l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' in AnAI. ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic='true'>
+ <block>
+ <block>
+ <block atomic='true'>
+ <block>
+ <block>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vf-module"
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK volume-group update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK volume-group update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="volume-group"
key="cloud-region.cloud-owner = $prop.cloud-owner
AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
AND volume-group-id = $ss.param.volume-group-id" >
- <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vnfc save"/>
- </record>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vnfc save"/>
+ </record>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vnfc"
key="vnfc.vnfc-name = $ss.param.vnfc-name" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vlan-tag save"/>
- </record>
- <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
- <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vlan-tag"
- key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
+ <outcome value='failure'>
<block atomic='true'>
<set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
</set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
</block>
</outcome>
- </switch>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
</block>
</outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </for>
- </for>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
- </record>
- <switch test="`$ss.param.oam-interface-name != ''`">
- <outcome value='true'>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="l-interface"
- key="l-interface.interface-name = $ss.param.oam-interface-name
- AND generic-vnf.vnf-id = $ss.param.vnf-id" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
+ </switch>
+ </block>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vlan-tag save"/>
+ </record>
+ <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
+ <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vlan-tag"
+ key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
+ <outcome value='failure'>
<block atomic='true'>
<set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
</set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
</block>
</outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </outcome>
- </switch>
- </block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create l3-interface-ipv4-address-list.l3-interface-ipv4-address = $ss.param.ipv4-oam-address + ' in AnAI.' + $error-message`" />
- </return>
- </block>
- </outcome>
- </save>
- </block>
- </outcome>
- </switch>
- <switch test="`$ss.param.lo0-interface-name != ''`">
- <outcome value='true'>
- <block atomic='true'>
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </for>
+ </for>
+ </block>
+ </block>
+ <switch test="`$ss.resource-key.l-interface`">
+ <outcome value='l-interface'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
+ </record>
+ <switch test="`$ss.param.oam-interface-name != ''`">
+ <outcome value='true'>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="l-interface"
- key="l-interface.interface-name = $ss.param.lo0-interface-name
+ key="l-interface.interface-name = $ss.param.oam-interface-name
AND generic-vnf.vnf-id = $ss.param.vnf-id" >
- <parameter name="interface-name" value='`$ss.param.lo0-interface-name`' />
- <parameter name="interface-role" value='loopback' />
- <outcome value='failure'>
- <block atomic='true'>
- <block>
- <block>
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`' Failed to create l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' in AnAI. ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ </save>
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="l3-interface-ipv4-address-list"
+ key="l3-interface-ipv4-address-list.l3-interface-ipv4-address = $ss.param.ipv4-loopback0-address
+ AND generic-vnf.vnf-id = $ss.param.vnf-id
+ AND l-interface.interface-name = $ss.param.lo0-interface-name" >
+ <parameter name="l3-interface-ipv4-address" value='`$ss.param.ipv4-loopback0-address`' />
+ <parameter name="l3-interface-ipv4-prefix-length" value='32' />
+ <outcome value='failure'>
+ <block atomic='true'>
<block>
<block>
<block>
<block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <block>
+ <block>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vf-module"
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK volume-group update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK volume-group update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="volume-group"
key="cloud-region.cloud-owner = $prop.cloud-owner
AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
AND volume-group-id = $ss.param.volume-group-id" >
- <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vnfc save"/>
- </record>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vnfc"
- key="vnfc.vnfc-name = $ss.param.vnfc-name" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
+ <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ </set>
+ </outcome>
+ </update>
</block>
</outcome>
</switch>
</block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vlan-tag save"/>
- </record>
- <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
- <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vnfc save"/>
+ </record>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vnfc"
+ key="vnfc.vnfc-name = $ss.param.vnfc-name" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vlan-tag save"/>
+ </record>
+ <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
+ <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vlan-tag"
key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
+ <outcome value='failure'>
<block atomic='true'>
<set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
</set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
</block>
</outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </for>
- </for>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
- </record>
- <switch test="`$ss.param.oam-interface-name != ''`">
- <outcome value='true'>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </for>
+ </for>
+ </block>
+ </block>
+ <switch test="`$ss.resource-key.l-interface`">
+ <outcome value='l-interface'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
+ </record>
+ <switch test="`$ss.param.oam-interface-name != ''`">
+ <outcome value='true'>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="l-interface"
key="l-interface.interface-name = $ss.param.oam-interface-name
AND generic-vnf.vnf-id = $ss.param.vnf-id" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
</outcome>
</switch>
</block>
</outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </outcome>
- </switch>
- </block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' in AnAI.' + $error-message`" />
- </return>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic='true'>
- <block>
- <block>
- <block>
- <block>
- <block>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.l-interface`">
+ <outcome value='l-interface'>
<block atomic='true'>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
</record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <switch test="`$ss.param.lo0-interface-name != ''`">
+ <outcome value='true'>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="l-interface"
+ key="l-interface.interface-name = $ss.param.lo0-interface-name
+ AND generic-vnf.vnf-id = $ss.param.vnf-id" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="generic-vnf"
- key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
</outcome>
- </update>
+ </switch>
</block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`' Failed to create l3-interface-ipv4-address-list with l3-interface-ipv4-address = ' + $ss.param.loopback0-ipv4-address + ' in AnAI. ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic='true'>
+ <block>
+ <block>
+ <block>
<block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <block>
+ <block>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id " >
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vf-module"
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK volume-group update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK volume-group update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="volume-group"
key="cloud-region.cloud-owner = $prop.cloud-owner
AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
AND volume-group-id = $ss.param.volume-group-id" >
- <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vnfc save"/>
- </record>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vnfc"
- key="vnfc.vnfc-name = $ss.param.vnfc-name" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
+ <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ </set>
+ </outcome>
+ </update>
</block>
</outcome>
</switch>
</block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vlan-tag save"/>
- </record>
- <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
- <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vnfc save"/>
+ </record>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vnfc"
+ key="vnfc.vnfc-name = $ss.param.vnfc-name" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vlan-tag save"/>
+ </record>
+ <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
+ <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vlan-tag"
key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
+ <outcome value='failure'>
<block atomic='true'>
<set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
</set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
</block>
</outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </for>
- </for>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
- </record>
- <switch test="`$ss.param.oam-interface-name != ''`">
- <outcome value='true'>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </for>
+ </for>
+ </block>
+ </block>
+ <switch test="`$ss.resource-key.l-interface`">
+ <outcome value='l-interface'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
+ </record>
+ <switch test="`$ss.param.oam-interface-name != ''`">
+ <outcome value='true'>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="l-interface"
key="l-interface.interface-name = $ss.param.oam-interface-name
AND generic-vnf.vnf-id = $ss.param.vnf-id" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
</outcome>
</switch>
</block>
</outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </outcome>
- </switch>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.l-interface`">
+ <outcome value='l-interface'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
+ </record>
+ <switch test="`$ss.param.lo0-interface-name != ''`">
+ <outcome value='true'>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="l-interface"
+ key="l-interface.interface-name = $ss.param.lo0-interface-name
+ AND generic-vnf.vnf-id = $ss.param.vnf-id" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`' Failed to create l3-interface-ipv4-address-list with l3-interface-ipv4-address = ' + $ss.param.loopback0-ipv4-address + ' in AnAI. ' + $error-message`" />
+ </return>
</block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' in AnAI.' + $error-message`" />
- </return>
- </block>
- </outcome>
- </save>
+ </outcome>
+ </save>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ <switch test="`$ss.resource-key.l3-network`">
+ <outcome value='l3-netework'>
+ <for silentFailure='true' index='n' start='0' end='`$nidx`' >
+ <block atomic='true'>
+ <set>
+ <parameter name='ss.l3-network.related-link'
+ value="`'/aai/v$/network/l3-networks/l3-network/' + $ss.network[$n].netid`" />
+ </set>
<save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="l3-interface-ipv4-address-list"
- key="l3-interface-ipv4-address-list.l3-interface-ipv4-address = $ss.param.loopback0-ipv4-address
- AND generic-vnf.vnf-id = $ss.param.vnf-id
- AND l-interface.interface-name = $ss.param.lo0-interface-name" >
- <parameter name="l3-interface-ipv4-address" value='`$ss.param.loopback0-ipv4-address`' />
- <parameter name="l3-interface-ipv4-prefix-length" value='32' />
+ resource="generic-vnf:relationship-list"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id" >
+ <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />
+ <parameter name="relationship-list.relationship[0].related-link" value="`$ss.l3-network.related-link`" />
+ <!--
+<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="`$ss.network[$n].netid`" />
+-->
<outcome value='failure'>
<block atomic='true'>
<block>
<block>
<block>
<block>
- <block>
+ <block atomic='true'>
<block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <block>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vf-module"
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
- </set>
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
</outcome>
- </update>
+ </switch>
</block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK volume-group update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK volume-group update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="volume-group"
key="cloud-region.cloud-owner = $prop.cloud-owner
AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
AND volume-group-id = $ss.param.volume-group-id" >
- <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
- </set>
+ <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
</outcome>
- </update>
+ </switch>
</block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vnfc save"/>
- </record>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vnfc save"/>
+ </record>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vnfc"
key="vnfc.vnfc-name = $ss.param.vnfc-name" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
+ <outcome value='failure'>
<block atomic='true'>
<set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
</set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
</block>
</outcome>
- </switch>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
</block>
</outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
+ </switch>
</block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vlan-tag save"/>
- </record>
- <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
- <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vlan-tag save"/>
+ </record>
+ <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
+ <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vlan-tag"
key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
- <outcome value='failure'>
- <block atomic='true'>
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
<set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
</set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
- </set>
- </outcome>
- </delete>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </for>
</for>
- </for>
+ </block>
</block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
- </record>
- <switch test="`$ss.param.oam-interface-name != ''`">
- <outcome value='true'>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <switch test="`$ss.resource-key.l-interface`">
+ <outcome value='l-interface'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
+ </record>
+ <switch test="`$ss.param.oam-interface-name != ''`">
+ <outcome value='true'>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="l-interface"
key="l-interface.interface-name = $ss.param.oam-interface-name
AND generic-vnf.vnf-id = $ss.param.vnf-id" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
+ <outcome value='failure'>
<block atomic='true'>
<set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
+ <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
</set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
</block>
</outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </outcome>
+ </switch>
+ </block>
</outcome>
</switch>
</block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
- </record>
- <switch test="`$ss.param.lo0-interface-name != ''`">
- <outcome value='true'>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <switch test="`$ss.resource-key.l-interface`">
+ <outcome value='l-interface'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
+ </record>
+ <switch test="`$ss.param.lo0-interface-name != ''`">
+ <outcome value='true'>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="l-interface"
key="l-interface.interface-name = $ss.param.lo0-interface-name
AND generic-vnf.vnf-id = $ss.param.vnf-id" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
+ <outcome value='failure'>
<block atomic='true'>
<set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
+ <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
</set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </outcome>
- </switch>
- </block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create l3-interface-ipv4-address-list with l3-interface-ipv4-address = $ss.param.loopback0-ipv4-address + ' in AnAI.' + $error-message`" />
- </return>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic='true'>
- <block>
- <block>
- <block>
- <block>
- <block>
- <block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="generic-vnf"
- key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vf-module"
- key="generic-vnf.vnf-id = $ss.param.vnf-id
- AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
</outcome>
<outcome value='not-found'>
<set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' not found in AAI. Consider silent success!'`" />
</set>
</outcome>
<outcome value='success'>
<set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' completed.'`" />
</set>
</outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK volume-group update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="volume-group"
- key="cloud-region.cloud-owner = $prop.cloud-owner
- AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
- AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
- AND volume-group-id = $ss.param.volume-group-id" >
- <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vnfc save"/>
- </record>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vnfc"
- key="vnfc.vnfc-name = $ss.param.vnfc-name" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
- </set>
+ </delete>
</outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
+ </switch>
</block>
- </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.l3-network`">
+ <outcome value='l3-netework'>
<block atomic='true'>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vlan-tag save"/>
+ <parameter name="field1" value="ROLLBACK VNF l3-network relationship"/>
</record>
- <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
- <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vlan-tag"
- key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </for>
- </for>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
- </record>
- <switch test="`$ss.param.oam-interface-name != ''`">
- <outcome value='true'>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="l-interface"
- key="l-interface.interface-name = $ss.param.oam-interface-name
- AND generic-vnf.vnf-id = $ss.param.vnf-id" >
+ <for silentFailure='true' index='n' start='0' end='`$nidx`' >
+ <set>
+ <parameter name='tmp.related-link' value="`'/aai/v$/network/l3-networks/l3-network/' + $ss.network[$n].netid`" />
+ <!--
+<parameter name='tmp.related-link' value="`'/aai/' + $prop.aai.version + '/network/l3-networks/l3-network/' + $ss.network[$n].netid`" />
+-->
+ </set>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="generic-vnf:relationship-list"
+ key="generic-vnf.vnf-id = $ss.param.vnf-id
+ AND related-to = l3-network
+ AND relationship.related-link = $tmp.related-link" >
<outcome value='failure'>
<block atomic='true'>
<set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ <parameter name='error-message' value="`$error-message + ' Failed to delete VNF l3-network relationship for generic-vnf.vnfid = ' + $ss.param.vnf-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
</set>
<switch test='`$tmp.return-failure`'>
<outcome value='true'>
@@ -3875,769 +5730,407 @@
</outcome>
<outcome value='not-found'>
<set>
- <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
+ <parameter name='error-message' value="`$error-message + ' l3-network relationship with related-path = ' + $tmp.related-path + ' not found in AAI. Consider silent success!'`" />
</set>
</outcome>
<outcome value='success'>
<set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of generic-vnf l3-network relationships completed.'`" />
</set>
</outcome>
</delete>
- </outcome>
- </switch>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
- </record>
- <switch test="`$ss.param.lo0-interface-name != ''`">
- <outcome value='true'>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="l-interface"
- key="l-interface.interface-name = $ss.param.lo0-interface-name
- AND generic-vnf.vnf-id = $ss.param.vnf-id" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </outcome>
- </switch>
- </block>
+ </for>
+ </block>
+ </outcome>
+ </switch>
</block>
<return status='failure'>
<parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create l3-interface-ipv4-address-list with l3-interface-ipv4-address = $ss.param.loopback0-ipv4-address + ' in AnAI.' + $error-message`" />
+ <parameter name='error-message' value="`' Failed to create generic-vnf releationship for l3-network with network-id =' + $ss.network[$n].netid + ' in AnAI. ' + $error-message`" />
</return>
</block>
</outcome>
- </save>
- </block>
- </outcome>
- </switch>
- </block>
- <for silentFailure='true' index='n' start='0' end='`$nidx`' >
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="generic-vnf:relationship-list"
- key="generic-vnf.vnf-id = $ss.param.vnf-id" >
- <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="`$ss.network[$n].netid`" />
- <outcome value='failure'>
- <block atomic='true'>
- <block>
- <block>
- <block>
+ <outcome value='not-found'>
+ <block atomic='true'>
<block>
<block>
<block>
<block>
<block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <block>
+ <block>
+ <block>
+ <switch test="`$ss.resource-key.generic-vnf`">
+ <outcome value='generic-vnf'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
+ <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
+ <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
+ <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.vf-module`">
+ <outcome value='vf-module'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vf-module update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vf-module"
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK volume-group update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
+ <parameter name="selflink" value='`$tmp.aai.vfmdoule.selflink`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.volume-group`">
+ <outcome value='volume-group'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK volume-group update"/>
+ </record>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="volume-group"
key="cloud-region.cloud-owner = $prop.cloud-owner
AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
AND volume-group-id = $ss.param.volume-group-id" >
- <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
- </set>
- </outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vnfc save"/>
- </record>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vnfc"
- key="vnfc.vnfc-name = $ss.param.vnfc-name" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
+ <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
+ </set>
+ </outcome>
+ </update>
</block>
</outcome>
</switch>
</block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vlan-tag save"/>
- </record>
- <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
- <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vnfc save"/>
+ </record>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="vnfc"
+ key="vnfc.vnfc-name = $ss.param.vnfc-name" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vlan-tag save"/>
+ </record>
+ <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
+ <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vlan-tag"
key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
+ <outcome value='failure'>
<block atomic='true'>
<set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
</set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
</block>
</outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </for>
- </for>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
- </record>
- <switch test="`$ss.param.oam-interface-name != ''`">
- <outcome value='true'>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </for>
+ </for>
+ </block>
+ </block>
+ <switch test="`$ss.resource-key.l-interface`">
+ <outcome value='l-interface'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
+ </record>
+ <switch test="`$ss.param.oam-interface-name != ''`">
+ <outcome value='true'>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="l-interface"
key="l-interface.interface-name = $ss.param.oam-interface-name
AND generic-vnf.vnf-id = $ss.param.vnf-id" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
</outcome>
</switch>
</block>
</outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </outcome>
- </switch>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
- </record>
- <switch test="`$ss.param.lo0-interface-name != ''`">
- <outcome value='true'>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.l-interface`">
+ <outcome value='l-interface'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
+ </record>
+ <switch test="`$ss.param.lo0-interface-name != ''`">
+ <outcome value='true'>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="l-interface"
key="l-interface.interface-name = $ss.param.lo0-interface-name
AND generic-vnf.vnf-id = $ss.param.vnf-id" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
</outcome>
</switch>
</block>
</outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </outcome>
- </switch>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK VNF l3-network relationship"/>
- </record>
- <for silentFailure='true' index='n' start='0' end='`$nidx`' >
- <set>
- <parameter name='tmp.related-link' value="`'/aai/v$/network/l3-networks/l3-network/' + $ss.network[$n].netid`" />
- <!--
+ </switch>
+ </block>
+ <switch test="`$ss.resource-key.l3-network`">
+ <outcome value='l3-netework'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK VNF l3-network relationship"/>
+ </record>
+ <for silentFailure='true' index='n' start='0' end='`$nidx`' >
+ <set>
+ <parameter name='tmp.related-link' value="`'/aai/v$/network/l3-networks/l3-network/' + $ss.network[$n].netid`" />
+ <!--
<parameter name='tmp.related-link' value="`'/aai/' + $prop.aai.version + '/network/l3-networks/l3-network/' + $ss.network[$n].netid`" />
-->
- </set>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf:relationship-list"
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND related-to = l3-network
AND relationship.related-link = $tmp.related-link" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete VNF l3-network relationship for generic-vnf.vnfid = ' + $ss.param.vnf-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' l3-network relationship with related-path = ' + $tmp.related-path + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of generic-vnf l3-network relationships completed.'`" />
- </set>
- </outcome>
- </delete>
- </for>
- </block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create generic-vnf releationship for l3-network with network-id =' + $ss.network[$n].netid + ' in AnAI.' + $error-message`" />
- </return>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic='true'>
- <block>
- <block>
- <block>
- <block>
- <block>
- <block>
- <block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="generic-vnf"
- key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="ipv4-loopback0-address" value='`$tmp.aai.vnf.ipv4-loopback0-address`' />
- <parameter name="ipv4-oam-address" value='`$tmp.aai.vnf.ipv4-oam-address`' />
- <parameter name="as-number" value='`$tmp.aai.vnf.as-number`' />
- <parameter name="vlan-id-outer" value='`$tmp.aai.vnf.vlan-id-outer`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id=' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vf-module update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vf-module"
- key="generic-vnf.vnf-id = $ss.param.vnf-id
- AND vf-module.vf-module-id = $ss.param.vf-module-id " >
- <parameter name="vf-module-name" value='`$tmp.aai.vfmdoule.vf-module-name`' />
<outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' in AnAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete VNF l3-network relationship for generic-vnf.vnfid = ' + $ss.param.vnf-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
</outcome>
<outcome value='not-found'>
<set>
- <parameter name='error-message' value="`$error-message + ' Failed to rollback vf-module update with vf-module-id=' + $ss.param.vf-module-id + ' because vf-module not found in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ <parameter name='error-message' value="`$error-message + ' l3-network relationship with related-path = ' + $tmp.related-path + ' not found in AAI. Consider silent success!'`" />
</set>
</outcome>
<outcome value='success'>
<set>
- <parameter name='error-message' value="`$error-message + ' Rollback of vf-module update completed.'`" />
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of generic-vnf l3-network relationships completed.'`" />
</set>
</outcome>
- </update>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK volume-group update"/>
- </record>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="volume-group"
- key="cloud-region.cloud-owner = $prop.cloud-owner
- AND cloud-region.cloud-region-id = $ss.param.aic-cloud-region
- AND cloud-region.cloud-owner = $prop.cloud-region.cloud-owner
- AND volume-group-id = $ss.param.volume-group-id" >
- <parameter name="volume-group-name" value='`$tmp.aai.volume-group.volume-group-name`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to UPDATE volume-group with volume-group-id=' + $ss.param.volume-group-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' volume-group with volume-group-id = ' + $ss.param.volume-group-id + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback of volume_group completed.'`" />
- </set>
- </outcome>
- </update>
+ </delete>
+ </for>
</block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vnfc save"/>
- </record>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vnfc"
- key="vnfc.vnfc-name = $ss.param.vnfc-name" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vlan-tag save"/>
- </record>
- <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
- <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vlan-tag"
- key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </for>
- </for>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
- </record>
- <switch test="`$ss.param.oam-interface-name != ''`">
- <outcome value='true'>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="l-interface"
- key="l-interface.interface-name = $ss.param.oam-interface-name
- AND generic-vnf.vnf-id = $ss.param.vnf-id" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
</outcome>
</switch>
</block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`' Failed to create generic-vnf releationship for l3-network with network-id =' + $ss.network[$n].netid + ' in AnAI. ' + $error-message`" />
+ </return>
</block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
- </record>
- <switch test="`$ss.param.lo0-interface-name != ''`">
- <outcome value='true'>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="l-interface"
- key="l-interface.interface-name = $ss.param.lo0-interface-name
- AND generic-vnf.vnf-id = $ss.param.vnf-id" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </outcome>
- </switch>
- </block>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK VNF l3-network relationship"/>
- </record>
- <for silentFailure='true' index='n' start='0' end='`$nidx`' >
- <set>
- <parameter name='tmp.related-link' value="`'/aai/v$/network/l3-networks/l3-network/' + $ss.network[$n].netid`" />
- <!--
-<parameter name='tmp.related-link' value="`'/aai/' + $prop.aai.version + '/network/l3-networks/l3-network/' + $ss.network[$n].netid`" />
--->
- </set>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="generic-vnf:relationship-list"
- key="generic-vnf.vnf-id = $ss.param.vnf-id
- AND related-to = l3-network
- AND relationship.related-link = $tmp.related-link" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete VNF l3-network relationship for generic-vnf.vnfid = ' + $ss.param.vnf-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' l3-network relationship with related-path = ' + $tmp.related-path + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of generic-vnf l3-network relationships completed.'`" />
- </set>
- </outcome>
- </delete>
- </for>
- </block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`' Failed to create generic-vnf releationship for l3-network with network-id =' + $ss.network[$n].netid + ' in AnAI.' + $error-message`" />
- </return>
+ </outcome>
+ </save>
</block>
- </outcome>
- </save>
- </for>
+ </for>
+ </outcome>
+ </switch>
<set>
<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='SUCCESS' />
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].value'
+ value='SUCCESS' />
</set>
</block>
</outcome>
@@ -4679,7 +6172,7 @@
<parameter name='ss.param.vf-module-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />
</set>
</outcome>
- <outcome value='volume_group_id'>
+ <outcome value='volume-group-id'>
<set>
<parameter name='ss.param.volume-group-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />
</set>
@@ -4730,9 +6223,10 @@
<parameter name='ss.param.loopback0-ipv4-address-index' value='`$bidx`' />
</set>
</outcome>
- <outcome value='aai-vf-module-put'>
+ <outcome value='ipv4-loopback0-address'>
<set>
- <parameter name='ss.param.aai-vf-module-put-index' value='`$bidx`' />
+ <parameter name='ss.param.ipv4-loopback0-address' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />
+ <parameter name='ss.param.ipv4-loopback0-address-index' value='`bidx`' />
</set>
</outcome>
<outcome value='nfc-naming-code'>
@@ -4765,12 +6259,6 @@
<parameter name='ss.param.vnfc-model-version-index' value='`$bidx`' />
</set>
</outcome>
- <outcome value='ipv4-loopback0-address'>
- <set>
- <parameter name='ss.param.ipv4-loopback0-address' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />
- <parameter name='ss.param.ipv4-loopback0-address-index' value='`bidx`' />
- </set>
- </outcome>
<outcome value='as-number'>
<set>
<parameter name='ss.param.as-number' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />
@@ -4783,6 +6271,58 @@
<parameter name='ss.param.vlan-id-outer-index' value='`$bidx`' />
</set>
</outcome>
+ <outcome value='availability_zone_0'>
+ <set>
+ <parameter name='ss.param.availability-zone-0' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].value`' />
+ <parameter name='ss.param.availability-zone-0-index' value='`$bidx`' />
+ </set>
+ </outcome>
+ <outcome value='aai-vf-module-put'>
+ <block>
+ <set>
+ <parameter name='ss.param.aai-vf-module-put-index' value='`$bidx`' />
+ </set>
+ <for silentFailure='true' index="kidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key_length`">
+ <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].name`'>
+ <outcome value='generic-vnf'>
+ <set>
+ <parameter name='ss.resource-key.generic-vnf' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />
+ </set>
+ </outcome>
+ <outcome value='vf-module'>
+ <set>
+ <parameter name='ss.resource-key.vf-module' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />
+ </set>
+ </outcome>
+ <outcome value='volume-group'>
+ <set>
+ <parameter name='ss.resource-key.volume-group' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />
+ </set>
+ </outcome>
+ <outcome value='vnfc'>
+ <set>
+ <parameter name='ss.resource-key.vnfc' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />
+ </set>
+ </outcome>
+ <outcome value='connection-points'>
+ <set>
+ <parameter name='ss.resource-key.connection-points' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />
+ </set>
+ </outcome>
+ <outcome value='l-interface'>
+ <set>
+ <parameter name='ss.resource-key.l-interface' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />
+ </set>
+ </outcome>
+ <outcome value='l3-netework'>
+ <set>
+ <parameter name='ss.resource-key.l3-network' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$bidx].resource-resolution-data.resource-key[$kidx].value`' />
+ </set>
+ </outcome>
+ </switch>
+ </for>
+ </block>
+ </outcome>
</switch>
</outcome>
</execute>
@@ -4794,66 +6334,21 @@
<set>
<parameter name='tmp.return-failure' value ='true' />
</set>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='DELETED' />
- </set>
- <block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vnfc save"/>
- </record>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <block atomic='true'>
+ <switch test="`$ss.resource-key.vnfc`">
+ <outcome value='vnfc'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK vnfc save"/>
+ </record>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="vnfc"
key="vnfc.vnfc-name = $ss.param.vnfc-name" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
- value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
- </set>
- </outcome>
- </delete>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK vlan-tag save"/>
- </record>
- <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
- <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="vlan-tag"
- key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
<outcome value='failure'>
<block atomic='true'>
<set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vnfc with vnfc-name=' + $ss.param.vnfc-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
</set>
<switch test='`$tmp.return-failure`'>
<outcome value='true'>
@@ -4873,33 +6368,32 @@
</outcome>
<outcome value='not-found'>
<set>
- <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
+ <parameter name='error-message' value="`$error-message + ' vnfc with vnfc-name=' + $ss.param.vnfc-name + ' not found in AAI. Consider silent success!'`" />
</set>
</outcome>
<outcome value='success'>
<set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vnfc with vnfc-name=' + $ss.param.vnfc-name + ' completed.'`" />
</set>
</outcome>
</delete>
- </for>
- </for>
- </block>
+ </block>
+ </outcome>
+ </switch>
<block atomic='true'>
<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
<parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
+ <parameter name="field1" value="ROLLBACK vlan-tag save"/>
</record>
- <switch test="`$ss.param.oam-interface-name != ''`">
- <outcome value='true'>
+ <for silentFailure='true' index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data_length`' >
+ <for silentFailure='true' index='j' start='0' end='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data_length`' >
<delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
- resource="l-interface"
- key="l-interface.interface-name = $ss.param.oam-interface-name
- AND generic-vnf.vnf-id = $ss.param.vnf-id" >
+ resource="vlan-tag"
+ key="vlan-tag.vlan-tag-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid" >
<outcome value='failure'>
<block atomic='true'>
<set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ <parameter name='error-message' value="`$error-message + ' Failed to delete vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
</set>
<switch test='`$tmp.return-failure`'>
<outcome value='true'>
@@ -4919,121 +6413,187 @@
</outcome>
<outcome value='not-found'>
<set>
- <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
+ <parameter name='error-message' value="`$error-message + ' vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' not found in AAI. Consider silent success!'`" />
</set>
</outcome>
<outcome value='success'>
<set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of vlan-tag with vlan-tag-id =' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[0].vm-names.vnfc-names[0].vnfc-networks.vnfc-network-data[$i].connection-point.vlan-data[$j].vlan-uuid + ' completed.'`" />
</set>
</outcome>
</delete>
- </outcome>
- </switch>
+ </for>
+ </for>
</block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
- </record>
- <switch test="`$ss.param.lo0-interface-name != ''`">
- <outcome value='true'>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <switch test="`$ss.resource-key.l-interface`">
+ <outcome value='l-interface'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
+ </record>
+ <switch test="`$ss.param.oam-interface-name != ''`">
+ <outcome value='true'>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="l-interface"
- key="l-interface.interface-name = $ss.param.lo0-interface-name
+ key="l-interface.interface-name = $ss.param.oam-interface-name
AND generic-vnf.vnf-id = $ss.param.vnf-id" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.oam-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' not found in AAI. Consider silent success!'`" />
- </set>
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.oam-interface-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.oam-interface-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
</outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' completed.'`" />
- </set>
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ <switch test="`$ss.resource-key.l-interface`">
+ <outcome value='l-interface'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK l-interface (oam) save"/>
+ </record>
+ <switch test="`$ss.param.lo0-interface-name != ''`">
+ <outcome value='true'>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ resource="l-interface"
+ key="l-interface.interface-name = $ss.param.lo0-interface-name
+ AND generic-vnf.vnf-id = $ss.param.vnf-id" >
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='FAILED' />
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' l-interface.interface-name = ' + $ss.param.lo0-interface-name + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of l-interface with interface-name = ' + $ss.param.lo0-interface-name + ' completed.'`" />
+ </set>
+ </outcome>
+ </delete>
</outcome>
- </delete>
- </outcome>
- </switch>
- </block>
- <block atomic='true'>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK VNF l3-network relationship"/>
- </record>
- <for silentFailure='true' index='n' start='0' end='`$nidx`' >
- <set>
- <parameter name='tmp.related-link' value="`'/aai/v$/network/l3-networks/l3-network/' + $ss.network[$n].netid`" />
- <!--
+ </switch>
+ </block>
+ </outcome>
+ </switch>
+ <switch test="`$ss.resource-key.l3-network`">
+ <outcome value='l3-netework'>
+ <block atomic='true'>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK VNF l3-network relationship"/>
+ </record>
+ <for silentFailure='true' index='n' start='0' end='`$nidx`' >
+ <set>
+ <parameter name='tmp.related-link' value="`'/aai/v$/network/l3-networks/l3-network/' + $ss.network[$n].netid`" />
+ <!--
<parameter name='tmp.related-link' value="`'/aai/' + $prop.aai.version + '/network/l3-networks/l3-network/' + $ss.network[$n].netid`" />
-->
- </set>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf:relationship-list"
key="generic-vnf.vnf-id = $ss.param.vnf-id
AND related-to = l3-network
AND relationship.related-link = $tmp.related-link" >
- <outcome value='failure'>
- <block atomic='true'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Failed to delete VNF l3-network relationship for generic-vnf.vnfid = ' + $ss.param.vnf-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- <switch test='`$tmp.return-failure`'>
- <outcome value='true'>
- <block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ <outcome value='failure'>
+ <block atomic='true'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to delete VNF l3-network relationship for generic-vnf.vnfid = ' + $ss.param.vnf-id + ' from AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ <switch test='`$tmp.return-failure`'>
+ <outcome value='true'>
+ <block atomic='true'>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='`$error-message`' />
- </return>
- </block>
- </outcome>
- </switch>
- </block>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`$error-message + ' l3-network relationship with related-path = ' + $tmp.related-path + ' not found in AAI. Consider silent success!'`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value="`$error-message + ' Rollback (delete) of generic-vnf l3-network relationships completed.'`" />
- </set>
- </outcome>
- </delete>
- </for>
- </block>
+ </set>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value='`$error-message`' />
+ </return>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' l3-network relationship with related-path = ' + $tmp.related-path + ' not found in AAI. Consider silent success!'`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback (delete) of generic-vnf l3-network relationships completed.'`" />
+ </set>
+ </outcome>
+ </delete>
+ </for>
+ </block>
+ </outcome>
+ </switch>
</block>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].resource-resolution-data.status'
+ value='DELETED' />
+ </set>
</block>
</outcome>
</switch>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-module-put-index].value'
+ value='SUCCESS' />
+ </set>
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >
- <parameter name='filename' value='/var/tmp/ss.aai.vfmoduleput.log' />
+ <parameter name='filename' value='/var/tmp/ss-aai-vfput.log' />
</execute>
</block>
</method>
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-vnf-put.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-vnf-put.xml
index e7910881..877c272d 100644
--- a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-vnf-put.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-vnf-put.xml
@@ -3,6 +3,15 @@
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='self-serve-aai-vnf-put' mode='sync'>
<block atomic="true">
+ <switch test='`$ss.capability-name`'>
+ <outcome value=''>
+ <return status="failure">
+ <parameter name="ack-final" value="Y" />
+ <parameter name="error-code" value="500"/>
+ <parameter name="error-message" value="ss.capability-name is null" />
+ </return>
+ </outcome>
+ </switch>
<switch test='`$ss.capability-action`'>
<outcome value=''>
<return status="failure">
@@ -44,6 +53,18 @@
<parameter name='ss.param.aai-vnf-put-index' value='`$aidx`' />
</set>
</outcome>
+ <outcome value='license-key'>
+ <set>
+ <parameter name='ss.param.license-key' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].value`' />
+ <parameter name='ss.param.license-key-index' value='`$aidx`' />
+ </set>
+ </outcome>
+ <outcome value='entitlement-key'>
+ <set>
+ <parameter name='ss.param.entitlement-key' value ='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$aidx].value`' />
+ <parameter name='ss.param.entitlement-key-index' value='`$aidx`' />
+ </set>
+ </outcome>
</switch>
</for>
<get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
@@ -75,10 +96,27 @@
</block>
</outcome>
</get-resource>
+ <set>
+ <parameter name="ss.selflink"
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/' +
+ $service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.service-instance-id +
+ '/service-data/vnfs/vnf/' +
+ $ss.param.vnf-id +
+ '/vnf-data/vnf-topology/'`" />
+ </set>
<update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="vnf-name" value='`$ss.param.vnf-name`' />
+ <parameter name="vnf-name" value="`$ss.param.vnf-name`" />
+ <parameter name="prov-status" value="PREPROV" />
+ <parameter name="operational-status" value="out-of-service-path" />
+ <parameter name="selflink" value="`$ss.selflink`" />
+ <parameter name="model-customization-id"
+ value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.onap-model-information.model-customization-uuid`" />
+ <parameter name="model-invariant-id"
+ value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.onap-model-information.model-invariant-uuid`" />
+ <parameter name="model-version-id"
+ value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.onap-model-information.model-uuid`" />
<outcome value='failure'>
<block atomic='true'>
<set>
@@ -104,230 +142,279 @@
</block>
</outcome>
</update>
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <switch test="`$ss.param.license-assignment-group-uuid != ''`">
+ <outcome value='true'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >
+ <parameter name='source' value='`$ss.param.license-assignment-group-uuid`' />
+ <parameter name='target' value='$' />
+ <outcome value='true'>
+ <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="`'ss.param.license-assignment-group-uuid = ' + $ss.param.license-assignment-group-uuid`"/>
+ <parameter name="field3" value="__SKIP saving license object in AnAI__"/>
+ </record>
+ </outcome>
+ <outcome value='false'>
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="license"
key="license.group-uuid = $ss.param.license-assignment-group-uuid
AND license.resource-uuid = $ss.param.license-key
AND generic-vnf.vnf-id = $ss.param.vnf-id" >
- <parameter name="group-uuid" value='`$ss.param.license-assignment-group-uuid`' />
- <parameter name="resource-uuid" value='`$ss.param.license-key`' />
- <outcome value='failure'>
- <block atomic='true'>
- <block>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-put-index].resource-resolution-data.status'
+ <parameter name="group-uuid" value='`$ss.param.license-assignment-group-uuid`' />
+ <parameter name="resource-uuid" value='`$ss.param.license-key`' />
+ <outcome value='failure'>
+ <block atomic='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="vnf-name" value='`$tmp.aai.vnf.vnf-anme`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
+ <parameter name="vnf-name" value='`$tmp.aai.vnf.vnf-anme`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id = ' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Failed to save license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' in AA. ' + $error-message`" />
+ </return>
+ </block>
</outcome>
<outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id = ' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`'Failed to save license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' in AAI'`" />
- </return>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic='true'>
- <block>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-put-index].resource-resolution-data.status'
+ <block atomic='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="vnf-name" value='`$tmp.aai.vnf.vnf-anme`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id = ' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
+ <parameter name="vnf-name" value='`$tmp.aai.vnf.vnf-anme`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id = ' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' is not found in AAI. ' + $error-message`" />
+ </return>
+ </block>
</outcome>
<outcome value='success'>
<set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
+ <parameter name='ss.license-updated' value='true' />
</set>
</outcome>
- </update>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`'license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' is not found in AAI'`" />
- </return>
- </block>
+ </save>
+ </outcome>
+ </execute>
</outcome>
- </save>
- <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </switch>
+ <switch test="`$ss.param.entitlement-assignment-group-uuid != ''`">
+ <outcome value='true'>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains' emitsOutcome='true' >
+ <parameter name='source' value='`$ss.param.entitlement-assignment-group-uuid`' />
+ <parameter name='target' value='$' />
+ <outcome value='true'>
+ <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="`'ss.param.entitlement-assignment-group-uuid = ' + $ss.param.entitlement-assignment-group-uuid`"/>
+ <parameter name="field3" value="__SKIP saving entitlement object in AnAI__"/>
+ </record>
+ </outcome>
+ <outcome value='false'>
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="entitlement"
key="entitlement.group-uuid = $ss.param.entitlement-assignment-group-uuid
AND entitlement.resource-uuid = $ss.param.entitlement-key
AND generic-vnf.vnf-id = $ss.param.vnf-id" >
- <parameter name="group-uuid" value='`$ss.param.entitlement-assignment-group-uuid`' />
- <parameter name="resource-uuid" value='`$ss.param.entitlement-key`' />
- <outcome value='failure'>
- <block atomic='true'>
- <block>
- <block>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-put-index].resource-resolution-data.status'
+ <parameter name="group-uuid" value='`$ss.param.entitlement-assignment-group-uuid`' />
+ <parameter name="resource-uuid" value='`$ss.param.entitlement-key`' />
+ <outcome value='failure'>
+ <block atomic='true'>
+ <block>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="vnf-name" value='`$tmp.aai.vnf.vnf-anme`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id = ' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <block>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK license"/>
- </record>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="vnf-name" value='`$tmp.aai.vnf.vnf-anme`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id = ' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ <switch test="`$ss.license-updated`">
+ <outcome value='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK license"/>
+ </record>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="license"
key="license.group-uuid = $ss.param.license-assignment-group-uuid
AND license.resource-uuid = $ss.param.license-key" >
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback license because license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' NOT FOUND in AAI. SILENT SUCCESS! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of license completed. " />
- </set>
- </outcome>
- </delete>
- </block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`'Failed to save entitlement with group-uuid = ' + $ss.param.entitlement-assignment-group-uuid + ' AND entitlement.resource-uuid = ' + $ss.param.entitlement-key + ' in AAI'`" />
- </return>
- </block>
- </outcome>
- <outcome value='not-found'>
- <block atomic='true'>
- <block>
- <block>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK generic-vnf update"/>
- </record>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-put-index].resource-resolution-data.status'
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback license because license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' NOT FOUND in AAI. SILENT SUCCESS! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of license completed. '`" />
+ </set>
+ </outcome>
+ </delete>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Failed to save entitlement with group-uuid = ' + $ss.param.entitlement-assignment-group-uuid + ' AND entitlement.resource-uuid = ' + $ss.param.entitlement-key + ' in AAI. ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ <outcome value='not-found'>
+ <block atomic='true'>
+ <block>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK generic-vnf update"/>
+ </record>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param.aai-vf-put-index].resource-resolution-data.status'
value='FAILED' />
- </set>
- <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ </set>
+ <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="generic-vnf"
key="generic-vnf.vnf-id = $ss.param.vnf-id " >
- <parameter name="vnf-name" value='`$tmp.aai.vnf.vnf-anme`' />
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback generic-vnf update because generic-vnf with vnf-id = ' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of generic-vnf update completed. " />
- </set>
- </outcome>
- </update>
- </block>
- <block>
- <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
- <parameter name="logger" value="message-log"/>
- <parameter name="field1" value="ROLLBACK license"/>
- </record>
- <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+ <parameter name="vnf-name" value='`$tmp.aai.vnf.vnf-anme`' />
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update in AnAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback generic-vnf update because generic-vnf with vnf-id = ' + $ss.param.vnf-id + ' is not found in AAI. MANUAL ROLLBACK IS REQUIRED! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of generic-vnf update completed. '`" />
+ </set>
+ </outcome>
+ </update>
+ </block>
+ <switch test="`$ss.license-updated`">
+ <outcome value='true'>
+ <block>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK license"/>
+ </record>
+ <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
resource="license"
key="license.group-uuid = $ss.param.license-assignment-group-uuid
AND license.resource-uuid = $ss.param.license-key" >
- <outcome value='failure'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
- </set>
- </outcome>
- <outcome value='not-found'>
- <set>
- <parameter name='error-message' value="`' Failed to rollback license because license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' NOT FOUND in AAI. SILENT SUCCESS! '`" />
- </set>
- </outcome>
- <outcome value='success'>
- <set>
- <parameter name='error-message' value=" Rollback of license completed. " />
- </set>
- </outcome>
- </delete>
- </block>
- </block>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value="`'entitlement with group-uuid = ' + $ss.param.entitlement-assignment-group-uuid + ' AND entitlement.resource-uuid = ' + $ss.param.entitlement-key + ' is not found in AAI'`" />
- </return>
- </block>
+ <outcome value='failure'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' in AAI. MANUAL ROLLBACK IS REQUIRED!'`" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Failed to rollback license because license with group-uuid = ' + $ss.param.license-assignment-group-uuid + ' AND license.resource-uuid = ' + $ss.param.license-key + ' NOT FOUND in AAI. SILENT SUCCESS! '`" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <set>
+ <parameter name='error-message' value="`$error-message + ' Rollback of license completed. '`" />
+ </set>
+ </outcome>
+ </delete>
+ </block>
+ </outcome>
+ </switch>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'entitlement with group-uuid = ' + $ss.param.entitlement-assignment-group-uuid + ' AND entitlement.resource-uuid = ' + $ss.param.entitlement-key + ' is not found in AAI. ' + $error-message`" />
+ </return>
+ </block>
+ </outcome>
+ </save>
+ </outcome>
+ </execute>
</outcome>
- </save>
+ </switch>
<set>
<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].resource-resolution-data.status'
value='SUCCESS' />
@@ -335,8 +422,12 @@
</block>
</outcome>
</switch>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$ss.param.aai-vnf-put-index].value'
+ value='SUCCESS' />
+ </set>
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >
- <parameter name='filename' value='/var/tmp/ss.aai.vfmoduleput.log' />
+ <parameter name='filename' value='/var/tmp/ss-aai-vnfput.log' />
</execute>
</block>
</method>
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-capability-param-resolution.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-capability-param-resolution.xml
index d59d3140..2afe8be1 100644
--- a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-capability-param-resolution.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-capability-param-resolution.xml
@@ -183,6 +183,10 @@
</switch>
</outcome>
</switch>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="DONE: self-serve-capability-param-resolution"/>
+ </record>
</block>
</method>
</service-logic> \ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-mS-vlan-tag-assign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-mS-vlan-tag-assign.xml
index ce0905a8..0b2cde91 100644
--- a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-mS-vlan-tag-assign.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-mS-vlan-tag-assign.xml
@@ -156,10 +156,15 @@
<switch test='`$vtResp.error-code`'>
<outcome value='500'>
<block atomic='true'>
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].resource-resolution-data.status'
+ <for index="i" start="0" end="`$ss.vt.param_length`">
+ <set>
+ <parameter name='vt-index' value='`$ss.vt.param[$i].index`' />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].resource-resolution-data.status'
value='FAILED' />
- </set>
+ </set>
+ </for>
<return status='failure'>
<parameter name='error-code' value='500'/>
<parameter name='error-message' value="`'Encountered error from mS-vlan-tag-assign with error-code = ' + $vtResp.error-code + ' and error-message = ' + $vtResp.error-message`" />
@@ -246,10 +251,74 @@
</block>
<switch test='`$ss.param.vnfc-name`'>
<outcome value=''>
- <return status='failure'>
- <parameter name='error-code' value='500' />
- <parameter name='error-message' value='Unable to resolve vnfc-name' />
- </return>
+ <block atomic='true'>
+ <block atomic="true">
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK: self-serve-mS-vlan-tag-assign"/>
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$prop.restapi.ss-mS-vlan-tag-assign`"/>
+ <parameter name="outputPath" value="tmp.ss-vlan-tag-url"/>
+ <parameter name="target" value="{action}"/>
+ <parameter name="replacement" value="unassign"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.mS.vlan.tag.unassign.templatefile`" />
+ <parameter name='restapiUrl' value='`$prop.vt.mS.url + $tmp.ss-vlan-tag-url`' />
+ <parameter name='restapiUser' value='`$prop.vt.mS.user`' />
+ <parameter name='restapiPassword' value='`$prop.vt.mS.pwd`' />
+ <parameter name='format' value='json' />
+ <parameter name='httpMethod' value='POST' />
+ <parameter name="responsePrefix" value="vtResp" />
+ <outcome value='failure'>
+ <set>
+ <parameter name="error-message"
+ value="Failed to rollback vlan-tag from mS. vlan-tag MUST BE ROLLBACK MANUALLY!!!" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name="error-message"
+ value="Failed to rollback vlan-tag from mS. vlan-tag MUST BE ROLLBACK MANUALLY!!!" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <switch test='`$vtResp.error-code`'>
+ <outcome value='500'>
+ <set>
+ <parameter name="error-message"
+ value="`'Received error from mS with error-code = ' + $vtResp.error-code + ' and error-message = ' + $vtResp.error-message + '; vlan-tag MUST BE ROLLBACK MANUALLY!!!'`" />
+ </set>
+ </outcome>
+ <outcome value='200'>
+ <block>
+ <for silentFailure='true' index="oidx" start="0" end="`$vtResp.output_length`">
+ <for silentFailure='true' index="i" start="0" end="`$ss.vt.param_length`">
+ <set>
+ <parameter name='vt-index' value='`$ss.vt.param[$i].index`' />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].resource-resolution-data.status'
+ value='PENDING' />
+ </set>
+ </for>
+ </for>
+ <set>
+ <parameter name="error-message"
+ value="vlan tags were rolled back from mS successfully." />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ </outcome>
+ </execute>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500' />
+ <parameter name='error-message' value="`'Unable to resolve vnfc-name; ' + $error-message`" />
+ </return>
+ </block>
</outcome>
</switch>
</block>
@@ -297,10 +366,74 @@
</set>
<call module="GENERIC-RESOURCE-API" rpc="generate-cp-instance-id" mode="sync" >
<outcome value='failure'>
- <return status='failure'>
- <parameter name='error-code' value='500'/>
- <parameter name='error-message' value="`'Error in generating cp-instance-id in SDNC; ' + $error-message.generate-cp-instance-id`" />
- </return>
+ <block atomic='true'>
+ <block atomic="true">
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK: self-serve-mS-vlan-tag-assign"/>
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$prop.restapi.ss-mS-vlan-tag-assign`"/>
+ <parameter name="outputPath" value="tmp.ss-vlan-tag-url"/>
+ <parameter name="target" value="{action}"/>
+ <parameter name="replacement" value="unassign"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.mS.vlan.tag.unassign.templatefile`" />
+ <parameter name='restapiUrl' value='`$prop.vt.mS.url + $tmp.ss-vlan-tag-url`' />
+ <parameter name='restapiUser' value='`$prop.vt.mS.user`' />
+ <parameter name='restapiPassword' value='`$prop.vt.mS.pwd`' />
+ <parameter name='format' value='json' />
+ <parameter name='httpMethod' value='POST' />
+ <parameter name="responsePrefix" value="vtResp" />
+ <outcome value='failure'>
+ <set>
+ <parameter name="error-message"
+ value="Failed to rollback vlan-tag from mS. vlan-tag MUST BE ROLLBACK MANUALLY!!!" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name="error-message"
+ value="Failed to rollback vlan-tag from mS. vlan-tag MUST BE ROLLBACK MANUALLY!!!" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <switch test='`$vtResp.error-code`'>
+ <outcome value='500'>
+ <set>
+ <parameter name="error-message"
+ value="`'Received error from mS with error-code = ' + $vtResp.error-code + ' and error-message = ' + $vtResp.error-message + '; vlan-tag MUST BE ROLLBACK MANUALLY!!!'`" />
+ </set>
+ </outcome>
+ <outcome value='200'>
+ <block>
+ <for silentFailure='true' index="oidx" start="0" end="`$vtResp.output_length`">
+ <for silentFailure='true' index="i" start="0" end="`$ss.vt.param_length`">
+ <set>
+ <parameter name='vt-index' value='`$ss.vt.param[$i].index`' />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].resource-resolution-data.status'
+ value='PENDING' />
+ </set>
+ </for>
+ </for>
+ <set>
+ <parameter name="error-message"
+ value="vlan tags were rolled back from mS successfully." />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ </outcome>
+ </execute>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500'/>
+ <parameter name='error-message' value="`'Error in generating cp-instance-id in SDNC; ' + $error-message.generate-cp-instance-id + $error-message`" />
+ </return>
+ </block>
</outcome>
</call>
<for silentFailure='true' index="sidx" start="0" end="`$vtResp.output[$oidx].stored-elements_length`">
@@ -344,10 +477,74 @@
</set>
<call module="GENERIC-RESOURCE-API" rpc="generate-cp-instance-id" mode="sync" >
<outcome value='failure'>
- <return status='failure'>
- <parameter name='error-code' value='500'/>
- <parameter name='error-message' value="`'Error in generating cp-instance-id in SDNC; ' + $error-message.generate-cp-instance-id`" />
- </return>
+ <block atomic='true'>
+ <block atomic="true">
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="ROLLBACK: self-serve-mS-vlan-tag-assign"/>
+ </record>
+ <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+ <parameter name="source" value="`$prop.restapi.ss-mS-vlan-tag-assign`"/>
+ <parameter name="outputPath" value="tmp.ss-vlan-tag-url"/>
+ <parameter name="target" value="{action}"/>
+ <parameter name="replacement" value="unassign"/>
+ </execute>
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+ <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.mS.vlan.tag.unassign.templatefile`" />
+ <parameter name='restapiUrl' value='`$prop.vt.mS.url + $tmp.ss-vlan-tag-url`' />
+ <parameter name='restapiUser' value='`$prop.vt.mS.user`' />
+ <parameter name='restapiPassword' value='`$prop.vt.mS.pwd`' />
+ <parameter name='format' value='json' />
+ <parameter name='httpMethod' value='POST' />
+ <parameter name="responsePrefix" value="vtResp" />
+ <outcome value='failure'>
+ <set>
+ <parameter name="error-message"
+ value="Failed to rollback vlan-tag from mS. vlan-tag MUST BE ROLLBACK MANUALLY!!!" />
+ </set>
+ </outcome>
+ <outcome value='not-found'>
+ <set>
+ <parameter name="error-message"
+ value="Failed to rollback vlan-tag from mS. vlan-tag MUST BE ROLLBACK MANUALLY!!!" />
+ </set>
+ </outcome>
+ <outcome value='success'>
+ <switch test='`$vtResp.error-code`'>
+ <outcome value='500'>
+ <set>
+ <parameter name="error-message"
+ value="`'Received error from mS with error-code = ' + $vtResp.error-code + ' and error-message = ' + $vtResp.error-message + '; vlan-tag MUST BE ROLLBACK MANUALLY!!!'`" />
+ </set>
+ </outcome>
+ <outcome value='200'>
+ <block>
+ <for silentFailure='true' index="oidx" start="0" end="`$vtResp.output_length`">
+ <for silentFailure='true' index="i" start="0" end="`$ss.vt.param_length`">
+ <set>
+ <parameter name='vt-index' value='`$ss.vt.param[$i].index`' />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].resource-resolution-data.status'
+ value='PENDING' />
+ </set>
+ </for>
+ </for>
+ <set>
+ <parameter name="error-message"
+ value="vlan tags were rolled back from mS successfully." />
+ </set>
+ </block>
+ </outcome>
+ </switch>
+ </outcome>
+ </execute>
+ </block>
+ <return status='failure'>
+ <parameter name='error-code' value='500'/>
+ <parameter name='error-message' value="`'Error in generating cp-instance-id in SDNC; ' + $error-message.generate-cp-instance-id + $error-message`" />
+ </return>
+ </block>
</outcome>
</call>
<for silentFailure='true' index="sidx" start="0" end="`$vtResp.output[$oidx].stored-elements_length`">
@@ -452,9 +649,9 @@
</execute>
<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
<parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.mS.vlan.tag.unassign.templatefile`" />
- <parameter name='restapiUrl' value='`$prop.controller.url + $prop.restapi.ss-mS-vlan-tag-assign`' />
- <parameter name='restapiUser' value='`$prop.controller.user`' />
- <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+ <parameter name='restapiUrl' value='`$prop.vt.mS.url + $tmp.ss-vlan-tag-url`' />
+ <parameter name='restapiUser' value='`$prop.vt.mS.user`' />
+ <parameter name='restapiPassword' value='`$prop.vt.mS.pwd`' />
<parameter name='format' value='json' />
<parameter name='httpMethod' value='POST' />
<parameter name="responsePrefix" value="vtResp" />
@@ -471,7 +668,7 @@
</for>
<return status='failure'>
<parameter name='error-code' value='500' />
- <parameter name='error-message' value="Failed to get vlan-tag assisgnment from mS" />
+ <parameter name='error-message' value="Failed to unassign vlan-tag from mS" />
</return>
</block>
</outcome>
@@ -488,7 +685,7 @@
</for>
<return status='failure'>
<parameter name='error-code' value='500' />
- <parameter name='error-message' value="Failed to get vlan-tag assisgnment from mS" />
+ <parameter name='error-message' value="Failed to unassign vlan-tag from mS" />
</return>
</block>
</outcome>
@@ -496,13 +693,18 @@
<switch test='`$vtResp.error-code`'>
<outcome value='500'>
<block atomic="true">
- <set>
- <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].resource-resolution-data.status'
+ <for index="i" start="0" end="`$ss.vt.param_length`">
+ <set>
+ <parameter name='vt-index' value='`$ss.vt.param[$i].index`' />
+ </set>
+ <set>
+ <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].resource-resolution-data.status'
value='FAILED' />
- </set>
+ </set>
+ </for>
<return status='failure'>
<parameter name='error-code' value='500'/>
- <parameter name='error-message' value="`'Encountered error from mS-vlan-tag-assign with error-code = ' + $vtResp.error-code + ' and error-message = ' + $vtResp.error-message`" />
+ <parameter name='error-message' value="`'Encountered error while unassigning mS-vlan-tag with error-code = ' + $vtResp.error-code + ' and error-message = ' + $vtResp.error-message`" />
</return>
</block>
</outcome>
@@ -510,7 +712,7 @@
<for silentFailure='true' index="oidx" start="0" end="`$vtResp.output_length`">
<for silentFailure='true' index="i" start="0" end="`$ss.vt.param_length`">
<set>
- <parameter name='vt-index' value='`$ss.vt.param[$i]-index`' />
+ <parameter name='vt-index' value='`$ss.vt.param[$i].index`' />
</set>
<set>
<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vt-index].resource-resolution-data.status'
@@ -525,9 +727,18 @@
</block>
</outcome>
</switch>
+ <set>
+ <parameter name='pathname'
+ value="`'/var/tmp/ss-mS-vlan-tag-' + $ss.capability-action + '-' +
+ $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.vf-module-id + '.log'`" />
+ </set>
<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >
- <parameter name='filename' value='/var/tmp/ss.ms-vlan-tag.log' />
+ <parameter name='filename' value='`$pathname`' />
</execute>
+ <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+ <parameter name="logger" value="message-log"/>
+ <parameter name="field1" value="DONE: mS-vlan-tag-assign"/>
+ </record>
</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-changeassign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-changeassign.xml
index 66330261..93eaf71a 100755
--- a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-changeassign.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-changeassign.xml
@@ -143,7 +143,7 @@
<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`' />
+ value='`$vf-module-topology-operation-input.request-information.request-action`' />
</set>
<return status='success'>
<parameter name="ack-final-indicator" value="Y" />
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-changeassign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-changeassign.xml
index d93f9689..a45713f5 100755
--- a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-changeassign.xml
+++ b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-changeassign.xml
@@ -42,6 +42,24 @@
</return>
</outcome>
</switch>
+ <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+ key='SELECT * from VF_MODEL WHERE customization_uuid = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.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 ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`" />
+ </return>
+ </outcome>
+ </get-resource>
<call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-forking-logic' mode='sync' ></call>
<switch test="`$ss.self-serve-flag`">
<outcome value='false'>
diff --git a/platform-logic/restapi-templates/src/main/json/self-serve-vfmodule-assignments.json b/platform-logic/restapi-templates/src/main/json/self-serve-vfmodule-assignments.json
index c62d0a3e..ee239656 100644
--- a/platform-logic/restapi-templates/src/main/json/self-serve-vfmodule-assignments.json
+++ b/platform-logic/restapi-templates/src/main/json/self-serve-vfmodule-assignments.json
@@ -60,12 +60,12 @@
"aic-clli": ${vf.vf-module-data.vf-module-request-input.aic-clli},
"vf-module-input-parameters": {
"param": [
- ${repeat:vf.vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length:
+${repeat:vf.vf-module-data.vf-module-request-input.vf-module-input-parameters.param_length:
{
"name": ${vf.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[${1}].name},
"value": ${vf.vf-module-data.vf-module-request-input.vf-module-input-parameters.param[${1}].value}
},
- }
+}
]
}
},
@@ -82,26 +82,74 @@
"model-version": ${vf.vf-module-data.vf-module-topology.onap-model-information.model-version},
"model-name": ${vf.vf-module-data.vf-module-topology.onap-model-information.model-name}
},
+ "vf-module-assignments": {
+ "vms": {
+ "vm": [
+${repeat:vf.vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length:
+ {
+ "vm-type": ${vf.vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[${1}].vm-type},
+ "onap-model-information": {
+ "model-invariant-uuid": ${vf.vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[${1}].onap-model-information.model-invariant-uuid},
+ "model-customization-uuid": ${vf.vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[${1}].onap-model-information.model-customization-uuid},
+ "model-version": ${vf.vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[${1}].onap-model-information.model-version}
+ },
+ "vm-names": {
+ "vnfc-names": [
+${repeat:vf.vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[${1}].vm-names.vnfc-names_length:
+ {
+ "vnfc-name": ${vf.vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[${1}].vm-names.vnfc-names[${2}].vnfc-name},
+ "vnfc-networks": {
+ "vnfc-network-data": [
+${repeat:vf.vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[${1}].vm-names.vnfc-names[${2}].vnfc-networks.vnfc-network-data_length:
+ {
+ "vnfc-network-role": ${vf.vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[${1}].vm-names.vnfc-names[${2}].vnfc-networks.vnfc-network-data[${3}].vnfc-network-role},
+ "vnfc-type": ${vf.vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[${1}].vm-names.vnfc-names[${2}].vnfc-networks.vnfc-network-data[${3}].vnfc-type},
+ "connection-point": {
+ "connection-point-id": ${vf.vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[${1}].vm-names.vnfc-names[${2}].vnfc-networks.vnfc-network-data[${3}].connection-point.connection-point-id},
+ "vlan-data": [
+${repeat:vf.vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[${1}].vm-names.vnfc-names[${2}].vnfc-networks.vnfc-network-data[${3}].connection-point.vlan-data_length:
+ {
+ "vlan-uuid": ${vf.vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[${1}].vm-names.vnfc-names[${2}].vnfc-networks.vnfc-network-data[${3}].connection-point.vlan-data[${4}].vlan-uuid},
+ "vlan-tag-id": ${vf.vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[${1}].vm-names.vnfc-names[${2}].vnfc-networks.vnfc-network-data[${3}].connection-point.vlan-data[${4}].vlan-tag-id},
+ "vlan-tag-description": ${vf.vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[${1}].vm-names.vnfc-names[${2}].vnfc-networks.vnfc-network-data[${3}].connection-point.vlan-data[${4}].vlan-tag-description},
+ "vlan-role": ${vf.vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[${1}].vm-names.vnfc-names[${2}].vnfc-networks.vnfc-network-data[${3}].connection-point.vlan-data[${4}].vlan-role}
+ },
+}
+ ]
+ }
+ },
+}
+ ]
+ }
+ },
+}
+ ]
+ }
+ },
+}
+ ]
+ }
+ },
"vf-module-parameters": {
"param": [
- ${repeat:vf.vf-module-data.vf-module-topology.vf-module-parameters.param_length:
+${repeat:vf.vf-module-data.vf-module-topology.vf-module-parameters.param_length:
{
"name": ${vf.vf-module-data.vf-module-topology.vf-module-parameters.param[${1}].name},
"value": ${vf.vf-module-data.vf-module-topology.vf-module-parameters.param[${1}].value},
"resource-resolution-data": {
"resource-key": [
- ${repeat:vf.vf-module-data.vf-module-topology.vf-module-parameters.param[${1}].resource-resolution-data.resource-key_length:
+${repeat:vf.vf-module-data.vf-module-topology.vf-module-parameters.param[${1}].resource-resolution-data.resource-key_length:
{
"name": ${vf.vf-module-data.vf-module-topology.vf-module-parameters.param[${1}].resource-resolution-data.resource-key[${2}].name},
"value": ${vf.vf-module-data.vf-module-topology.vf-module-parameters.param[${1}].resource-resolution-data.resource-key[${2}].value}
},
- }
+}
],
"status": ${vf.vf-module-data.vf-module-topology.vf-module-parameters.param[${1}].resource-resolution-data.status},
"capability-name": ${vf.vf-module-data.vf-module-topology.vf-module-parameters.param[${1}].resource-resolution-data.capability-name}
},
},
- }
+}
]
},
"tenant": ${vf.vf-module-data.vf-module-topology.tenant},