NonRT-RIC A1 Northbound API
[nonrtric.git] / sdnc-a1-controller / oam / platform-logic / generic-resource-api / src / main / xml / GENERIC-RESOURCE-API_network-topology-operation-assign-from-preload.xml
diff --git a/sdnc-a1-controller/oam/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-assign-from-preload.xml b/sdnc-a1-controller/oam/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-assign-from-preload.xml
new file mode 100755 (executable)
index 0000000..013219d
--- /dev/null
@@ -0,0 +1,952 @@
+<service-logic\r
+    xmlns='http://www.onap.org/sdnc/svclogic'\r
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>\r
+    <method rpc='network-topology-operation-assign-from-preload' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test="`$tmp.nidx`">\r
+                <outcome value=''>\r
+                    <switch test='`$service-data.networks.network_length`'>\r
+                        <outcome value=''>\r
+                            <set>\r
+                                <parameter name='nidx' value='0' />\r
+                                <parameter name='nidx_len' value='1'/>\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <set>\r
+                                <parameter name='nidx' value='`$service-data.networks.network_length`' />\r
+                                <parameter name='nidx_len' value='`$service-data.networks.network_length + 1`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='nidx' value='`$tmp.nidx`' />\r
+                        <parameter name='nidx_len' value='`$service-data.networks.network_length`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.networks.network[$nidx].network-data.service-information.' value='`$network-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.networks.network[$nidx].network-data.network-information.' value='`$network-topology-operation-input.network-information.`' />\r
+                <parameter name='service-data.networks.network[$nidx].network-data.network-request-input.' value='`$network-topology-operation-input.network-request-input.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.l3-network.model-invariant-id' value="`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`" />\r
+                <parameter name='tmp.l3-network.model-version-id' value="`$network-topology-operation-input.network-information.onap-model-information.model-version`" />\r
+                <parameter name='tmp.l3-network.model-customization-id' value="`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`" />\r
+                <parameter name='s-onap-model-information.model-invariant-uuid' value='`$service-model.invariant-uuid`' />\r
+                <parameter name='s-onap-model-information.model-version' value='`$service-model.version`' />\r
+                <parameter name='s-onap-model-information.model-uuid' value='`$service-model.service-uuid`' />\r
+                <parameter name='s-onap-model-information.model-name' value='`$service-model.name`' />\r
+                <parameter name='n-onap-model-information.model-invariant-uuid' value='`$network-model.invariant-uuid`' />\r
+                <parameter name='n-onap-model-information.model-version' value='`$network-model.version`' />\r
+                <parameter name='n-onap-model-information.model-uuid' value='`$network-model.uuid`' />\r
+                <parameter name='n-onap-model-information.model-name' value='`$network-model.name`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.networks.network[$nidx].network-data.service-information.ecomp-model-information.' value="`$s-onap-model-information.`" />\r
+                <parameter name='service-data.networks.network[$nidx].network-data.network-information.ecomp-model-information.' value="`$n-onap-model-information.`" />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.preload-network`"/>\r
+                <parameter name="outputPath" value="tmp.pn-url"/>\r
+                <parameter name="target" value="{network-name}"/>\r
+                <parameter name="replacement" value="`$tmp.network-instance-name`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pn-url`' />\r
+                <parameter name='restapiUser' value='`$prop.controller.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='GET' />\r
+                <parameter name="responsePrefix" value="preload-data" />\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="'Error: No preload-network found with network-name =' + $tmp.network-instance-name + ' in md-sal'" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/lmr-nto.log' />\r
+            </execute>\r
+            <set>\r
+                <parameter name="tmp.error-message" value=""/>\r
+            </set>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+               key="l3-network.network-name = $tmp.network-instance-name" \r
+               local-only="false" \r
+               pfx="aai.l3-network">\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="'Error searching for l3-network with network-name =' + $tmp.network-instance-name + 'from AnAI'" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="'Error l3-network with network-name =' + $tmp.network-instance-name + ' already exists in AnAI'" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <set>\r
+                <parameter name='tmp.l3-network.network-name' value="`$tmp.network-instance-name`" />\r
+                <parameter name='tmp.l3-network.network-type' value="`$preload-data.preload-network-topology-information.network-topology-identifier-structure.network-type`" />\r
+                <parameter name="tmp.l3-network.physical-network-name" value="`$preload-data.preload-network-topology-information.physical-network-name`" />\r
+                <parameter name="tmp.l3-network.is-provider-network" value="`$preload-data.preload-network-topology-information.is-provider-network`" />\r
+                <parameter name="tmp.l3-network.is-shared-network" value="`$preload-data.preload-network-topology-information.is-shared-network`" />\r
+                <parameter name="tmp.l3-network.is-external-network" value="`$preload-data.preload-network-topology-information.network-topology-identifier-structure.network-type`" />\r
+                <parameter name='tmp.l3-network.network-role' value="`$preload-data.preload-network-topology-information.network-topology-identifier-structure.network-role`" />\r
+                <parameter name='tmp.l3-network.network-technology' value="`$preload-data.preload-network-topology-information.network-topology-identifier-structure.network-technology`" />\r
+                <parameter name='tmp.l3-network.is-bound-to-vpn' value="`$network-model.is-bound-to-vpn`" />\r
+                <parameter name="tmp.l3-network.tenant-id" value="`$network-topology-operation-input.network-request-input.tenant`" />\r
+                <parameter name="tmp.l3-network.network-role-instance" value="0" />\r
+                <parameter name='tmp.l3-network.orchestration-status' value="PendingCreate" />\r
+                <parameter name='tmp.l3-network.model-invariant-id' value="`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`" />\r
+                <parameter name='tmp.l3-network.model-version-id' value="`$network-topology-operation-input.network-information.onap-model-information.model-version`" />\r
+                <parameter name='tmp.l3-network.model-customization-id' value="`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`" />\r
+                <parameter name='tmp.l3-network.eipam-v6-address-plan' value="`$network-model.eipam-v6-address-plan`" />\r
+                <parameter name='tmp.l3-network.eipam-v4-address-plan' value="`$network-model.eipam-v4-address-plan`" />\r
+                <parameter name='tmp.l3-network.service-id' value="`$service-data.service-information.service-id`" />\r
+                <parameter name='tmp.l3-network.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $service-data.service-information.service-instance-id\r
+ + '/service-data/networks/network/'\r
+ + $tmp.l3-network.network-id\r
+ + '/network-data/network-topology/'` " />\r
+            </set>\r
+            <set>\r
+                <parameter name="service-data.networks.network[$nidx].network-data.network-information.network-id" value='`$tmp.l3-network.network-id`' />\r
+                <parameter name="service-data.networks.network[$nidx].network-data.network-information.from-preload" value='true' />\r
+                <parameter name="service-data.networks.network[$nidx].network-data.network-information.network-type" value='`$tmp.l3-network.network-type`' />\r
+            </set>\r
+            <switch test='`$tmp.l3-network.service-id`'>\r
+                <outcome value=''>\r
+                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+               key="l3-network.network-id = $tmp.l3-network.network-id" >\r
+                        <!-- Create l3-network object -->\r
+                        <parameter name="network-id" value="`$tmp.l3-network.network-id`" />\r
+                        <parameter name="network-name" value="`$tmp.network-instance-name`" />\r
+                        <parameter name='network-type' value="`$tmp.l3-network.network-type`" />\r
+                        <parameter name='network-role' value="`$tmp.l3-network.network-role`" />\r
+                        <parameter name='network-technology' value="`$network-model.network-technology`" />\r
+                        <parameter name="is-bound-to-vpn" value="`$tmp.l3-network.is-bound-to-vpn-boolean`" />\r
+                        <parameter name="tenant-id" value="`$network-topology-operation-input.network-request-input.tenant`" />\r
+                        <parameter name="network-role-instance" value="0" />\r
+                        <parameter name="orchestration-status" value="PendingCreate" />\r
+                        <parameter name="physical-network-name" value="`$preload-data.preload-network-topology-information.physical-network-name`" />\r
+                        <parameter name="is-provider-network" value="`$preload-data.preload-network-topology-information.is-provider-network`" />\r
+                        <parameter name="is-shared-network" value="`$preload-data.preload-network-topology-information.is-shared-network`" />\r
+                        <parameter name="is-external-network" value="`$preload-data.preload-network-topology-information.is-external-network`" />\r
+                        <parameter name="selflink" value="`$tmp.l3-network.self-link`" />\r
+                        <outcome value='failure'>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Failed to save l3-network in AnAI with network-id = ' + $tmp.return.generate-l3network-network-id.uuid`"/>\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Failed to save l3-network in AnAI with network-id = ' + $tmp.return.generate-l3network-network-id.uuid`"/>\r
+                            </return>\r
+                        </outcome>\r
+                    </save>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+               key="l3-network.network-id = $tmp.l3-network.network-id" >\r
+                        <!-- Create l3-network object -->\r
+                        <parameter name="network-id" value="`$tmp.l3-network.network-id`" />\r
+                        <parameter name="network-name" value="`$tmp.network-instance-name`" />\r
+                        <parameter name='network-type' value="`$network-model.network-type`" />\r
+                        <parameter name='network-role' value="`$network-model.network-role`" />\r
+                        <parameter name='network-technology' value="`$network-model.network-technology`" />\r
+                        <parameter name='is-bound-to-vpn' value="`$network-model.is-bound-to-vpn`" />\r
+                        <parameter name="service-id" value="`$network-topology-operation-input.service-information.service-id`" />\r
+                        <parameter name="tenant-id" value="`$network-topology-operation-input.network-request-input.tenant`" />\r
+                        <parameter name="network-role-instance" value="0" />\r
+                        <parameter name="orchestration-status" value="PendingCreate" />\r
+                        <parameter name="physical-network-name" value="`$preload-data.preload-network-topology-information.physical-network-name`" />\r
+                        <parameter name="is-provider-network" value="`$preload-data.preload-network-topology-information.is-provider-network`" />\r
+                        <parameter name="is-shared-network" value="`$preload-data.preload-network-topology-information.is-shared-network`" />\r
+                        <parameter name="is-external-network" value="`$preload-data.preload-network-topology-information.is-external-network`" />\r
+                        <parameter name="selflink" value="`$tmp.l3-network.self-link`" />\r
+                        <outcome value='failure'>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Failed to save l3-network in AnAI with network-id = ' + $tmp.return.generate-l3network-network-id.uuid`"/>\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Failed to save l3-network in AnAI with network-id = ' + $tmp.return.generate-l3network-network-id.uuid`"/>\r
+                            </return>\r
+                        </outcome>\r
+                    </save>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$preload-data.preload-network-topology-information.subnets_length`">\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name="preload-data.preload-network-topology-information.subnets_length" value="0" />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <for index="i" start="0" end="`$preload-data.preload-network-topology-information.subnets_length`">\r
+                <block atomic='true'>\r
+                    <switch test="`$preload-data.preload-network-topology-information.subnets[$i].dhcp-enabled`">\r
+                        <outcome value='Y'>\r
+                            <set>\r
+                                <parameter name="tmp.dhcpEnabled.boolean" value="true" />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='N'>\r
+                            <set>\r
+                                <parameter name="tmp.dhcpEnabled.boolean" value="false" />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$preload-data.preload-network-topology-information.subnets[$i].addr-from-start`">\r
+                        <outcome value='Y'>\r
+                            <set>\r
+                                <parameter name="tmp.addrFromStart.boolean" value="true" />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value=''>\r
+                            <set>\r
+                                <parameter name="tmp.addrFromStart.boolean" value="true" />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='N'>\r
+                            <set>\r
+                                <parameter name="tmp.addrFromStart.boolean" value="false" />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <set>\r
+                        <parameter name="tmp.gateway-address" value="`$preload-data.preload-network-topology-information.subnets[$i].gateway-address`" />\r
+                    </set>\r
+                    <switch test="`$preload-data.preload-network-topology-information.subnets[$i].gateway-address`">\r
+                        <outcome value=''>\r
+                            <block atomic='true'>\r
+                                <execute plugin="com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool" method="getGatewayAddress">\r
+                                    <parameter name="ipAddress" value="`$preload-data.preload-network-topology-information.subnets[$i].start-address`" />\r
+                                    <parameter name="ipVersion" value="`$preload-data.preload-network-topology-information.subnets[$i].ip-version`" />\r
+                                    <parameter name="subnet" value="`$preload-data.preload-network-topology-information.subnets[$i].cidr-mask`" />\r
+                                    <parameter name="ctxVariable" value="tmp.return.generate.gateway-address" />\r
+                                    <outcome value='failure'>\r
+                                        <block atomic='true'>\r
+                                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='500'/>\r
+                                                <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                            </return>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </execute>\r
+                                <set>\r
+                                    <parameter name="tmp.gateway-address" value="`$tmp.return.generate.gateway-address`" />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <set>\r
+                        <parameter name="tmp.local.network-id" value="`$tmp.l3-network.network-id`" />\r
+                    </set>\r
+                    <call module="VNF-API" rpc="generate-subnets-subnet-id" mode="sync" >\r
+                        <outcome value='failure'>\r
+                            <block atomic='true'>\r
+                                <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500'/>\r
+                                    <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                </return>\r
+                            </block>\r
+                        </outcome>\r
+                    </call>\r
+                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="subnet" \r
+               key="l3-network.network-id = $tmp.l3-network.network-id \r
+                       AND subnet.subnet-id = $tmp.return.generate-subnets-subnet-id.uuid" >\r
+                        <!-- Create subnet object -->\r
+                        <parameter name="network-id" value="`$tmp.l3-network.network-id`" />\r
+                        <parameter name="subnet-id" value="`$tmp.return.generate-subnets-subnet-id.uuid`" />\r
+                        <parameter name="subnet-name" value="`$preload-data.preload-network-topology-information.subnets[$i].subnet-name`" />\r
+                        <parameter name="subnet-role" value="`$preload-data.preload-network-topology-information.subnets[$i].subnet-role`" />\r
+                        <parameter name="gateway-address" value="`$tmp.gateway-address`" />\r
+                        <parameter name="network-start-address" value="`$preload-data.preload-network-topology-information.subnets[$i].start-address`" />\r
+                        <parameter name="cidr-mask" value="`$preload-data.preload-network-topology-information.subnets[$i].cidr-mask`" />\r
+                        <parameter name="ip-version" value="`$preload-data.preload-network-topology-information.subnets[$i].ip-version`" />\r
+                        <parameter name="dhcp-start" value="`$preload-data.preload-network-topology-information.subnets[$i].dhcp-start-address`" />\r
+                        <parameter name="dhcp-end" value="`$preload-data.preload-network-topology-information.subnets[$i].dhcp-end-address`" />\r
+                        <parameter name="dhcp-enabled" value="`$tmp.dhcpEnabled.boolean`" />\r
+                        <parameter name="ip-assignment-direction" value="`$tmp.addrFromStart.boolean`" />\r
+                        <parameter name="orchestration-status" value="PendingCreate" />\r
+                        <outcome value='failure'>\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="tmp.error-message" value="`'An error occurred while saving subnet in AnAI where subnet-id = ' + $tmp.return.generate-subnets-subnet-id.uuid`"/>\r
+                                </set>\r
+                                <block atomic='true'>\r
+                                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='500'/>\r
+                                        <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                    </return>\r
+                                </block>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="tmp.error-message" value="`'An error occurred while saving subnet in AnAI where subnet-id = ' + $tmp.return.generate-subnets-subnet-id.uuid`"/>\r
+                                </set>\r
+                                <block atomic='true'>\r
+                                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='500'/>\r
+                                        <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                    </return>\r
+                                </block>\r
+                            </block>\r
+                        </outcome>\r
+                    </save>\r
+                    <switch test='`$preload-data.preload-network-topology-information.host-routes_length`'>\r
+                        <outcome value=''>\r
+                            <set>\r
+                                <parameter name='preload-data.preload-network-topology-information.host-routes_length' value='0' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <for index="h" start="0" end="`$preload-data.preload-network-topology-information.host-routes_length`">\r
+                        <block atomic='true'>\r
+                            <set>\r
+                                <parameter name="tmp.local.subnet-id" value="`$tmp.return.generate-subnets-subnet-id.uuid`" />\r
+                            </set>\r
+                            <call module="GENERIC-RESOURCE-API" rpc="generate-host-routes-host-route-id" mode="sync" >\r
+                                <outcome value='failure'>\r
+                                    <block atomic='true'>\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500'/>\r
+                                            <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                        </return>\r
+                                    </block>\r
+                                </outcome>\r
+                            </call>\r
+                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="host-route" \r
+               key="l3-network.network-id = $tmp.l3-network.network-id \r
+                       AND subnet.subnet-id = $tmp.return.generate-subnets-subnet-id.uuid  \r
+                       AND host-route.host-route-id = $tmp.return.generate-host-routes-host-route-id.uuid" >\r
+                                <!-- Create host-route object -->\r
+                                <parameter name="host-route-id" value="`$tmp.return.generate-host-routes-host-route-id.uuid`" />\r
+                                <parameter name="route-prefix" value="`$preload-data.preload-network-topology-information.subnets[$i].host-routes[$h].route-prefix`" />\r
+                                <parameter name="next-hop" value="`$preload-data.preload-network-topology-information.subnets[$i].host-routes[$h].next-hop`" />\r
+                                <outcome value='failure'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name="error-code" value="500"/>\r
+                                            <parameter name="tmp.error-message" value="`'An error occurred while saving host-route in AnAI where host-route-id = ' + $tmp.return.generate-host-routes-host-route-id.uuid`"/>\r
+                                        </set>\r
+                                        <block atomic='true'>\r
+                                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='500'/>\r
+                                                <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                            </return>\r
+                                        </block>\r
+                                    </block>\r
+                                </outcome>\r
+                                <outcome value='not-found'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name="error-code" value="500"/>\r
+                                            <parameter name="tmp.error-message" value="`'An error occurred while saving host-route in AnAI where host-route-id = ' + $tmp.return.generate-host-routes-host-route-id.uuid`"/>\r
+                                        </set>\r
+                                        <block atomic='true'>\r
+                                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='500'/>\r
+                                                <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                            </return>\r
+                                        </block>\r
+                                    </block>\r
+                                </outcome>\r
+                            </save>\r
+                        </block>\r
+                    </for>\r
+                </block>\r
+            </for>\r
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network:relationship-list" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id" \r
+       force="true" \r
+       local-only="false">\r
+                <!-- create relationship-list -->\r
+                <parameter name="relationship-list.relationship[0].related-to" value="tenant" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="cloud-region.cloud-owner" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$prop.cloud-region.cloud-owner`" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-key" value="cloud-region.cloud-region-id" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-value" value="`$network-topology-operation-input.network-request-input.aic-cloud-region`" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-key" value="tenant.tenant-id" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-value" value="`$network-topology-operation-input.network-request-input.tenant`" />\r
+                <parameter name="relationship-list.relationship[1].related-to" value="cloud-region" />\r
+                <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-key" value="cloud-region.cloud-owner" />\r
+                <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-value" value="`$prop.cloud-region.cloud-owner`" />\r
+                <parameter name="relationship-list.relationship[1].relationship-data[1].relationship-key" value="cloud-region.cloud-region-id" />\r
+                <parameter name="relationship-list.relationship[1].relationship-data[1].relationship-value" value="`$network-topology-operation-input.network-request-input.aic-cloud-region`" />\r
+                <outcome value='failure'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="`'An error occurred while saving tenant and cloud-region relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="`'An error occurred while saving tenant and cloud-region relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </save>\r
+            <switch test="`$preload-data.preload-network-topology-information.vpn-bindings_length`">\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name="preload-data.preload-network-topology-information.vpn-bindings_length" value="0" />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <for index="i" start="0" end="`$preload-data.preload-network-topology-information.vpn-bindings_length`">\r
+                <block atomic='true'>\r
+                    <set>\r
+                        <parameter name="tmp.vpn-binding-id" value="" />\r
+                    </set>\r
+                    <switch test="`$preload-data.preload-network-topology-information.vpn-bindings[$i].vpn-binding-id`">\r
+                        <outcome value='Other'>\r
+                            <set>\r
+                                <parameter name="tmp.vpn-binding-id" value="`$preload-data.preload-network-topology-information.vpn-bindings[$i].vpn-binding-id`" />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="`$tmp.vpn-binding-id != ''`">\r
+                        <outcome value='true'>\r
+                            <block atomic='true'>\r
+                                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vpn-binding" \r
+               key="vpn-binding.vpn-id = $tmp.vpn-binding-id" \r
+               local-only="false" \r
+               pfx="tmp.AnAI.vpn-binding">\r
+                                    <outcome value='success'>\r
+                                        <switch test="`$tmp.AnAI.vpn-binding.vpn-id`" >\r
+                                            <outcome value=''>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="tmp.error-message" value="`'Failed to query vpn-bindings from AnAI where vpn-binding-id  = ' + $tmp.vpn-binding-id + '.'`"/>\r
+                                                    </set>\r
+                                                    <block atomic='true'>\r
+                                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='error-code' value='500'/>\r
+                                                            <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </outcome>\r
+                                    <outcome value='not-found'>\r
+                                        <block atomic='true'>\r
+                                            <set>\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="tmp.error-message" value="`'Failed to query vpn-bindings from AnAI where vpn-binding-id = ' + $preload-data.preload-network-topology-information.vpn-bindings[$i].vpn-binding-id`"/>\r
+                                            </set>\r
+                                            <block atomic='true'>\r
+                                                <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='500'/>\r
+                                                    <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                                </return>\r
+                                            </block>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='failure'>\r
+                                        <block atomic='true'>\r
+                                            <set>\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="tmp.error-message" value="`'Failed to query vpn-bindings from AnAI where vpn-binding-id = ' + $preload-data.preload-network-topology-information.vpn-bindings[$i].vpn-binding-id`"/>\r
+                                            </set>\r
+                                            <block atomic='true'>\r
+                                                <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='500'/>\r
+                                                    <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                                </return>\r
+                                            </block>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </get-resource>\r
+                                <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network:relationship-list" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id" \r
+       force="true" \r
+       local-only="false">\r
+                                    <parameter name="relationship-list.relationship[0].related-to" value="vpn-binding" />\r
+                                    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="vpn-binding.vpn-id" />\r
+                                    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.vpn-binding-id`" />\r
+                                    <outcome value='failure'>\r
+                                        <block atomic='true'>\r
+                                            <set>\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="tmp.error-message" value="`'An error occurred while saving vpn-binding relationship for l3-network in AnAI where vpn-id = ' + $tmp.vpn-binding-id`"/>\r
+                                            </set>\r
+                                            <block atomic='true'>\r
+                                                <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='500'/>\r
+                                                    <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                                </return>\r
+                                            </block>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='not-found'>\r
+                                        <block atomic='true'>\r
+                                            <set>\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="tmp.error-message" value="`'An error occurred while saving vpn-binding relationship for l3-network in AnAI where vpn-id = ' + $tmp.vpn-binding-id`"/>\r
+                                            </set>\r
+                                            <block atomic='true'>\r
+                                                <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='500'/>\r
+                                                    <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                                </return>\r
+                                            </block>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='success'>\r
+                                        <set>\r
+                                            <parameter name="tmp.is-bound-to-vpn" value="true" />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </save>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <switch test="`$preload-data.preload-network-topology-information.network-policy_length`">\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='preload-data.preload-network-topology-information.network-policy_length' value='0' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <for index="i" start="0" end="`$preload-data.preload-network-topology-information.network-policy_length`">\r
+                <switch test="`$preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn != ''`">\r
+                    <outcome value='true'>\r
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="network-policy" \r
+               key="network-policy.network-policy-fqdn = $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn" \r
+               local-only="false" \r
+               pfx="tmp.AnAI.network-policy">\r
+                            <outcome value='not-found'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name="error-code" value="500"/>\r
+                                        <parameter name="tmp.error-message" value="`'Failed to query network-policy n AnAI where network-policy-fqdn = ' + $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn`"/>\r
+                                    </set>\r
+                                    <block atomic='true'>\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500'/>\r
+                                            <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                        </return>\r
+                                    </block>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name="error-code" value="500"/>\r
+                                        <parameter name="tmp.error-message" value="`'Failed to query network-policy n AnAI where network-policy-fqdn = ' + $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn`"/>\r
+                                    </set>\r
+                                    <block atomic='true'>\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500'/>\r
+                                            <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                        </return>\r
+                                    </block>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <switch test="`$tmp.AnAI.network-policy.network-policy-id`" >\r
+                                    <outcome value=''>\r
+                                        <block atomic='true'>\r
+                                            <set>\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="tmp.error-message" value="`'Failed to query newtork-policy from AnAI where network-policy-fqdn = ' + $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn + '. It is likely that the same network-policy-fqdn points to more than one network-policy objects in AnAI.'`"/>\r
+                                            </set>\r
+                                            <block atomic='true'>\r
+                                                <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='500'/>\r
+                                                    <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                                </return>\r
+                                            </block>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network:relationship-list" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id" >\r
+                                            <parameter name="relationship-list.relationship[0].related-to" value="network-policy" />\r
+                                            <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="network-policy.network-policy-id" />\r
+                                            <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.AnAI.network-policy.network-policy-id`" />\r
+                                            <outcome value='failure'>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="tmp.error-message" value="`'An error occurred while saving network-policy relationship for l3-network in AnAI where network-policy-id = ' + $tmp.AnAI.network-policy.network-policy-id`"/>\r
+                                                    </set>\r
+                                                    <block atomic='true'>\r
+                                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='error-code' value='500'/>\r
+                                                            <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='not-found'>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="tmp.error-message" value="`'An error occurred while saving network-policy relationship for l3-network in AnAI where network-policy-id = ' + $tmp.AnAI.network-policy.network-policy-id`"/>\r
+                                                    </set>\r
+                                                    <block atomic='true'>\r
+                                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='error-code' value='500'/>\r
+                                                            <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </save>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </outcome>\r
+                        </get-resource>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test="`$preload-data.preload-network-topology-information.route-table-reference_length`">\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='preload-data.preload-network-topology-information.route-table-reference_length' value='0' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <for index="i" start="0" end="`$preload-data.preload-network-topology-information.route-table-reference_length`">\r
+                <switch test="`$preload-data.preload-network-topology-information.route-table-reference[$i].route-table-reference-fqdn != ''`">\r
+                    <outcome value='true'>\r
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="route-table-reference" \r
+               key="route-table-reference.route-table-reference-fqdn = $preload-data.preload-network-topology-information.route-table-reference[$i].route-table-reference-fqdn" \r
+               pfx="tmp.AnAI.route-table-reference">\r
+                            <outcome value='not-found'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name="error-code" value="500"/>\r
+                                        <parameter name="tmp.error-message" value="`'Failed to query network-policy n AnAI where network-policy-fqdn = ' + $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn`"/>\r
+                                    </set>\r
+                                    <block atomic='true'>\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500'/>\r
+                                            <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                        </return>\r
+                                    </block>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name="error-code" value="500"/>\r
+                                        <parameter name="tmp.error-message" value="`'Failed to query network-policy n AnAI where network-policy-fqdn = ' + $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn`"/>\r
+                                    </set>\r
+                                    <block atomic='true'>\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500'/>\r
+                                            <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                        </return>\r
+                                    </block>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <switch test="`$tmp.AnAI.route-table-reference.route-table-reference-id`" >\r
+                                    <outcome value=''>\r
+                                        <block atomic='true'>\r
+                                            <set>\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="tmp.error-message" value="`'Failed to query route-table-reference from AnAI where route-table-reference-fqdn = ' + $preload-data.preload-network-topology-information.route-table-reference[$i].route-table-reference-fqdn + '. It is likely that the same route-table-reference-fqdn points to more than one route-table-reference objects in AnAI.'`"/>\r
+                                            </set>\r
+                                            <block atomic='true'>\r
+                                                <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='500'/>\r
+                                                    <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                                </return>\r
+                                            </block>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network:relationship-list" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id" >\r
+                                            <parameter name="relationship-list.relationship[0].related-to" value="route-table-reference" />\r
+                                            <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="route-table-reference.route-table-reference-id" />\r
+                                            <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.AnAI.route-table-reference.route-table-reference-id`" />\r
+                                            <outcome value='failure'>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="tmp.error-message" value="`'An error occurred while saving route-table-reference relationship for l3-network in AnAI where route-table-reference-id = ' + $tmp.AnAI.route-table-reference.route-table-reference-id`"/>\r
+                                                    </set>\r
+                                                    <block atomic='true'>\r
+                                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='error-code' value='500'/>\r
+                                                            <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='not-found'>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="tmp.error-message" value="`'An error occurred while saving route-table-reference relationship for l3-network in AnAI where route-table-reference-id = ' + $tmp.AnAI.route-table-reference.route-table-reference-id`"/>\r
+                                                    </set>\r
+                                                    <block atomic='true'>\r
+                                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='error-code' value='500'/>\r
+                                                            <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </save>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </outcome>\r
+                        </get-resource>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test="`$tmp.is-bound-to-vpn`">\r
+                <outcome value="true">\r
+                    <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+               key="l3-network.network-id = $tmp.l3-network.network-id" >\r
+                        <parameter name="is-bound-to-vpn" value="true" />\r
+                        <outcome value='failure'>\r
+                            <block atomic='true'>\r
+                                <set>\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="tmp.error-message" value="`'An error occurred while updating l3-network is-bound-to-vpn in AnAI where network-id = ' + $tmp.return.generate-l3network-network-id.uuid`"/>\r
+                                </set>\r
+                                <block atomic='true'>\r
+                                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='500'/>\r
+                                        <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                    </return>\r
+                                </block>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <block atomic='true'>\r
+                                <set>\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="tmp.error-message" value="`'An error occurred while updating l3-network is-bound-to-vpn in AnAI where network-id = ' + $tmp.return.generate-l3network-network-id.uuid`"/>\r
+                                </set>\r
+                                <block atomic='true'>\r
+                                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='500'/>\r
+                                        <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                                    </return>\r
+                                </block>\r
+                            </block>\r
+                        </outcome>\r
+                    </update>\r
+                </outcome>\r
+            </switch>\r
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network:relationship-list" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id" >\r
+                <parameter name="relationship-list.relationship[0].related-to" value="service-instance" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="customer.global-customer-id" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$service-data.service-information.global-customer-id`" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-key" value="service-subscription.service-type" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-value" value="`$service-data.service-information.subscription-service-type`" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-key" value="service-instance.service-instance-id" />\r
+                <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-value" value="`$service-data.service-information.service-instance-id`" />\r
+                <outcome value='failure'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="`'An error occurred while saving service-instance relationship for l3-network in AnAI where service-instance-id = ' + $network-topology-operation-input.service-information.service-instance-id`"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="`'An error occurred while saving service-instance relationship for l3-network in AnAI where service-instance-id = ' + $network-topology-operation-input.service-information.service-instance-id`"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"></delete>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to l3-netework - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </save>\r
+            <set>\r
+                <parameter name='network-topology.network-topology-identifier-structure.' value='`$tmp.l3-network.`' />\r
+                <parameter name='network-topology.tenant' value='`$network-topology-operation-input.network-request-input.tenant`' />\r
+                <parameter name='network-topology.onap-model-information.' value='`$network-topology-operation-input.network-information.onap-model-information.`' />\r
+                <parameter name='network-topology.network-parameters.' value='`$network-topology-operation-input.network-request-input.network-parameters.`' />\r
+                <parameter name='network-topology.aic-cloud-region' value='`$network-topology-operation-input.network-request-input.aic-cloud-region`' />\r
+            </set>\r
+            <set>\r
+                <parameter name="service-data.networks.network[$nidx].network-id" value='`$tmp.l3-network.network-id`' />\r
+                <parameter name="service-data.networks.network[$nidx].network-data.network-information.from-preload" value='true' />\r
+                <parameter name="service-data.networks.network[$nidx].network-data.network-topology." value='$network-topology.' />\r
+                <parameter name="service-data.networks.network_length" value='`$nidx_len`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/lmr-nto2.log' />\r
+            </execute>\r
+            <set>\r
+                <parameter name='networkId' value='`$tmp.l3-network.network-id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='network-object-path'\r
+ value="`$tmp.l3-network.self-link`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status' value='PendingCreate' />\r
+                <parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.last-rpc-action' value='`$network-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name='' value='' />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file