+ <parameter name="vf-module-name" value="`$tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name`" />\r
+ <parameter name="model-invariant-id" value="`$tmp.vf-module-topology.onap-model-information.model-invariant-uuid`" />\r
+ <parameter name="model-version-id" value="`$tmp.vf-module-topology.onap-model-information.model-uuid`" />\r
+ <parameter name="model-customization-id" value="`$tmp.vf-module-topology.onap-model-information.model-customization-uuid`" />\r
+ <parameter name="selflink" value="`$vf-module-object-path`" />\r
+ <parameter name="automated-assignment" value="`$automated-assignment`" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error updating vf-module in AAI" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`" />\r
+ </set>\r
+ </block>\r
+ </outcome>\r
+ </update>\r
+ <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+ <block atomic="true">\r
+ <for silentFailure='true' index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
+ <block atomic="true">\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code`'>\r
+ <outcome value=''>\r
+ <set>\r
+ <parameter name='tmp.nfc-naming-code' value='DEFAULT' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <set>\r
+ <parameter name='tmp.nfc-naming-code' value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code`' />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-function`'>\r
+ <outcome value=''>\r
+ <set>\r
+ <parameter name='tmp.nfc-function' value='DEFAULT' />\r
+ </set>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <set>\r
+ <parameter name='tmp.nfc-function' value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-function`' />\r
+ </set>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].invariant-uuid`'>\r
+ <outcome value=''>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="vnfc" \r
+ key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name" >\r
+ <parameter name="vnfc-name" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`" />\r
+ <parameter name="nfc-naming-code" value="`$tmp.nfc-naming-code`" />\r
+ <parameter name="nfc-function" value="`$tmp.nfc-function`" />\r
+ <parameter name="orchestration-status" value="`PendingCreate`" />\r
+ <parameter name="in-maint" value="true" />\r
+ <parameter name="prov-status" value="`PREPROV`" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error saving vnfc to AAI" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error saving vnfc to AAI" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="vnfc" \r
+ key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name" >\r
+ <parameter name="vnfc-name" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`" />\r
+ <parameter name="nfc-naming-code" value="`$tmp.nfc-naming-code`" />\r
+ <parameter name="nfc-function" value="`$tmp.nfc-function`" />\r
+ <parameter name="model-invariant-id" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].invariant-uuid`" />\r
+ <parameter name="model-version-id" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].uuid`" />\r
+ <parameter name="model-customization-id" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].model-customization-uuid`" />\r
+ <parameter name="orchestration-status" value="`PendingCreate`" />\r
+ <parameter name="in-maint" value="true" />\r
+ <parameter name="prov-status" value="`PREPROV`" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error saving vnfc to AAI" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error saving vnfc to AAI" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ </switch>\r
+ <set>\r
+ <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].created_flag' value='true' />\r
+ </set>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="vnfc:relationship-list"\r
+ key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name"\r
+ force="true" pfx="tmp.AnAI-data">\r
+ <parameter name="relationship-list.relationship[0].related-to" value="generic-vnf" />\r
+ <parameter name="relationship-list.relationship[0].related-link"\r
+ value="`'/aai/v$/network/generic-vnfs/generic-vnf/' +\r
+ $vf-module-topology-operation-input.vnf-information.vnf-id`" />\r
+ <parameter name="relationship-list.relationship[1].related-to" value="vf-module" />\r
+ <parameter name="relationship-list.relationship[1].related-link"\r
+ value="`'/aai/v$/network/generic-vnfs/generic-vnf/' +\r
+ $vf-module-topology-operation-input.vnf-information.vnf-id +\r
+ '/vf-modules/vf-module/' +\r
+ $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error updating vnfc relationships in AAI" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Not-found error updating vnfc relationships" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ <for silentFailure='true' index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data_length`' >\r
+ <block atomic="true">\r
+ <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+ <parameter name="ctx-destination" value="cp-instance-id" />\r
+ </execute>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="cp" \r
+ key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\r
+ AND cp.cp-instance-id = $cp-instance-id" >\r
+ <parameter name="cp-instance-id" value="`$cp-instance-id`" />\r
+ <parameter name="port-id" value="0" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error saving cp object to AAI" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error saving cp object to AAI" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ <set>\r
+ <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].connection-point.connection-point-id'\r
+ value='`$cp-instance-id`' />\r
+ <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].connection-point.port-id'\r
+ value='0' />\r
+ </set>\r
+ <for silentFailure='true' index='subnet-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet_length`' >\r
+ <for silentFailure='true' index='address-family-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments_length`' >\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name='tmp.address-family'\r
+ value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-address-family`' />\r
+ </set>\r
+ <for silentFailure='true' index='address-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip_length`' >\r
+ <switch test='`$tmp.address-family`'>\r
+ <outcome value='ipv4'>\r
+ <block atomic="true">\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="l3-interface-ipv4-address-list" \r
+ key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\r
+ AND cp.cp-instance-id = $cp-instance-id\r
+ AND l3-interface-ipv4-address-list.l3-interface-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address" >\r
+ <parameter name="l3-interface-ipv4-address" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address`" />\r
+ <parameter name="l3-interface-ipv4-prefix-length" value="32" />\r
+ <parameter name="is-floating" value="false" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error creating l3-interface-ipv4-address-list object in AAI" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="l3-interface-ipv4-address-list:relationship-list"\r
+ key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\r
+ AND cp.cp-instance-id = $cp-instance-id\r
+ AND l3-interface-ipv4-address-list.l3-interface-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address"\r
+ force="true" pfx="tmp.AnAI-data">\r
+ <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
+ <parameter name="relationship-list.relationship[0].related-link"\r
+ value="`'/aai/v$/network/l3-networks/l3-network/' +\r
+ $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].network-id`" />\r
+ <parameter name="relationship-list.relationship[1].related-to" value="subnet" />\r
+ <parameter name="relationship-list.relationship[1].related-link"\r
+ value="`'/aai/v$/network/l3-networks/l3-network/' +\r
+ $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].network-id +\r
+ '/subnets/subnet/' +\r
+ $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].subnet-id`" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error updating l3-interface-ipv4-address-list relationships in AAI" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Not-found error updating l3-interface-ipv4-address-list relationships" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='ipv6'>\r
+ <block atomic="true">\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+ resource="l3-interface-ipv6-address-list" \r
+ key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\r
+ AND cp.cp-instance-id = $cp-instance-id\r
+ AND l3-interface-ipv6-address-list.l3-interface-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address" >\r
+ <parameter name="l3-interface-ipv6-address" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address`" />\r
+ <parameter name="l3-interface-ipv6-prefix-length" value="128" />\r
+ <parameter name="is-floating" value="false" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error creating l3-interface-ipv6-address-list object in AAI" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="l3-interface-ipv6-address-list:relationship-list"\r
+ key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\r
+ AND cp.cp-instance-id = $cp-instance-id\r
+ AND l3-interface-ipv6-address-list.l3-interface-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$address-index].vnfc-ip-address"\r
+ force="true" pfx="tmp.AnAI-data">\r
+ <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
+ <parameter name="relationship-list.relationship[0].related-link"\r
+ value="`'/aai/v$/network/l3-networks/l3-network/' +\r
+ $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].network-id`" />\r
+ <parameter name="relationship-list.relationship[1].related-to" value="subnet" />\r
+ <parameter name="relationship-list.relationship[1].related-link"\r
+ value="`'/aai/v$/network/l3-networks/l3-network/' +\r
+ $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].network-id +\r
+ '/subnets/subnet/' +\r
+ $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].subnet-id`" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error updating l3-interface-ipv6-address-list relationships in AAI" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Not-found error updating l3-interface-ipv6-address-list relationships" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </for>\r
+ </block>\r
+ </for>\r
+ </for>\r
+ <for index='vnf-network-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-network-role\r
+ == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role`'>\r
+ <outcome value='true'>\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="cp:relationship-list"\r
+ key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\r
+ AND cp.cp-instance-id = $cp-instance-id"\r
+ force="true" pfx="tmp.AnAI-data">\r
+ <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
+ <parameter name="relationship-list.relationship[0].related-link"\r
+ value="`'/aai/v$/network/l3-networks/l3-network/' +\r
+ $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-id`" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error updating cp relationship to l3-network in AAI" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Not-found error updating cp relationship to l3-network" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ </outcome>\r
+ </switch>\r
+ </for>\r
+ <for silentFailure='true' index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
+ <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role\r
+ == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role`'>\r
+ <outcome value='true'>\r
+ <for silentFailure='true' index='related-network-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].related-networks.related-network_length`' >\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+ resource="cp:relationship-list"\r
+ key="vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\r
+ AND cp.cp-instance-id = $cp-instance-id"\r
+ force="true" pfx="tmp.AnAI-data">\r
+ <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
+ <parameter name="relationship-list.relationship[0].related-link"\r
+ value="`'/aai/v$/network/l3-networks/l3-network/' +\r
+ $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].related-networks.related-network[$related-network-index].network-id`" />\r
+ <parameter name="relationship-list.relationship[1].related-to" value="vlan-tag" />\r
+ <parameter name="relationship-list.relationship[1].related-link"\r
+ value="`'/aai/v$/network/vlan-tags/vlan-tag/' +\r
+ $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].related-networks.related-network[$related-network-index].vlan-tags.vlan-interface`" />\r
+ <outcome value='failure'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Error updating cp relationship to l3-network and vlan-tag in AAI" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic="true">\r
+ <set>\r
+ <parameter name="error-message" value="Not-found error updating cp relationship to l3-network and vlan-tag" />\r
+ </set>\r
+ <block atomic='true'>\r
+ <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+ <call module='GENERIC-RESOURCE-API' rpc='send-so-response' mode='sync' ></call>\r
+ <return status='failure'>\r
+ <parameter name='ack-final' value='Y'/>\r
+ <parameter name="error-code" value="500" />\r
+ <parameter name="error-message" value="`$error-message`" />\r
+ </return>\r
+ </block>\r
+ </block>\r
+ </outcome>\r
+ </save>\r
+ </for>\r
+ </outcome>\r
+ </switch>\r
+ </for>\r
+ </block>\r
+ </for>\r
+ </block>\r
+ </for>\r
+ <for silentFailure='true' index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
+ <block atomic="true">\r
+ <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r